给定x,y
,如何使用projection_traits_xy_3
检索从2.5D构建的二维约束delaunay三角测量的z
坐标?
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);
三角测量::点将是一个三维点,因此face_handle->vertex(0)->point()
将是具有z坐标的三维点。
正如@Andreas所指出的,即使使用二维投影,三角测量也会存储三维点。因此,我们可以检索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();