Триангуляция многоугольников с использованием монотонных многоугольников

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

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

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

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


person Brad    schedule 07.02.2012    source источник
comment
Есть ли требования к языку программирования? (отметьте, если есть) Есть ли аппаратные ограничения - cpu / gpu разрешены?   -  person mfa    schedule 07.02.2012


Ответы (2)


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

person sloriot    schedule 07.02.2012

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

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

person Throwback1986    schedule 07.02.2012
comment
Старый пост, но все равно. Стоит отметить, что триангуляция Делоне используется для набора точек, а не для многоугольника, который представляет собой просто контур. - person Croolman; 10.05.2017