Как найти, какая сторона столкнулась с использованием SAT - PullRequest
0 голосов
/ 27 января 2019

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

Как я могу получить это из своей функции SAT?

1 Ответ

0 голосов
/ 03 апреля 2019

Когда вы вычисляете всю свою ось, фактически вы получаете все нормали и стороны.

Вы должны повернуть всю свою ось на 90 °, чтобы сохранить, какая пара вершин даст вам ось / нормаль.

Так что, если минимальное перекрытие на вашей оси [x], сторона имеет нормальный вектор поворота (ось [x], 90).

И вы должны проецировать вектор междуцентры ваших объектов на оси минимального перекрытия, если результат меньше 0, вы должны взять противоположную нормаль и связанную вершину.

Примечание: В случае, когда вы вычисляете свою ось, слева направо, в противном случае выдолжен использовать -90 °

...