Вверх ↑
Разработчик
Ответов: 26163
Рейтинг: 2127
#1: 2014-05-06 00:07:44 ЛС | профиль | цитата
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;

карма: 22

0