任意多邊形的面積計算(包括凹多邊形的)
瀏覽:411095
任意多邊形的面積計算(包括凹多邊形的,以及畫多邊形時線相交了的判別),最好提供相關資料,越詳細越好,謝謝
---------------------------------------------------------------
怎么還是這個問題,最近老是這題。
用這個方法吧:
我們都知道已知A(x1,y1)B(x2,y2)C(x3,y3)三點的面積公式為
|x1 x2 x3 |
S(A,B,C) = |y1 y2 y3 | * 0.5 (當三點為逆時針時為正,順時針則為負的)
|1 1 1 |
對多邊形A1A2A3、、、An(順或逆時針都可以),設平面上有任意的一點P,則有:
S(A1,A2,A3,、、、,An)
= abs(S(P,A1,A2) + S(P,A2,A3)+、、、+S(P,An,A1))
P是可以取任意的一點,用(0,0)就可以了。
這種方法對凸和凹多邊形都適用。
還有一個方法:
任意一個簡單多邊形,當它的各個頂點位于網(wǎng)格的結點上時,它的面積數(shù)S=b/2+c+1
其中:b代表該多邊形邊界上的網(wǎng)絡結點數(shù)目
c代表該多邊形內(nèi)的網(wǎng)絡結點數(shù)目
所以把整個圖形以象素為單位可以把整個圖形分成若干個部分,計算該圖形邊界上的點b和內(nèi)部的點c就得到面積數(shù)S了,然后把S乘以一個象素的面積就是所求的面積了。
---------------------------------------------------------------
怎么還是這個問題,最近老是這題。
用這個方法吧:
我們都知道已知A(x1,y1)B(x2,y2)C(x3,y3)三點的面積公式為
|x1 x2 x3 |
S(A,B,C) = |y1 y2 y3 | * 0.5 (當三點為逆時針時為正,順時針則為負的)
|1 1 1 |
對多邊形A1A2A3、、、An(順或逆時針都可以),設平面上有任意的一點P,則有:
S(A1,A2,A3,、、、,An)
= abs(S(P,A1,A2) + S(P,A2,A3)+、、、+S(P,An,A1))
P是可以取任意的一點,用(0,0)就可以了。
這種方法對凸和凹多邊形都適用。
還有一個方法:
任意一個簡單多邊形,當它的各個頂點位于網(wǎng)格的結點上時,它的面積數(shù)S=b/2+c+1
其中:b代表該多邊形邊界上的網(wǎng)絡結點數(shù)目
c代表該多邊形內(nèi)的網(wǎng)絡結點數(shù)目
所以把整個圖形以象素為單位可以把整個圖形分成若干個部分,計算該圖形邊界上的點b和內(nèi)部的點c就得到面積數(shù)S了,然后把S乘以一個象素的面積就是所求的面積了。
技術鄰APP
工程師必備
工程師必備
- 項目客服
- 培訓客服
- 平臺客服
TOP




















