acm中計算幾何是常考的乙個題型,這裡總結一下比較常見的多邊形面積求和問題:
三角形的面積公式:
s=0.5*ab*ac
這裡以原點(0,0)為三角形的乙個頂點。
向量叉乘:a*b=x1y2-x2y1
s= (x1y2-x2y1)/2
多邊形就是多個三角形相加,因為是向量叉乘,因此自身帶有正負號,因此同樣適用於凹多邊形(減去了多出來的部分)。
因此,多邊形的面積計算方法就是sumeare+=s;
下面道例題來說一下:
牛客練習賽36,多邊性面積+字首和(否則超時)
ac:
const int maxn=1e5+10;
const int inf32=0x3f3f3f3f;
const ll inf64=0x3f3f3f3f3f3f3f3f;
const ll mod=1e9+7;
const double pi=acos(-1.0);
//三角形的面積公式:
//s=0.5*ab*ac
//向量叉乘:a*b=x1y2-x2y1
//s= (x1y2-x2y1)/2
double x[maxn],y[maxn],seare[maxn];
double x_,y_;//這裡是選取的乙個點作為引數。
double gets(int i,int j)
int main()
cout<}
多邊形面積
點積 a b x1 x2 y1 y2 a b cos 點積的結果是乙個數值 叉積 a b x1 y2 x2 y1 a b sin 叉積的結果也是乙個向量,是垂直於向量a,b所形成的平面,如果看成三維座標的話是在 z 軸上,上面結果是它的模。三角形的面積 向量a和 向量b的叉積的絕對值表示 以 向量a...
多邊形求面積,
這個程式很值得一博。昨天一位學地質的高中同學問我寫個程式求多邊形面積,因為他說看到excel就煩。正好前段時間在csdn上看到乙個帖子求多邊形面積,也想到了乙個演算法,於是寫了這個程式。演算法描述 乙個多邊形的面積可以由這樣兩個系列的梯形來計算,以凸多邊形舉例,在圖形上方的一系列邊和其在x軸的投影組...
10 4 多邊形面積
10.4 多邊形面積 源程式名 area.pas,c,cpp 可執行檔名 area.exe 輸入檔名 area.in 輸出檔名 area.out 問題描述 給出乙個簡單多邊形 沒有缺口 它的邊要麼是垂直的,要麼是水平的。要求計算多邊形的面積。多邊形被放置在乙個x y的卡笛爾平面上,它所有的邊都平行於...