我是 CGAL 的新手,我敢肯定我的问题很简单。
我正在尝试使用 CGAL 进行一些 Delaunay 三角测量。我在球体上有一个带有 N 3D 点的网格,我想使用这些点作为三角形的顶点对球体进行三角剖分。我只需要得到一个生成的三角形的顶点列表,如下所示:
id_triangle1 vertex_1 vertex_2 vertex_3 id_triangle2 vertex_1 vertex_2 vertex_3 ......
我这样做是为了执行三角测量:
std::vector<Point> P;
for(i=0;i<NSPOINTS;i++)
P.push_back(Point(GRID[i].x,GRID[i].y,GRID[i].z));
// building Delaunay triangulation.
Delaunay dt(P.begin(), P.end());
我遇到的问题是我不知道如何得到三角测量结果。我想出了如何获得 face_iterator,但我不知道从那里做什么:
Delaunay::Finite_faces_iterator it;
for (it = dt.finite_faces_begin(); it != dt.finite_faces_end(); it++){
std::cout << dt.triangle(it) << std::endl;
}
我不确定迭代三角形是否正确,如果是......三角形=面??¿,我的意思是,每个迭代器位置只有一个三角形¿?如何正确获取每个三角形的 x、y 和 z?¿