Обнаружить вращение прямоугольника пересечения - PullRequest
1 голос
/ 01 декабря 2011

Я хочу проверить, пересекает ли повернутый прямоугольник точку обзора моей камеры (прямоугольник, выровненный по оси).

Я надеялся, что в Graphics Gems найдется решение для этого, но не вижу его. Это выглядит близко: http://www.ragestorm.net/tutorial?id=22, но комментарии показывают, что он не работает, как опубликовано.

Этот вопрос, кажется, задавался несколько раз в SO на протяжении многих лет, но не вижу рабочего примера. У кого-нибудь есть указания на что-нибудь? Может быть, есть статический метод, который я мог бы использовать в Box2d, поскольку, конечно, такой тест должен использоваться где-то в этом коде?

Спасибо

1 Ответ

0 голосов
/ 01 декабря 2011

Вы на правильном пути - у box2d есть метод для этого ...

в b2CollidePolygon.cpp есть следующий метод:

void b2CollidePolygons(b2Manifold* manifold,
    const b2PolygonShape* polyA, const b2Transform& xfA,
    const b2PolygonShape* polyB, const b2Transform& xfB)

Как видите, результаты теста возвращаются b2Manifold. Входными данными для теста являются две фигуры (одна будет приспособлением для вашего тела, другая - вашим видом) и преобразования для этих фигур, которые можно получить, вызвав метод GetTransform для b2Body.

...