Привет!
Не знаю как решить задачу с 3D триангуляцией. Не отправляйте меня сразу в гугл, я уже там был, но остались вопросы. Давайте я сначала опишу свою задачу.
В качестве входных данных я получаю «скелет» 3D объекта, состоящий из линий. Мне нужно триангулировать этот объем. Вроде звучит просто, но решения я не нашел.
Допустим я получил «скелет» объекта, сразу стоит заметить, что объект может быть «впуклым», это и является сутью проблемы. Мне нужно заполнить этот объем тетраэдрами, причем нет цели в достижении большой сегментации. На картинке ниже показан «скелет» (слева) и то, что должно получиться (справа).
Для того чтобы заполнить объем «скелета» тетраэдрами, необходимо создавать дополнительные ребра. На картинке ниже изображено, как это примерно должно происходить.
Именно в создании новых ребер заключается проблема. Так как фигура может быть «впуклой», то новое ребро может быть построено вне нужного объема, вследствие чего получим не правильный объект.
Есть ли какой-нибудь алгоритм? Возможно ли это сделать с помощью каких-то библиотек (например OpenGL или DirectX)?