Algorithm 查找大致二维网格的轮廓
我有一个大致的平面网格,我想找到它的轮廓。为了找到轮廓,我在网格的所有三角形中循环,并计算每个边的出现次数(由无序的顶点对表示) 检查所有三角形后,每条边只有两个可能的值Algorithm 查找大致二维网格的轮廓,algorithm,graph,graphics,geometry,computational-geometry,Algorithm,Graph,Graphics,Geometry,Computational Geometry,我有一个大致的平面网格,我想找到它的轮廓。为了找到轮廓,我在网格的所有三角形中循环,并计算每个边的出现次数(由无序的顶点对表示) 检查所有三角形后,每条边只有两个可能的值 边计数=1:边属于单个三角形,因此它是一条外边 边缘计数=2:边缘在两个用户之间共享 三角形,所以它是一个内边界 属于单个三角形(边数=1)的边定义网格轮廓 如果不是为了某个问题,这个策略非常有效,我将尝试用一个例子来说明。假设我们想要找到以下网格的轮廓 如果我们将上述策略应用于此网格,它将找到定义轮廓的七条边,即(0,
- 边计数=1:边属于单个三角形,因此它是一条外边
- 边缘计数=2:边缘在两个用户之间共享 三角形,所以它是一个内边界
你觉得我的方法怎么样?谢谢。2-3-4配置是“病态的”,因为它破坏了图形结构。事实上,这可以看作是网格中的三角形孔
一种可能的处理方法是列出所有单条边,检测重叠的边并忽略它们。imo最简单的解决方案是列出具有共享边的n边,然后仅附着1条n边的共享边就是边界边。用n角代替三角形,这就是为什么很多人试图避免t形交叉的原因之一。您是否仅限于手头的网格,或者是否可以对其进行修改(按照@flatterish的建议引入四边形或分割三角形)?