Всем привет. Вопрос такой, как повернуть фигуру относительно заданной точки, а не начала координат?
Формула у меня такая:
np.X:=(p.X * cos(a) + p.Y * sin(a));
np.Y:=(p.X * -sin(a) + p.Y * cos(a));
где p - точка фигуры, np - точка фигуры после поворота, a - угол поворота.
При использовании этой формулы получается вот что:
Как повернуть красный квадрат относительно красной точки?Добавлено (23.10.2012, 21:30)
---------------------------------------------
Вопрос закрыт. Разобрался сам. Проблема была в неправильности формулы. Вот правильный вариант:
np.X:=((p.X - c.X) * cos(a) + (p.Y - c.Y) * sin(a) + c.X);
np.Y:=((p.X - c.X) * -sin(a) + (p.Y - c.Y) * cos(a) + c.Y);
c - центр поворота