Показать сообщение отдельно
Старый 27.04.2010, 08:50   #6
Alex.D.
Оператор ЭВМ
 
Регистрация: 02.11.2008
Сообщений: 27
Написано 12 полезных сообщений
(для 24 пользователей)
Ответ: Координаты

Сообщение от demon112 Посмотреть сообщение
чёт так я и не допетрил...
^___^
Смотри формулу поворота точки в аттаче

По сути тебе нужно взять центр прямоугольника (середина диагонали)
center_x = (x1 + x3) / 2
center_y = (y1 + y3) / 2
и по формуле повернуть все вершины
x'N = center_x + (xN - center_x) * cos(angle) - (yN - center_y) * sin(angle)
y'N = center_y + (xN - center_x) * sin(angle) + (yN - center_y) * cos(angle)
тут надо немного оптимизировать - синус и косинус общий на все точки, ну и диагонали (xN - center_x) и (yN - center_y) кешировать
Миниатюры
Нажмите на изображение для увеличения
Название: 2DRotation.png
Просмотров: 915
Размер:	2.1 Кб
ID:	9942  
(Offline)
 
Ответить с цитированием