Выпуклая декомпозиция сложного многоугольника?

Как в моей системе физики 2D (box2D), так и в OpenGL, сложные многоугольники нужно разбивать на выпуклые многоугольники. Убедиться, что модели соответствуют этому, очень просто. Однако я также хотел бы редактировать полигоны по мере продвижения моделирования, поэтому мне нужен динамический способ разбиения существующих полигонов на большее количество полигонов, которые все еще являются выпуклыми.

Надеюсь, этот рисунок помогает описать то, что мне нужно:

image aid

Мой вопрос: есть ли существующая библиотека, которая может это сделать? А если нет, то какой способ сделать это самому будет наименее подверженным ошибкам?

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

13
задан Anne Quinn 10 October 2011 в 01:37
поделиться