Мой вопрос довольно прост. У меня есть две тетраэдры, каждая из которых имеет текущее положение, линейную скорость в пространстве, скорость angular и центр масс (фактически, центр вращения).
Имея эти данные, я пытаюсь найти (быстрый) алгоритм, который точно определит (1), будут ли они сталкиваться в какой-то момент времени, и если это так, (2) после того, сколько времени они столкнулись и (3) точка столкновения.
Большинство людей решат это, выполнив обнаружение столкновений треугольника и треугольника, но это приведет к отмене нескольких циклов процессора при избыточных операциях, таких как проверка одного края одного тетраэдра на том же краю другого тетраэдра при проверке разных треугольников. Это означает, что я немного оптимизирую ситуацию. Ни о чем не беспокоиться.
Проблема в том, что я не знаю ни одного общедоступного алгоритма треугольного треугольника с непрерывным столкновением (непрерывного обнаружения столкновений), который учитывает самовращение.
Поэтому мне нужен алгоритм, который будет вводить следующие данные:
- данные вершин для трех треугольников
- положение и центр вращения/масса
- линейная скорость и скорость angular
И выводит следующее:
- Есть ли столкновение
- После того, сколько времени произошло столкновение
- В какой точке пространства произошло столкновение
Заранее благодарим за помощь.