Триангуляция полигонов с использованием монотонных полигонов - PullRequest
4 голосов
/ 07 февраля 2012

У меня есть простой многоугольник без отверстий, и его нужно триангулировать в выпуклые многоугольники для использования в физическом движке, а также чтобы я мог использовать эти выпуклые многоугольники для рендеринга с помощью треугольных полос.

В этой статье Википедии показано, как монотонные многоугольники можно использовать для триангуляции многоугольника. Это дает краткое описание того, как это работает, но не достаточно подробно для меня, чтобы понять. Этот метод кажется идеальным для того, что мне нужно, и Flash Demo , на который он ссылается, показывает, что алгоритм отлично работает для моих нужд.

Я искал в Google, чтобы найти лучшее объяснение алгоритма, и я могу найти только библиотеки или исходный код, которые выполняют триангуляцию. Я бы предпочел узнать, как это работает, и написать свой собственный метод, но если мне нужно будет использовать предварительно написанную библиотеку, это придется сделать.

Может ли кто-нибудь предоставить объяснение или ресурсы о том, как я могу узнать, как работает этот тип триангуляции?

Ответы [ 2 ]

3 голосов
/ 07 февраля 2012

Библиотека CGAL предоставляет несколько реализаций выпуклой декомпозиции простых многоугольников без дырок. Взгляните на эту главу .

0 голосов
/ 07 февраля 2012

Предлагаю вам взглянуть на триангуляции Делоне: Википедия . QHull - стандартная реализация.(Для справки, MATLAB использует Qhull: link .

Если Qhull не ваша вещь, попробуйте эту коллекцию .

...