sla8a писал(а):
Не работает с отрицательными значениямиЕсли сделать вот так, то будет работать
procedure NewSize(var Points: array of TPoint; const Offset: cardinal; Scale: TScale);
var i,x,y: integer;
begin
if (Length(Points) = 0) then exit;
x := Offset and $FFFF;
y := Offset shr 16;
for i := 0 to High(Points) do begin
if x <> 0 then inc(Points[i].x, SmallInt(x));
if y <> 0 then inc(Points[i].y, SmallInt(y));
Points[i].x := Round(Points[i].x * Scale.x);
Points[i].y := Round(Points[i].y * Scale.y);
end;
end;