我想在两个多边形(比如内部和外部多边形)之间创建一个2D三角形网格(可能是Delaunay)。我的要求是没有在内部多边形上插入新节点,或者我希望保留内部多边形。有没有办法实现这个目标?
根据您的描述,您似乎需要一个受约束的Delaunay三角剖分。看到这个example。
CGAL中的conforming triangulation可以满足您的需求。您必须为其指定两个多边形的轮廓,并在要保留的区域中设置种子点。包含种子点的区域将进行三角剖分但不进行网格划分(请参阅上面链接的文档,以获取此行为的示例)。
您还可以使用is_in_domain()
函数检查面是否在网格区域中。通过这种方式,您可以忽略内部多边形中的面,并使用现有的三角剖分而不是它们。