簡體   English   中英

具有不超過8個頂點的多邊形在地圖上的零周圍簇

[英]Surround cluster of zeros on map with polygon with no more than 8 vertexes

在圖像地圖(500 x 500)上,我只有零和一。 大多數情況下,一切都是1,但我有兩個零的群集(代表障礙,因此玩家無法越過山丘)。 障礙物可以具有任意形狀,因此為了簡化起見,我決定找到一種方法,用不超過8個頂點的多邊形包圍每個此類障礙物(周圍的多邊形內部可以有1,但是障礙物的所有0必須都在內部該多邊形)。 對於每個障礙,我需要生成一個多邊形。 我可以將障礙物的外部邊界上的每個0連接起來,但是它將產生具有n(n >> 8)個頂點的多邊形。 我正在尋找任何建議如何執行此操作或一些類似算法的名稱。

您應該首先構建群集的凸包 之后,您可以使用以下策略將頂點數量減少到8: 在此處輸入圖片說明

您可以找到任意一對連接點的交叉點。 在提供的圖像上,點8和9被一個10代替,但是增加了多邊形大小。

注意:此方法不能保證此多邊形不會與另一個“零”群集重疊。 有時,具有8個頂點的多邊形可能無法覆蓋沒有其他簇的交集的簇。

您可以將S,SW,W,NW,N,NE,E和SE最遠的點作為障礙,並通過在垂直方向上穿過這些點的線段創建一個八邊形。 即適當地:WE,NW-SE等。 我認為,這將是最快,最簡單的算法,與@Толя的解決方案相反,它永遠不會給您超長的星形射線頂點。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM