我与myGrid[x,y]
查找在周长上的点来表示边界/形状
我试图找到一种方法来找到解决选择网格,所以我再有周边格式的简单的2D网格一个选择的形状。
这是我的意思的例子:
这里的想法是要找到所有相关的“角落”又名在周边图像中的红色点到列表,所以我可以然后从中创建一个2D网格。但我不知道最简单的方法来做到这一点。我想知道是否有一个简单的逻辑来做到这一点?
我与myGrid[x,y]
查找在周长上的点来表示边界/形状
我试图找到一种方法来找到解决选择网格,所以我再有周边格式的简单的2D网格一个选择的形状。
这是我的意思的例子:
这里的想法是要找到所有相关的“角落”又名在周边图像中的红色点到列表,所以我可以然后从中创建一个2D网格。但我不知道最简单的方法来做到这一点。我想知道是否有一个简单的逻辑来做到这一点?
假设你的形状是完整而坚实的,这里有一些想法。
首先,你当然可以限制由最小的搜索区域/最大坐标:
然后,我通过网格单元具有下列规定 - 循环查找所有的外角和内角:
然后,你可以通过发现角落迭代在2水平环发现周围形状的边界路线:
这不是最有效的算法,但它是很容易实现。
这里的一个替代解决方案:
内角的轻微问题,内角点是灰瓦的正确位置。这意味着它有2个空单元,但当然并不总是这样。图片示例显示了我的意思: http://i.imgur.com/3mlxWqB.jpg 左上角表示每个图块,因此有些角落实际上是零图块的一部分,这不是一部分该区域(或者它可能是另一个区域的一部分)。如果这有道理? – Sir
代码将找到右侧内角的单元格,而不是您标记的单元格。由于内角标准是“它周围只有一个零(或另一个形状)单元”。 –
@对不起,无法从手机发布图片。你明白我的意思吗? –
所以..你有关于灰色细胞的信息,对吧?我的意思是你知道这些细胞的坐标。我对么? –
是的,我有他们的“位置”和“区域”,它们属于这些瓷砖的灰色区域,瓷砖可以与其他区域的颜色相邻。黑色是未定义的数组中基本上为空的。 – Sir