首先,我不确定使用哪个关键字,我认为我可能会使用错误的关键词进行谷歌搜索,所以如果有人能给我任何提示,我将非常感激。
我的问题如下: 我需要在房屋计划中找到“房间”。例如,采用这种几何:
所需的算法会告诉我哪些顶点绑定了每个房间。因此,对于这个例子,它将是:
我将顶点和边作为输入数据。 编辑: 边数据如下(边8,1,2):
x y
47 196
47 85
258 85
它是像素坐标。
答案 0 :(得分:2)
Graph Theory并没有真正帮助我,因为我已经断开了共享信息的循环。例如[1 2 9 10 3 4 5 8 1]和[11 12 14 13 11]。所以最后我做了一个图像填充,当扩展填充1像素的边界并做一个boolen操作来找出填充图像中的哪个顶点。
答案 1 :(得分:0)
可能的解决方案之一是对该区域进行三角测量,以使每个输入边缘都是某个三角形的边缘。然后将三角形拆分为连接集并找到它们的边界。
有三种三角测量算法:耳剪,Delaunay,......
答案 2 :(得分:0)
这是planar graph。它有V个顶点,E个边和F = E - V + 2个面(包括外面)。我们必须确定所有面的边缘列表。每个边缘将在这些列表中使用两次(向前和向后)。
创建主弧列表,添加所有弧(即1-2个无向边添加1-2和2-1定向弧)
找到最低的顶点。如果有一些这样的点,请选择最左边的点(这里是第7个)。 沿CCW方向移动外表面(轮廓)(在每个顶点选择最右边的出弧):7-6-5-4-3-2-1-7。从主列表中删除访问的弧。
从主列表获取任何弧线,沿第一个内部面移动,遵循右手规则(即7-8-5-6-7),移除访问过的弧线。
重复直到主列表为空。
对断开连接的组件重复所有步骤(11-12-13-14)