首页 > 解决方案 > 计算从德劳内三角剖分获得的三角形的边长

问题描述

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

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

我如何在 C++ 中执行/编码?

标签: c++opencvdelaunay

解决方案


我没有测试您发布的代码,但问题似乎微不足道。

  1. main绘制所有三角形/点后的函数中,从以下获取所有三角形的列表subdiv

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

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

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

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

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


推荐阅读