发现填充的网格有一个圆圈;填写区域

时间:2017-03-31 21:44:46

标签: loops colors grid geometry detect

enter image description here

嗨,我目前正处于一个项目的中间,每隔一个步骤就会在网格上添加一个新的网格链。我怎样才能检测到网格中已经制作了一个圆圈?鉴于我所拥有的是坐标(x,y)和每个细胞的颜色。 “圆圈”是指一个被封闭的区域,如图所示。

提前致谢!顺便说一下,我不是问如何点击一个单元格并应用泛洪填充算法。

算法的后果应该产生这个:

enter image description here

1 个答案:

答案 0 :(得分:1)

您需要将所有白色(未填充)方块分成彼此相邻的方块组。从任何白色方块开始,将所有未填充的相邻方块添加到集合中,并继续操作直到您包含所有方块。

一旦你拥有了这些套装,你将拥有一个"圈" (如您所述)如果存在不包含任何边框方块的非空集。然后填充这些集合,您只需将每个成员的颜色更改为蓝色。

如果您有上一步的集合,当您添加另一个砖时,您只需要考虑包含受影响的方块的集合,以查看它是否已被拆分为两个集合以及这些新集合中的任何一个是否可能是"圆"