我與myGrid[x,y]
查找在周長上的點來表示邊界/形狀
我試圖找到一種方法來找到解決選擇網格,所以我再有周邊格式的簡單的2D網格一個選擇的形狀。
這是我的意思的例子:
這裏的想法是要找到所有相關的「角落」又名在周邊圖像中的紅色點到列表,所以我可以然後從中創建一個2D網格。但我不知道最簡單的方法來做到這一點。我想知道是否有一個簡單的邏輯來做到這一點?
我與myGrid[x,y]
查找在周長上的點來表示邊界/形狀
我試圖找到一種方法來找到解決選擇網格,所以我再有周邊格式的簡單的2D網格一個選擇的形狀。
這是我的意思的例子:
這裏的想法是要找到所有相關的「角落」又名在周邊圖像中的紅色點到列表,所以我可以然後從中創建一個2D網格。但我不知道最簡單的方法來做到這一點。我想知道是否有一個簡單的邏輯來做到這一點?
假設你的形狀是完整而堅實的,這裏有一些想法。
首先,你當然可以限制由最小的搜索區域/最大座標:
然後,我通過網格單元具有下列規定 - 循環查找所有的外角和內角:
然後,你可以通過發現角落迭代在2水平環發現周圍形狀的邊界路線:
這不是最有效的算法,但它是很容易實現。
這裏的一個替代解決方案:
內角的輕微問題,內角點是灰瓦的正確位置。這意味着它有2個空單元,但當然並不總是這樣。圖片示例顯示了我的意思: http://i.imgur.com/3mlxWqB.jpg 左上角表示每個圖塊,因此有些角落實際上是零圖塊的一部分,這不是一部分該區域(或者它可能是另一個區域的一部分)。如果這有道理? – Sir
代碼將找到右側內角的單元格,而不是您標記的單元格。由於內角標準是「它周圍只有一個零(或另一個形狀)單元」。 –
@對不起,無法從手機發布圖片。你明白我的意思嗎? –
所以..你有關於灰色細胞的信息,對吧?我的意思是你知道這些細胞的座標。我對麼? –
是的,我有他們的「位置」和「區域」,它們屬於這些瓷磚的灰色區域,瓷磚可以與其他區域的顏色相鄰。黑色是未定義的數組中基本上爲空的。 – Sir