找到平面图的边界(边界)边(几何形状)

时间:2012-04-22 06:29:59

标签: graph find border edges

我有顶点和边缘列表,用于描述平面几何形状(面是三角形)。例如:

   a_______b
   /|\    /
  / | \  /
e/__|__\/c
    d

Verts: a, b, c, d, e
Edges: (a,b), (a,c), (a,d), (a,e), (b,c), (c,d), (d,e)

这就是我对特定平面几何形状的所有信息。在此示例中,唯一的内部边是(a,c)和(a,d)。所有其他边都是边界边。如何在算法上识别这些边界边缘(或相反地识别所有内部边缘)?

动机:如果有帮助,我正在尝试构建一个导航网格,其中一个步骤是构建一个可见性图形,我认为第一步是识别边界边缘。

2 个答案:

答案 0 :(得分:1)

对于平面图,“外面”属性不是唯一的;您可以绘制图形以使任何面成为外面的图形,或者您甚至可以绘制图形使其具有不同的面 - 考虑您的示例图形:

enter image description here enter image description here

也就是说,如果您知道可以绘制图形使得所有内部面都是三角形,则可以扫描边缘列表并检查它们属于多少个三角形(通过检查相邻边缘)。如果边缘只属于一个三角形,那么它就是一个外边缘。

无论如何,对我来说似乎很奇怪,你会知道图形具有这样的属性,并且不知道在同一时刻各自的平面嵌入是什么。

答案 1 :(得分:0)

我知道有点晚了。在F.E.M.社区,我们计算每个三角形的边缘,然后边界就是出现一次的边缘。如果是用稀疏矩阵完成的话(对我来说)相当快。