遇到問題:已知多邊形的各個左邊點,要求多邊形的面積
然後我搜尋了下看到這篇文章:
這個人說的不多,但是簡單明瞭:
首先已知各定點的座標分別為(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個頂點,用陣列將其存起來,其餘各點均與第乙個點連起來,這樣從逆時針方向來看,每兩個點構成乙個三角形,在使用叉乘來求的面積。有一點需要明確一下,每一次使用叉乘求面積,不能加絕對值,因為每一步叉...