想象一下,我有两个点数组。其中一个是开放的多边形,看起来像这样。
X
是黑点和点('。') - 白点。
第二个点数组包含一个闭合的多边形:
我需要算法的名称,这允许我确定给定的点数组是闭合多边形还是开放多边形。我需要这些信息来确定我是否可以填充它(我不能填充第一个例子,但是我可以填充第二个例子)。
调用的算法是什么,它允许我区分两种类型的多边形?
更新1(10.10.2015 10:05 MSK):我需要区分封闭和开放多边形,以防止洪水填充错误。
洪水填充错误,是指我将洪水填充应用于像
这样的开放多边形.....
..XXX
.X..X
X...X
并以完全填充的网格结束:
XXXXX
XXXXX
XXXXX
XXXXX
我最初的想法是
现在,我可以采用不同的方式:
如果有办法避免进行洪水填充以确定,无论多边形是打开还是关闭,请告诉我。
答案 0 :(得分:0)
我对此没有任何经验,但在我研究其他内容时,我发现了这一点并认为它可能对您有所帮助:
http://www.cs.tufts.edu/~sarasu/courses/comp175-2009fa/pdf/comp175-05-region-filling.pdf
幻灯片提到了3种不同的算法: