Масштабирование и сдвиг вектора
От: z12  
Дата: 13.09.07 15:03
Оценка:
Есть два алгоритма:

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(
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.