c++ - 计算从德劳内三角剖分获得的三角形的边长
问题描述
我有一组离散点并使用它们,我执行了 Delaunay 的三角测量。
我想计算从一个顶点到相邻顶点的所有边长。
我如何在 C++ 中执行/编码?
解决方案
我没有测试您发布的代码,但问题似乎微不足道。
在
main
绘制所有三角形/点后的函数中,从以下获取所有三角形的列表subdiv
:vector<Vec6f> triangleList; subdiv.getTriangleList(triangleList);
(就像在
draw_delaunay(...)
函数中一样)现在您只需迭代三角形并将每个三角形的每个点与您的顶点进行比较。
- 如果它和你的点相同,那么你用三角形的另外两个点计算边的长度。这里的长度 = 向量的 L2 范数
v = point - your_vertex
=Sqrt(v.x^2 + v.y^2)
。
某些边可能有重复,所以如果你想避免它,只需创建一个集合并在那里添加所有点并稍后计算范数。
推荐阅读
- java - calendar.getDisplayName 返回错误的日期
- python - 估计图像的信噪比
- python - 使用正则表达式排序
- python - 悲情:泡菜失败
- javascript - 如何在角度 6 中将值从兄弟组件传递到路由器插座?
- java - 生成部分内容(206)作为使用 REST Web 服务分块下载 zip 文件的输出时出现问题
- java - Mysql is saving date 1 day earlier date that provided from input from java application
- javascript - 如何将从 API 接收到的数据转换为角度 5 中的 JSON 格式
- node.js - 如何对现有用户使用 _linkWith 方法?(解析服务器)
- html - 如何使背景图像全尺寸