hdu 2036 已知N个顶点的坐标,求多边形的面积
将面积分成若干个三角形,通过向量的叉积求得三角形面积。
1 #include<stdio.h> 2 struct point 3 { 4 double x,y; 5 6 }p[105]; 7 //求任意多边形面积:将面积分成若干个三角形,通过向量的叉积求得三角形面积。 8 int main() 9 { 10 int n; 11 int i,j,k; 12 while(~scanf("%d",&n)) 13 { 14 double sum = 0; 15 if(n == 0) 16 break; 17 for(i = 0;i < n;i ++) 18 { 19 scanf("%lf %lf",&p[i].x,&p[i].y); 20 } 21 for(i = 0;i < n - 1;i ++) 22 { 23 sum += (p[i].x * p[i + 1].y - p[i + 1].x * p[i].y) * 0.5; //三角形面积 24 } 25 sum += (p[n - 1].x * p[0].y - p[0].x * p[n - 1].y) * 0.5; 26 printf("%.1lf ",sum); 27 } 28 return 0; 29 }