【问题标题】:Accessing vertices in the triangle++ (delaunay/voronoi triangulation) Wrapper class访问三角形++中的顶点(delaunay/voronoi triangulation)包装类
【发布时间】:2011-04-01 17:41:44
【问题描述】:

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

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

【问题讨论】:

  • 示例程序对您有用吗?相同的代码在您的情况下不起作用吗?为什么需要修改包装器?

标签: c++ geometry computational-geometry delaunay


【解决方案1】:

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

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();

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

【讨论】:

    【解决方案2】:

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

    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];
    ...
    

    【讨论】:

      猜你喜欢
      • 2011-12-17
      • 1970-01-01
      • 2016-04-06
      • 2021-08-17
      • 2011-09-23
      • 1970-01-01
      • 1970-01-01
      • 2020-08-05
      • 1970-01-01
      相关资源
      最近更新 更多