Я пытаюсь написать программу, в которой у меня есть «основной» многоугольник, и я хочу проверить, могут ли другие многоугольники вписываться в него.
Эти многоугольники имеют произвольную форму / размер, часто являются выпуклыми и не могут пересекаться самостоятельно.
В принципе, учитывая два многоугольника A
и B
, я хочу найти перевод(вращение / перемещение) многоугольника A
, что делает его "наилучшим образом" подходящим внутри многоугольника B
.
Если A
полностью соответствует B
, то "наилучшим" соответствием является конфигурация, котораямаксимизирует расстояние между двумя ближайшими точками на обоих многоугольниках.
Если A
не помещается полностью в пределах B
, «наилучшим» соответствием является конфигурация, которая минимизирует площадь частей A
которые не охватываются B
.
Существует ли быстрый алгоритм, который может это сделать? Если это очень сложно, я бы предпочел что-то уже реализованное, возможно, в CGAL.