Консультация № 66766
13.12.2006, 07:20
0.00 руб.
0 1 1
Здравствуйте, уважаемые эксперты! Я вот пробую написать 2d игру, столкнулся с проблемой, как проверить, сталкиваются ли 2 прямоугольника, если они не просто имеют x и y (ну и ширину, длину), но и могут поворачиваться на произвольный угол.

Тоесть как проверить столкновение вращающихся спрайтов?

Желательно естествено пример с кодом, ибо в тригонометрии я не очень хорошо чешу (в школе ещё не проходили)

Заранее благодарен)

Обсуждение

давно
Академик
20764
1861
13.12.2006, 13:07
общий
это ответ
Здравствуйте, Антонов Никита Вячеславович!

Если они повёрнуты, то это уже полигоны. Соответственно к ним и другие алгоритмы применяются. Возможно, поможет то, что они выпуклые.

Я на память знаю только как проверить находится ли точка внутри полигона. Все методы весьма простые, но неочевидные. Так что придется их искать.

Чтобы не быть голословным - его словесное описание.

Из точки проводится произвольный луч (в реальности горизонтальный или вертикальный отрезок достаточно далеко) и для каждой стороны многоугольника проверяется пересекается ли она с ним. Если количество пересечений нечетное - то точка внутри.

Как проверить пересекаются ли два отрезка - это отдельный метод, такой же простой, но но такой же неочевидный если его не знать.
Форма ответа