计算从德劳内三角测量获得的三角形的边长

Calculating edge lengths of triangles obtained from Delaunay's triangulation

本文关键字:三角形 测量 三角 计算      更新时间:2023-10-16

我有一组离散点,并使用它们执行Delaunay三角测量。

我想计算从一个顶点到相邻顶点的所有边的长度。

我如何在c++中完成/编码此操作?

我还没有测试您发布的代码,但问题似乎很小。

  1. 在绘制所有三角形/点后的main函数中,使用从subdiv获得所有三角形的列表

    vector<Vec6f> triangleList; 
    subdiv.getTriangleList(triangleList);
    

    (就像draw_delaunay(...)函数中一样)

  2. 现在,您只需迭代三角形,并将每个三角形的每个点与顶点进行比较。

  3. 如果它和你的点是同一点,那么你就可以计算三角形的另外两个点的边的长度。这里的长度=向量v = point - your_vertex的L2范数=Sqrt(v.x^2 + v.y^2)

有些边可能有重复,所以如果你想避免它,只需创建一个集,将所有点添加到那里,然后计算范数。