如何解决找到大致2D网格的轮廓
我有一个大概是平面的网格,我想找到其轮廓。为了找到轮廓,我遍历了网格的所有三角形,并计算了每条边的出现次数(以无序的顶点对表示)。
检查所有三角形后,每个边缘只有两个可能的值。
- edge count = 1:边缘属于单个三角形,所以它是外边缘
- 边缘计数= 2:边缘在两个之间共享 三角形,所以它是一个内边界
属于单个三角形(边数= 1)的边定义了网格轮廓。
如果不是要解决问题,此策略效果很好,我将尝试通过一个示例进行说明。假设我们要找到以下网格物体的轮廓。
如果我们将上述策略应用于此网格,它将找到定义轮廓的七个边缘-即(0,1),(1,4),(4,7),(6,7), (5,6),(2,5)和(0,2)-但它还会找到三个内部边缘,即(2,3),(3,4)和(2,4),它们仅属于每个分别为(2,3,6),(3,4,7)和(0,2,4)一个三角形。
我已经想到了以下解决方案来解决该问题。据我所知,只有当三个顶点与上面的示例在同一行上时,才会出现此问题。连接三个顶点的两个短边可以替换为连接两个外部顶点的单个长边。将此新边添加到边列表中,或者如果已经存在,则其计数器将增加1,达到值2。迭代过程(遵循边定义的路径),我应该简化边列表,最后只简化那些边列表网格轮廓上的数字应为1。
您如何看待我的方法?谢谢。
解决方法
2-3-4配置是“病理性的”,因为它破坏了图的结构。实际上,这可以看作是网格中的三角形孔。
一种可能的处理方式是列出所有单个边缘,检测重叠的边缘,然后忽略它们。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。