CGAL 3D Delaunay三角测量 - 第一个顶点是原点?

时间:2014-06-17 21:06:09

标签: iteration cgal delaunay

我正在对从球体采样的点执行3D Delaunay三角剖分,我正在查看结果三角剖分的顶点,主要是通过这样做:

for(Delaunay_Vertex_iter p = T.vertices_begin(); p!= T.vertices_end(); p ++){

std :: cout<< p-> point()<< ENDL;

}

当T.number_of_vertices()== 270时,我得到271个顶点,第一个是原点(0,0,0)。为什么呢?

2 个答案:

答案 0 :(得分:3)

这是无限顶点,它有未指定的坐标,恰好是这里的原点。您应该使用finite_vertices_begin()/finite_vertices_end()进行迭代。 有关无限顶点的信息,请参阅http://doc.cgal.org/latest/Triangulation_3/

答案 1 :(得分:0)

这很可能会发生,因为浮点数本身并不完全在单位球上。因此,数据类型或内核以及采样的接近程度会影响结果。

您可以将CGAL的球形内核用于3D案例或以下所述的实现: https://stackoverflow.com/a/45240506/4994003 为了避免一般dD案件的精确问题。