1478 -- 【模擬試題】多邊形面積
description
在直角座標系中,給出n個頂點的座標,求這n個點所圍成的圖形的周長和面積。
注意:(1)如果所有點共線則周長按直線的長度計算,面積視為0;
(2)如果部分點共線按共線後的多邊形計算;
(3)所給出的n個頂點如果能圍成多邊形則均為凸多邊形。
input
第一行輸入多邊形頂點個數n(3 <= n <= 100);
接下來n行每行輸入乙個頂點座標x,y,x,y均為整數且座標的絕對值均不超過100。
output
兩行,即多邊形的周長和面積(均保留兩位小數)。
sample input
40 0
1 00 1
1 1sample output
4.00
1.00
source
xinyue
求乙個凸包,再用有向梯形算凸包面積,邊長直接暴力計算再累加~
注意判斷是不是一條直線
#include#include#include#includeusing namespace std;
struct point
w[10005];
int n;
int stk[10005]=,top=0;
point low;
bool str=1;
double x1,x2,y1,y2;
bool cmpp(point a,point b)
if(judge==0&&squ(a.x-low.x)+squ(a.y-low.y)1&&cross(w[stk[top]],w[i],w[stk[top-1]])<=0)top--;
stk[++top]=i;
} }double area=0;
double len=0;
void cal()
for(int i=1;itop-1,不是1-->top否則加錯..
printf("%0.2lf\n%0.2lf",len,area/2);
}int main()
Cows POJ 3348 凸包 多邊形面積
題目大意 給出n個點,讓你求凸包的面積 50的值是多少 解題思路 先求出凸包,然後根據多邊形面積公式求出公式 多邊形面積公式 for int i 0 i1 i ans ch i x ch i 1 y ch i 1 x ch i y ans abs ans 2.0 ac include include...
觀星(計算幾何 凸包 多邊形面積)
對於平面上有n個點分為三類,要求尋找乙個三角形,三個頂點分別屬於這三類,求解最大面積。n 3000 首先考慮到o n 2 o n 2 o n2 的列舉,然後對於另外一種考慮這個點的位置,顯然它應該在凸包上,因為我們相當於要尋找距離某個直線最遠的點,所以相當於用乙個直線來截。然後考慮在凸包上二分,首先...
多邊形面積
點積 a b x1 x2 y1 y2 a b cos 點積的結果是乙個數值 叉積 a b x1 y2 x2 y1 a b sin 叉積的結果也是乙個向量,是垂直於向量a,b所形成的平面,如果看成三維座標的話是在 z 軸上,上面結果是它的模。三角形的面積 向量a和 向量b的叉積的絕對值表示 以 向量a...