2015-11-05 52 views
0

我有一個正方形,它是許多小單元格的網格。每個單元的大小爲0.1 * 0.1。繪製幾條曲折線將該正方形劃分爲子區域。之字形線只跟隨細胞邊緣。網格區域分爲幾個子區域。如何跟蹤每個網格的成員資格?

這些鋸齒線交叉的頂點被計算並存儲在不同的矩陣中。在這種情況下,在中心會有6條鋸齒線,因此有6個矩陣存儲線的座標。

每個單元的中心以及四個頂點都被計算並存儲在一個大矩陣中。現在,如果我想跟蹤每個單元格屬於哪個子區域,我應該使用什麼循環算法?我們將左上方的區域標記爲1,然後順時針計數。然後左上角區域的單元格應該標記爲1.右上角區域的單元格應該標記爲2,依此類推。

enter image description here

+2

請給出一個輸入數據的例子。輸入是一個已經過濾的鋸齒形曲線嗎? – Daniel

+0

曲折線的輸入是6矩陣。每個都有2列,但行數不同。 – mike

+0

對於第一列[.1.1.2.2.3.3 ...]'第二列[.1.2.2.3.3.4 ...]',鋸齒線從從左下角到右上角。 – mike

回答

0

從給定的例子,我們可以推斷,該地區是「部門」有一個共同的中心和會議輪廓的徑向線。

您可以從它們各自的數組中獲得曲折線的起始邊緣(在輪廓上)。他們各自分開屬於不同區域的兩個單元。通過計算角度並對它們進行排序,您可以越來越多地對區域進行編號並將它們關聯起始單元格。

現在「繪製」大矩陣中的鋸齒形線條(每個單元格有兩個標記,表示在其右側或下方存在邊緣)。然後,從每個區域的單元格開始,使用seed filling算法。您將需要修改基本算法以說明邊緣的存在。

+0

我不確定你的應用程序在做什麼,但也許它可以用不同的方式來解決,而不需要網格:你可以直接檢查w.r.t.線段。 –