учитывая 2 точки и 2 направления, как мне узнать, пересекаются ли они? - PullRequest
0 голосов
/ 01 апреля 2019

Я выполняю тест на столкновение в c #, и у меня возникает следующая проблема:

У меня есть object1 и object2, они двигаются в направлении.

Я хочу активировать только эффектесли object1 и object2 сталкиваются под определенным углом

данные, которые у меня есть

Vector2 object1Position
Vector2 object1Direction
float object1ColliderRadius

Vector2 object2Position
Vector2 object2Direction
float object2ColliderRadius

Я уже сделал тест, чтобы узнать, сталкивается ли object1 с object2.

ЧтоЯ скучаю, это угол столкновения, чтобы активировать или нет что-то еще в моем коде.следуйте за этим изображением.enter image description here

1 Ответ

1 голос
/ 01 апреля 2019

Угол легко вычисляется, например, из точечного произведения . Более интересный вопрос, сталкиваются ли они вообще. Это зависит от скорости, конечно. Это легко решить, добавив дополнительное измерение. Здесь вы положите z = t. Используя трехмерную аффинную геометрию, вы проверяете, пересекаются ли 3D-линии. Если да, объекты с 2D траекториями сталкиваются. Это, конечно, для точечных объектов, поэтому детально вы должны проверить расстояние между линиями.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...