0

В настоящее время я работаю над инструментом рендеринга местности. Я должен вырезать кусок из данной триангуляции Деланея. Пусть следующая триангуляция Дана:Эффективно разрезать триангуляцию (найти субтриангуляцию)

Triangulation

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

Есть ли какой-либо эффективный алгоритм для выполнения такого разреза?

ответ

2

Вам необходимо использовать constrained Delaunay triangulation.

Библиотека CGAL, например, предоставляет implementation в C++. Когда вы говорите о местности, вы также должны посмотреть на это example.

Если вас интересует реализация java или python, некоторые привязки, написанные с помощью SWIG, доступны here.

+0

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