Я хочу использовать сумму Минковского, чтобы предсказать точную точку столкновения между двумя выпуклыми фигурами. По моему мнению, точка, в которой вектор скорости пересекается с суммой Минковского, - это сумма, которую мне приходится перемещать по объекту вдоль вектора, поэтому они просто касаются (я уже знаю, что они будут сталкиваться). Вот пример того, что я имею в виду (по соображениям простоты я использовал только прямоугольники):предсказание столкновения с использованием суммы Минковского
Я имею в виду, я мог бы просто вычислить пересечение с каждой линией выпуклой оболочки и использовать только ближайший, но это кажется ужасно неэффективен. Моя идея состояла в том, чтобы вычислить симплекс, ближайший к вектору, но я понятия не имею, как лучше всего это сделать. Я нашел алгоритм, который вычисляет наименьшее расстояние между объектами или, точнее, самое маленькое расстояние от суммы Минковского до начала координат (http://www.codezealot.org/archives/153). Одна часть алгоритма пытается найти симплекс, ближайший к происхождению, который является тем, что я хочу делать. Я попытался изменить его на свои нужды, но я не был успешным. Мне кажется, что должно быть очень простое решение, но я не настолько хорош с векторной математикой.
Я надеюсь, что я мог бы сделать мою проблему ясно, так как мой английский не так хорошо: D
А, я не пытался эту проблему в то время. Проблема нахождения ближайшего симплекса заключается в том, что он не учитывает вектор движения. Решение, которое я пытаюсь использовать, состоит в том, чтобы вычислить пересечение луча (описывающего движение) и сумму Минковского (которая, поскольку это выпуклая оболочка, может быть представлена пересечением полупространств - задача тогда вычисляя эти полупространства). –
Хм, похоже, есть что-то еще, что мне нужно прочитать: D – user1566228