2012-02-07 4 views
4

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

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

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

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

+0

Есть ли требование к языку программирования? (Пожалуйста, отметьте, если есть) Существуют ли аппаратные ограничения - cpu/gpu разрешено? – mfa

ответ

3

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

0

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

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

+0

Старый пост, но в любом случае. Следует отметить, что Триангуляция Delaunay используется для набора точек, а не для многоугольника - это всего лишь контур – Croolman

Смежные вопросы