从Projection_traits_xy_3的约束delaunay三角剖分中检索z

时间:2015-11-24 10:55:03

标签: cgal

鉴于x,y,如何检索使用z从2.5D构建的2D约束delaunay三角剖分的projection_traits_xy_3坐标?

typedef CGAL::Exact_predicates_inexact_constructions_kernel K;
typedef CGAL::Projection_traits_xy_3<K>  Gt;

typedef CGAL::Triangulation_vertex_base_2<Gt> Vb;
typedef CGAL::Delaunay_mesh_face_base_2<Gt> Fb;
typedef CGAL::Triangulation_data_structure_2<Vb, Fb> Tds;
typedef CGAL::Constrained_Delaunay_triangulation_2<Gt, Tds> CDT;

我的猜测是我必须检索脸部,但下一步是什么?

CDT::Point query(10,10,?);   
CDT::Face_handle face_handle = cdt.locate(query);

2 个答案:

答案 0 :(得分:1)

Triangulation :: Point将是一个3D点,因此face_handle->vertex(0)->point()将是一个带有z坐标的3D点。

答案 1 :(得分:1)

正如@Andreas指出的那样,即使使用2d投影,三角测量也能存储3d点。因此,我们可以检索Point_3

给定查询点(x,y) = (100,100)

//z unknown
Point query1(100, 100, 0);

CDT::Face_handle face_handle = cdt.locate(query1);

K::Point_3 p = face_handle->vertex(0)->point();
K::Point_3 q = face_handle->vertex(1)->point();
K::Point_3 r = face_handle->vertex(2)->point();