C 實現 任意多邊形的面積

2021-07-11 01:46:22 字數 671 閱讀 5371

//求任意多邊形的面積

/*語法:result = polygonarea(vector&polygon, int n);

引數:polygon:多變形頂點陣列

n:多邊形頂點數目

返回值:多邊形面積

注意:支援任意多邊形,凹、凸皆可

多邊形頂點輸入時按順時針順序排列

*/#include

#include

using

namespace

std;

typedef

struct point

} point;

double polygonarea(vector

&polygon, int n)

area /= 2;

return(area < 0 ? -area : area);

}//測試函式

int main()

cout

<< "此多邊形的面積為"

<< polygonarea(polygon, polygon.size()) << endl;

return

0;}

任意多邊形面積

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

任意多邊形的面積

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

任意多邊形面積計算

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