Я пытаюсь реализовать теорему о разделяющей оси в C #. У меня есть функция, которая может рассчитать минимальный вектор перевода между двумя полигонами. Тем не менее, я не могу создать функцию, которая вычисляет минимальный вектор перевода между одним полигоном и несколькими другими полигонами. Честно говоря, я работал над этим в течение нескольких месяцев, и я не приблизился к решению и не смог найти решение в Интернете. Всегда есть несколько крайних случаев, которые не возвращают правильный результат, что приводит к ошибкам с высоким приоритетом в моей игре.
Вот общие крайние случаи, которые не работают правильно:
Есть ли известное решение этой проблемы? Все, что я могу найти, это люди, говорящие «просто выполнить SAT на каждом полигоне», но это редко дает минимальный вектор перевода.
Любая помощь будет высоко ценится.