2

我正在使用http://www.compgeom.com/~piyush/scripts/triangle/中的 triangle++ 包装类来对点云进行三角测量,以便使用 OpenGL 进行可视化。我能够输入我的观点并计算三角测量。之后,我还能够通过顶点迭代器访问顶点,它在包中包含的 main.cpp 示例中是如何显示的。现在我想通过面迭代器访问顶点(main.cpp 中还有一个示例)。我想遍历所有面并获得每个面的三个顶点。有人已经这样做了吗?我一直在尝试修改包装类约 2 天,但没有成功。

提前非常感谢!塞巴斯蒂安

4

2 回答 2

0

示例代码有效,但不包含我想要的。我想用一张脸分别获取所有三个顶点,例如:

Delaunay::fIterator fit = delobject.fbegin(); 双 x0 = fit.GetVertex(0).x(); 双 y0 = fit.GetVertex(0).y(); 双 z0 = fit.GetVertex(0).z(); 双 x1 = fit.GetVertex(1).x(); 双 y1 = fit.GetVertex(1).y(); 双 z1 = fit.GetVertex(1).z();

或类似的东西。当然这些功能不存在,但我什至不知道如何访问混凝土面的顶点。

于 2010-08-20T19:34:15.587 回答
0

我得到了解决这个问题的办法。只是为了完整起见,它的工作原理如下:

double x0 = delobject.point_at_vertex_id(delobject.Org(fit))[0];
double y0 = delobject.point_at_vertex_id(delobject.Org(fit))[1]; 
double x1 = delobject.point_at_vertex_id(delobject.Dest(fit))[0];
double y1 = delobject.point_at_vertex_id(delobject.Dest(fit))[1];
double x2 = delobject.point_at_vertex_id(delobject.Apex(fit))[0];
double y2 = delobject.point_at_vertex_id(delobject.Apex(fit))[1];
...
于 2010-08-24T10:33:21.247 回答