求任意多邊形面積(凹多邊形和凸多邊形)

2021-08-22 02:56:16 字數 492 閱讀 1660

遇到問題:已知多邊形的各個左邊點,要求多邊形的面積

然後我搜尋了下看到這篇文章:

這個人說的不多,但是簡單明瞭:

首先已知各定點的座標分別為(x1,y1),(x2,y2),(x3,y3)。。。,(xn,yn)

則該多邊形的面積公式為

s=1/2*[(x1*y2-x2*y1)+(x2*y3-x3*y2)+...... +(xk*yk+1-xk+1*yk)+...+(xn*y1-x1*yn) ]

這個面積公式可能算出來是正的,也有可能是負的,所以要加絕對值。

最後的面積為:s=abs(s)。

他還附上了c++的**,有需要的可以看下。

我以為這是算凸多邊形面積的公式,心想能不能也有算凹多邊形面積的公式。然後我搜到了這篇文章:

這個人較詳細的說明了上面公式也是可以應用於凹多邊形的。

在搜尋過程中,還發現了另外一種方法:皮克公式。

這個方法也可以求任意多邊形面積。不過有限制條件,而且需要柵格的那種。

求任意多邊形面積

首先宣告乙個概念 三角形外積 把向量外積定義為 a b a b sin a,b 方向根據右手法則確定,就是手掌立在a b所在平面的向量a上,掌心向b,那麼大拇指方向就是垂直於該平面的方向,被規定為外積 的方向。又根據三角形的面積公式 s 0.5 a b sin s 0.5 a b 上書中給出定理 任...

任意多邊形面積

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

求任意多邊形的面積

輸入乙個點列,順序連線成乙個封閉多邊形,計算多邊形的面積。思路 求多邊形的面積可以使用叉乘求面積。設多邊形有n個頂點,用陣列將其存起來,其餘各點均與第乙個點連起來,這樣從逆時針方向來看,每兩個點構成乙個三角形,在使用叉乘來求的面積。有一點需要明確一下,每一次使用叉乘求面積,不能加絕對值,因為每一步叉...