Как разделить сложный многоугольник на простые многоугольники?
У меня проблема со сложными многоугольниками, мне нужен алгоритм для разделения (или поиска) простого многоугольника, образованного через сложный многоугольник.
Например:
Комплекс полигонов с точками, пронумерованными в том порядке, в котором они были нарисованы. В результате мы получим 4 простых полигона:
http://i1338.photobucket.com/albums/o699/ssbb91/poly1_zps9e7888a5.png?t=1379653091
Здесь другой случай более сложный:
http://i1338.photobucket.com/albums/o699/ssbb91/poly2_zps1e9753ca.png
Я ищу алгоритм или библиотеку (желательно бесплатную), чтобы помочь мне сделать это, потому что я разработал алгоритмы, которые используют недвоичные деревья для поиска кратчайших путей, но некоторые недостатки возникают при наличии сложных многоугольников
1 ответ
Моя библиотека Clipper преобразует самопересекающиеся многоугольники в простые.
Смотрите документацию здесь.
Примечание: это значительно улучшено в (скоро будет выпущен) версии Clipper 6, которую можно скачать из репозитория SourceForge здесь.
Изменить: документация для версии 6 здесь