求任意多邊形面積與重心的演算法

2021-08-21 11:18:32 字數 785 閱讀 1059



題目位址

多邊形重心問題

時間限制:3000 ms  |  記憶體限制:65535 kb

難度:5

描述在某個多邊形上,取n個點,這n個點順序給出,按照給出順序將相鄰的點用直線連線, (第乙個和最後乙個連線),所有線段不和其他線段相交,但是可以重合,可得到乙個多邊形或一條線段或乙個多邊形和乙個線段的連線後的圖形;

如果是一條線段,我們定義面積為0,重心座標為(0,0).現在求給出的點集組成的圖形的面積和重心橫縱座標的和;

輸入第一行有乙個整數0

//給出乙個程式

2.三角形面積

用向量叉乘運算

s=ab叉乘ac/2

正負由給出座標是順時針還是逆時針決定

座標式((x1-x0)*(y2-y0)-(x2-x0)*(y1-y0))/2

3.不規則多邊形面積,可以把他分成若干個小三角形,依次求和

當多邊形為凸多邊形,顯然成立

當多邊形為凹多邊形,則多邊形點給出的順序,一定會相反(有的是順時針,有的是逆時針),用該公式求出的面積為負,正好抵消,由此可知該方法對所有多邊形都成立

求重心座標

對每個小三角形,求出其重心與面積,則重心座標與總面積的積,等於每個 小三角形重心與面積的積的和。

求任意多邊形面積

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

求任意多邊形的面積

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

任意多邊形面積

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