CGAL 中使用任意平面的 2D Delaunay 三角剖分

use*_*651 3 2d delaunay triangulation cgal

我是使用 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 平面?

谢谢,

slo*_*iot 5

有一个template < class Kernel > class Triangulation_2_projection_traits_3未记录在标题中的定义:CGAL/Triangulation_2_projection_traits_3.h

您从平面法线构造特征类并将特征传递给三角剖分。

像下面这样的东西应该工作:

 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());
Run Code Online (Sandbox Code Playgroud)