Есть два алгоритма:
1)масштабирует (от начала координат) и сдвигает вектор
for i := 0 to length(mas) - 1 do begin
x1 := Round(mas[i].x1 * zuum + dX);
y1 := Round(mas[i].y1 * zuum + dY);
x2 := Round(mas[i].x2 * zuum + dX);
y2 := Round(mas[i].y2 * zuum + dY);
bmp.Canvas.Rectangle(x1, y1, x2, y2);
end;
2)масштабирует(по мышке)
for i := 0 to length(mas) - 1 do begin
x1 := Round((mas[i].x1 - mouse.X) * zuum + mouse.X);
y1 := Round((mas[i].y1 - mouse.Y) * zuum + mouse.Y);
x2 := Round((mas[i].x2 - mouse.X) * zuum + mouse.X);
y2 := Round((mas[i].y2 - mouse.Y) * zuum + mouse.Y);
bmp.Canvas.Rectangle(x1, y1, x2, y2);
end;
Вопрос:
Как объединить эти алгоритмы?
Чтобы можно было масштабировать по мышке (или любой другой точке, например центру формы) и в тоже время передвигать вектор (той же мышкой)
Парюсь 2 дня получается не понять что =(, все время, куда то вектор улетает не туда =(
Получается только раздельно, либо нормально двигать, либо нормально масштабировать, а вместе никак 8(