求任意多边形面积

 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 }
c
原文地址:https://www.cnblogs.com/ypacm/p/6697789.html