對於任意多邊形面積的求法

2021-07-26 12:59:55 字數 762 閱讀 9970

input

輸入資料報含多個測試例項,每個測試例項佔一行,每行的開始是乙個整數n(3<=n<=100),它表示多邊形的邊數(當然也是頂點數),然後是按照逆時針順序給出的n個頂點的座標(x1, y1, x2, y2... xn, yn),為了簡化問題,這裡的所有座標都用整數表示。

輸入資料中所有的整數都在32位整數範圍內,n=0表示資料的結束,不做處理。

output

對於每個測試例項,請輸出對應的多邊形面積,結果精確到小數點後一位小數。

每個例項的輸出佔一行。

sample input

3 0 0 1 0 0 1

4 1 0 0 1 -1 0 0 -1

0

sample output

0.5

2.0

題解:用向量的叉乘,把多邊形分成n個三角形,分別求出每個三角形的面積,然後相加。

**:

#include

#include

#include

#include

#include

#include

using namespace std;

struct pointp[101];

int main()

for (i = 0; i < n-2; i++)

printf("%.1lf\n", s);

}return 0;

}

任意多邊形面積

給定多邊形的頂點座標 有序 讓你來求這個多邊形的面積,你會怎麼做?我們知道,任意多邊形都可以分割為n個三角形,所以,如果以這為突破點,那麼我們第一步就是把給定的多邊形,分割為數個三角形,分別求面積,最後累加就可以了,把多邊形分割為三角形的方式多種多樣,在這裡,我們按照如下圖的方法分割 s點作為起始點...

任意多邊形的面積

給定多邊形的頂點座標 有序 讓你來求這個多邊形的面積,你會怎麼做?我們知道,任意多邊形都可以分割為n個三角形,所以,如果以這為突破點,那麼我們第一步就是把給定的多邊形,分割為數個三角形,分別求面積,最後累加就可以了,把多邊形分割為三角形的方式多種多樣,在這裡,我們按照如下圖的方法分割 s點作為起始點...

任意多邊形面積計算

任意多邊形的面積可由任意一點與多邊形上依次兩點連線構成的三角形向量面積求和得出。向量面積 三角形兩邊向量的叉乘。如下圖 按定理,多邊形面積由p點與a g的各頂點連線所構成的三角形向量面積構成,假定多邊形頂點座標順序為a g,逆時針為正方向,則有如下結論 pab,pbc,pcd均為順時針,面積為負 p...