我有一组离散点,并使用它们执行了Delaunay的三角剖分。
我要计算从一个顶点到相邻顶点的所有边长。
我该如何用c ++编写代码?
答案 0 :(得分:0)
我还没有测试您发布的代码,但是问题似乎微不足道。
在绘制所有三角形/点之后,在main
函数中,使用以下命令从subdiv
获取所有三角形的列表:
vector<Vec6f> triangleList;
subdiv.getTriangleList(triangleList);
(就像在draw_delaunay(...)
函数中一样)
现在,您只需要迭代三角形并将每个三角形的每个点与顶点进行比较即可。
v = point - your_vertex
= Sqrt(v.x^2 + v.y^2)
的L2范数。某些边缘可能重复,因此,如果要避免出现,只需创建一个集合并在其中添加所有点,然后再计算范数即可。