Многие пакеты триангуляции Делоне (такие как Треугольник , которые я бы порекомендовал) обычно включают в себя возможность автоматического удаления «внешних» треугольников из триангуляции. Ознакомьтесь с документацией.
Если это не так для вашего алгоритма, вы должны быть в состоянии обрезать внешние треугольники, проверяя, находится ли центроид каждого треугольника в пределах полигона (ов), которые вы указали в качестве ограничений, через точку в тесте полигонов, например. Это всегда должно работать, так как ограниченная триангуляция Делоне будет гарантировать, что никакие ребра треугольника не пересекают ребра полигонального ограничения (нет шансов на частичный треугольник входа / выхода).
Еще одно соображение для вашей проблемы - пакетная обработка, которую вы описываете. Сложность большинства (если не всех) алгоритмов триангуляции Делоне является нелинейной (Triangle достигает O(n*log(n))
), поэтому я думаю, что вы на самом деле достигнете ускорения, обрабатывая полигоны один за другим, а не все сразу .