常見凸多邊形判斷方法

來源:互聯網
上載者:User
凸多邊形的判定方法

在計算幾何和地理資訊系統中,多邊形的凹凸性判定十分重要。那麼什麼是凹多邊形和凸多邊形呢?首先,我們從直觀上來理解,凸多邊形就是多邊形任意兩個頂點的連線在多邊形內,那麼凹多邊形就是至少能找出一條線在多邊形外。

 

一些基礎概念

頂點、向量、向量叉乘、

一般來說,多邊形是由首尾相連的頂點組成的。這裡的頂點就是幾何中的點。向量,在2D以及3D幾何中,點和向量可以用一個類或者結構體來表示,但是點和向量在數學上存在著本質的區別。點是有位置的,但是沒有方向。而向量是沒有位置,但是有方向,主要就是表達幾何中的位移。

在多邊形凹凸性判斷中,要用到向量叉乘,也就是向量叉乘。向量叉乘在圖形系統中有著非常重要的應用,包括CAD、地理資訊系統等。

 

幾種常見的凸多邊形判斷方法:

1)角度法:

判斷每個頂點所對應的內角是否小於180度,如果小於180度,則是凸的,如果大於180度,則是凹多邊形。

2)凸包法:

這種方法首先計算這個多邊形的凸包,關於凸包的定義在此不再贅述,首先可以肯定的是凸包肯定是一個凸多邊形。如果計算出來的凸多邊形和原始多邊形的點數一樣多,那就說明此多邊形時凸多邊形,否則就是凹多邊形。

3)頂點凹凸性法

利用以當前頂點為中心的向量叉乘或者計算三角形的有符號面積判斷多邊形的方向以及當前頂點的凹凸性。

假設當前連續的三個頂點分別是P1,P2,P3。計算向量P1P2,P2P3的叉乘,也可以計算三角形P1P2P3的面積,得到的結果如果大於0,則表示P3點線上段P1和P2的左側,多邊形的頂點是逆時針序列。然後依次計算下一個前後所組成向量的叉乘,如果在計算時,出現負值,則此多邊形時凹多邊形,如果所有頂點計算完畢,其結果都是大於0,則多邊形時凸多邊形。

4)辛普森面積法

利用待判別的頂點以及前後兩個頂點所組成的三角形,利用辛普森公式計算其面積,如果此三角形面積與整個多邊形面積符號相同,那麼這個頂點是凸的;如果此三角形面積與整個多邊形面積符號不同,那麼這個頂點是凹的,即整個多邊形也是凹多邊形。

 

結論:以上只是幾種最基本的判定方法,當然還有更優秀的演算法,由於個人能力就到此為止了。

 

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.