Углы четырехугольника в трехмерном пространстве

Я работаю над физическим моделированием снарядов, и я застрял на столкновении с землей. У меня есть площадка из квадов,

введите здесь описание изображения

У меня есть точки, хранящиеся в массиве, поэтому я подумал, что если я возьму четырехугольник, в котором произошло столкновение, и вычислю углы четырехугольника (в направлениях x и z), я смогу использовать это для изменения скорости снаряда.

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


person Jonas Andersson    schedule 06.10.2015    source источник


Ответы (1)


То, что вы хотите, это нормальный квадроцикл.

Вот ответ, который показывает вам, как получить нормаль четырехугольника

После того, как вы получили нормаль, вам нужно рассчитать силу реакции на столкновение. Его направление — это нормаль к квадроциклу, а сила — это сила, с которой снаряд действует в направлении квадроцикла. Приложенная сила рассчитывается с помощью скалярного произведения скорости снаряда и нормали обратного четырехугольника (Вот ссылка на вики для точки продукт)

Вектор ответа должен быть таким:

Vector3 responseForce = dot(projectile.vel, -1 * quad.normal) * quad.normal;
projectile.vel += responseForce;
person Ritave    schedule 06.10.2015