2017-05-24 69 views
0

當我在觸摸屏上畫手繪線條,曲線,圓形或任何其他筆觸時,我需要一種算法來判斷是否在筆畫中形成了任何封閉區域。例如,如果繪製小寫字母'e',則其中包含一個封閉區域,但'm','w'等字母在其中沒有任何封閉區域。識別封閉區域的算法

+0

其實我只是用'e'來解釋符號的'封閉區域'。我想處理的是我自己設計的一系列符號,每一個符號都有特定的含義。一旦繪製了符號,我希望算法能夠判斷其中是否有封閉區域。 – zhuhuren

+0

輸入是什麼?路上的一些點?一個圖像?對於後者來說,想出一個高性能的算法是相當困難的。 – maraca

+0

路徑上的某些點。 – zhuhuren

回答

0
  1. 對於已經存在的線,你可以選擇屏幕上的一個像素和 然後展開它在線路停止所有方向,直到整個 區域覆蓋。
  2. 如果您不認爲屏幕邊界是區域邊界:您可以通過檢查屏幕邊界是否爲屏幕邊界來確定它是否爲封閉區域。
  3. 如果確實將屏幕邊界視爲區域邊界:那麼它是一個封閉區域。
  4. 減去剛纔檢查的區域。並選擇一個新的像素。重複,直到沒有像素剩下。
+0

我想處理的是我自己設計的一系列符號。一旦繪製了一個符號,我希望算法能夠快速判斷它是否有一個封閉的區域,所以算法應該能夠很快地告訴它。它也應該能夠判斷它是順時針還是逆時針繪製的。 – zhuhuren

+0

在你說的評論中,輸入包含一堆路徑。如何計算所有路徑的交點並將所有具有交點的路徑合併到一個圖中。然後你可以使用圖算法來檢測循環。 – Shiro

+0

每個符號(或路徑)的輸入是一系列點。 – zhuhuren