多邊形面積

2021-06-30 16:29:21 字數 1138 閱讀 7592

點積a·b=(x1*x2 + y1*y2)=|a||b|·cosθ

點積的結果是乙個數值;

叉積a×b=(x1*y2 - x2*y1)=|a||b|·sinθ

叉積的結果也是乙個向量,是垂直於向量a,b所形成的平面,如果看成三維座標的話是在 z 軸上,上面結果是它的模。

三角形的面積

向量a和 向量b的叉積的絕對值表示 以 向量a和 向量b 為兩邊形成的平行四邊形的面積.即:

s=∣a×b∣
s表示以 向量a 和 向量b 為兩邊形成的平行四邊形的面積

以此類推就可以得到(1/2) * s就可以表示以 向量a 和 向量b 為兩邊形成的三角形的面積.
具體的實現

假設三角形的3的頂點分別為p1(x1,y1),p2(x2,y2),p3(x3,y3)

向量a 就可以表示為(x2-x1,y2-y1)

向量b 就可以表示為(x3-x1,y3-y1)

根據二維向量叉積的運算

∣a×b|=(x2-x1)(y3-y1) - (y2-y1)(x3-x1)

則這個三角形的面積

s = |((x2 - x1) * (y3 - y1) - (y2 - y1) * (x3 - x1) ) / 2|

多邊形的面積

多變形可以分割成多個三角形,從而根據三角形面積公式就能求出多邊形的面積

struct node

p[102];

int area(node a,node b)

sum += area(p[n - 1], p[0]);

for (i = 1; isum += area(p[i - 1], p[i]);

sum*=0.5;

多邊形求面積,

這個程式很值得一博。昨天一位學地質的高中同學問我寫個程式求多邊形面積,因為他說看到excel就煩。正好前段時間在csdn上看到乙個帖子求多邊形面積,也想到了乙個演算法,於是寫了這個程式。演算法描述 乙個多邊形的面積可以由這樣兩個系列的梯形來計算,以凸多邊形舉例,在圖形上方的一系列邊和其在x軸的投影組...

10 4 多邊形面積

10.4 多邊形面積 源程式名 area.pas,c,cpp 可執行檔名 area.exe 輸入檔名 area.in 輸出檔名 area.out 問題描述 給出乙個簡單多邊形 沒有缺口 它的邊要麼是垂直的,要麼是水平的。要求計算多邊形的面積。多邊形被放置在乙個x y的卡笛爾平面上,它所有的邊都平行於...

多邊形的面積

1 三角形面積 xy平面內,有三角形 123,如下圖所示 1 借助向量叉積和點積,這個三角形的面積公式非常簡單 這個面積是有符號的 1 2 3逆時針排列,則面積為正 1 2 3順時針排列,則面積為負。這是對右手系的總結,如果從背面看這個座標系就成了左手系。在左手系下,面積的正負情況正好相反。所以,關...