鉴于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);
答案 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();