Мне нужно найти нерегулярный многоугольник с наименьшей площадью поверхности из нескольких вершин на двумерной плоскости.
Нет, это не домашнее задание. Хотя мне жаль, что я не вернулся в школу прямо сейчас.
Существуют некоторые требования относительно того, как можно построить многоугольник. Скажем, у меня есть 3 разных типа вершин (красный, зеленый, синий), построенный на сетке 8x8. Мне нужно сканировать все вершины в этой сетке, удовлетворяющие требованию красного, зеленого, синего комбинаций, и выбрать один с наименьшей площадью поверхности.
Получение площади поверхности неправильного многоугольника достаточно просто. Я в основном обеспокоен эффективностью эффективного сканирования всех возможных комбинаций.
См. изображение ниже для примера. Все три типа используются для создания полигонов, но один из них имеет наименьшую площадь поверхности и является моей целью.
Этот сценарий упрощен по сравнению с тем, что я пытаюсь прототип. Многоугольники будут построены из десятков, если не сотен вершин, а сетка будет намного больше. Кроме того, это будет процесс, выполняемый 24/7.
Я думал, что, возможно, я должен организовать вершины по типу и разбить их на отдельные массивы. Затем просто перебирайте массивы многоуровневым способом, чтобы вычислить площадь поверхности всех комбинаций. Однако этот подход представляется расточительным.