Суббота, 27 Апреля 2024, 18:43

Приветствую Вас Гость

[ Новые сообщения · Игроделы · Правила · Поиск ]
  • Страница 1 из 1
  • 1
Форум игроделов » Программирование » Общие обсуждения программистов » Матрица поворота относительно заданной точки
Матрица поворота относительно заданной точки
tracer07Дата: Вторник, 23 Октября 2012, 21:30 | Сообщение # 1
постоянный участник
Сейчас нет на сайте
Всем привет. Вопрос такой, как повернуть фигуру относительно заданной точки, а не начала координат?

Формула у меня такая:

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 - центр поворота

Форум игроделов » Программирование » Общие обсуждения программистов » Матрица поворота относительно заданной точки
  • Страница 1 из 1
  • 1
Поиск:

Все права сохранены. GcUp.ru © 2008-2024 Рейтинг