使用任意平面在CGAL中进行2D Delaunay三角剖分

3
我刚开始使用CGAL,请问CGAL是否支持使用任意平面对3D点进行2D Delaunay三角剖分。CGAL文档中的示例仅列出了Projection_traits_xy_3<R>Projection_traits_yz_3<R>Projection_traits_xz_3<R>,也就是在xy平面、yz平面和xz平面上进行投影。我能否定义一个任意的投影平面,而不是使用xy、yz和xz平面呢?
谢谢。
1个回答

5

这里有一个未被记录的类template < class Kernel > class Triangulation_2_projection_traits_3,它在头文件CGAL/Triangulation_2_projection_traits_3.h中定义。

你可以用平面法向量构建 traits 类,并将其传递给三角剖分。

以下示例代码可能会有所帮助:

 typedef CGAL::Exact_predicates_inexact_constructions_kernel K;
 typedef CGAL::Triangulation_2_projection_traits_3<K> P_traits;
 typedef CGAL::Delaunay_triangulation_2< P_traits > DT2;
 std::vector< K::Point_3 > points
 P_traits traits( K::Vector_3(1,1,1) );
 DT2 dt2(traits);
 dt2.insert(points.begin(), points.end());

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接