Для проверки столкновения мне нужно рассчитать время, когда два выпуклых многогранника пересекаются, если один из них движется по прямой.В настоящее время у меня есть:
- Входные данные: выпуклый многогранник, определенный как набор точек одного объекта
A
и направление его движения. - Входные данные: выпуклый многогранник, определенный как наборточки второго объекта
B
- Рассчитать сумму Минковского двух наборов точек
C
, |C| = |A| * |B|
- Рассчитать триангулированную выпуклую оболочку
C
(используя QuickHull) - Пересечение линии с треугольниками выпуклой оболочки и сохранение минимального и максимального расстояния вдоль линии.
Это все работает, но медленно.Особенно шаг для вычисления триангулированной выпуклой оболочки.
Интересно, есть ли более быстрый способ вычисления пересечения лучево-выпуклого многогранника из набора точек без вычисления триангулированной выпуклой оболочки.Я мог бы получить входные данные в виде плоскостей (уравнений плоскостей), если это поможет.