在我的网格划分应用程序中,我必须在域中指定修复点。这个想法是,固定点也必须是域被网格化后的元素点。
此外,固定点周围的元素应该更密集。一般概念是,对于固定点,这些点周围应存在半径r
,以使r
内的网格大小与r
之外的大小不同。 r
内外的网格大小应该是可以指定的。
这两件事在CGAL 2D Mesh algorithm中是否可行?
答案 0 :(得分:1)
是的,网格划分器不会从三角测量中移除任何点。 但是请注意,如果插入的点太接近约束,这将导致约束的细化,而不是Gabriel。
答案 1 :(得分:1)
使用你的措辞,初始约束Delaunay三角剖分的所有输入点都将是固定点,因为2D网格生成器只在三角剖分中插入新点:它永远不会移除任何点。
对于密度,您可以复制,粘贴和修改标准类,例如CGAL::Delaunay_mesh_size_criteria_2<CDT>
,以便固定点周围的局部大小上限较小。
现在,困难在于如何实施新规模政策。您的条件类可以将const引用存储到另一个Delaunay_triangulation_2
,它只包含您想要的固定点。然后,对于每个三角形查询,您可以调用nearest_vertex
,然后实际检查查询点之间的距离是否小于圆的半径范围。对于三角形,您可以仅针对其重心或三角形的所有三个点进行验证。然后,根据/那些查询的结果,您可以在CGAL::Delaunay_mesh_size_criteria_2<CDT>
副本的代码中修改大小限制。