Я намагаюся реалізувати теорему розділення осі в C #. У мене є функція, яка може обчислити мінімальний вектор перекладу між двома многокутниками. Однак я не можу створити функцію, яка обчислює мінімальний вектор перекладу між одним багатокутником і кількома іншими багатокутниками. Чесно кажучи, я над цим працював місяцями і не наближаюся до рішення та не зміг знайти рішення в Інтернеті. Завжди є кілька крайніх випадків, які не повертають правильного результату, що призводить до помилок з високим пріоритетом у моїй грі.
Ось загальні крайові випадки, які працюють не правильно:
Чи існує відоме рішення цієї проблеми? Все, що я можу знайти, це люди, які говорять "просто виконати SAT на кожному полігоні", але це рідко створює мінімальний вектор перекладу.
Будь-яка допомога буде дуже вдячна.