计算从Delaunay三角剖分获得的三角形的边长

时间:2019-01-14 10:59:13

标签: c++ opencv delaunay

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

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

我该如何用c ++编写代码?

1 个答案:

答案 0 :(得分:0)

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

  1. 在绘制所有三角形/点之后,在main函数中,使用以下命令从subdiv获取所有三角形的列表:

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

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

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

  3. 如果与您的点相同,则可以计算三角形的另外两个点的边长。 此处的长度=向量v = point - your_vertex = Sqrt(v.x^2 + v.y^2)的L2范数。

某些边缘可能重复,因此,如果要避免出现,只需创建一个集合并在其中添加所有点,然后再计算范数即可。