簡體   English   中英

順時針(逆)排序CONCAVE多邊形頂點?

[英]Ordering CONCAVE polygon vertices in (counter)clockwise?

我有一組無序頂點,可能形成一個凹多邊形。 現在我希望順時針或逆時針訂購它們。

這里的答案表明以下步驟:

  • 找到多邊形中心
  • 計算角度
  • 按角度訂購點數

這顯然僅適用於凸多邊形,並且當這些點形成凹面時會失敗。

我怎么能這樣做呢?

我正在使用Python,但歡迎所有通用答案。

一般來說,你的問題似乎不明確。 例如,給定以下頂點集:

平面上的四個點以非凸排列

您認為哪些非凸多邊形是連接它們的“正確”方法?

多邊形ABCDPolygon ACDB多邊形ACBD

現在,很明顯,您可以使用各種可能的標准來選擇不同的可能訂單。 例如,您可能希望選擇最小化邊長度的排序,如果這些點實際上在簡單多邊形的邊界上彼此非常接近,則應該產生相當“合理”的結果:

具有許多頂點的簡單非凸多邊形

不幸的是,對於一組通用點,找到最小化總邊長的排序結果是眾所周知的NP完全問題 也就是說,有許多啟發式算法 通常可以快速找到近乎最優的解決方案,即使他們不能總是保證他們找到的解決方案是真正的最小值。

暫無
暫無

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

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