我正在處理由2D網格上的正方形瓷磚組成的多邊形。多邊形只是存儲爲元組列表,每個元組代表一個圖塊的座標。多邊形總是連續的,沒有孔。如何確定由網格單元格組成的任意形狀的拐角/頂點單元格
我想要做的是確定哪個圖塊表示沿着多邊形邊界的頂點,以便稍後我可以在每個圖塊之間跟蹤以產生多邊形的邊界,或者確定兩個連續頂點之間的距離找到一個邊的長度等
這裏是一個多邊形的一個例子(5×4矩形從左上角減去3×2矩形,產生一個向後的「L」):
polygon_tiles = [(3, 0), (4, 0), (3, 1), (4, 1), (0, 2), (1, 2), (2, 2), (3, 2),
(4, 2), (0, 3), (1, 3), (2, 3), (3, 3), (4, 3)]
理想情況下,我正在尋找的算法會產生如下結果:
polygon_verts = [(3, 0), (4, 0), (4, 3), (0, 3), (0, 2), (3, 2)]
將頂點列出以便順時針繞邊界順序追蹤。
只是fiddling around用一些測試情況下,這個問題似乎更爲複雜,比我想到,尤其是怪異的情況下,當一個多邊形具有1瓦範圍內的擠壓(在這種情況下,如地磚的一個可能必須被存儲爲一個頂點兩次??)。
我在Python中工作,但任何洞察力都被讚賞,即使它是僞代碼。
您的元組代表x,y平面上的點是否連續? – Greg 2013-02-12 07:59:11