改革春风吹满地

多边形面积公式

面积公式在这里插入图片描述

  • 如果逆时针给出点坐标,值为正,
  • 如果顺时针给出点坐标,值为负。
  • 包括凸凹多边形
  • 实质为==第一个点与第二个点 第二个点与第三个点 一直到第n个点与第一个点的 叉乘 == 的和

 1 #include <cstdio>
 2 #include <cmath>
 3 
 4 typedef struct Point
 5 {
 6     int x;
 7     int y;
 8 }P;
 9 
10 int main()
11 {
12     int n, m, l;
13     while(scanf("%d", &n) && n != 0)
14     {
15         P p[50];
16         double res = 0;
17         
18         for(int i = 0; i < n; ++ i)
19         {
20             scanf("%d %d", &m, &l);
21             p[i].x = m;
22             p[i].y = l;
23         }
24         
25         p[n].x = p[0].x;
26         p[n].y = p[0].y;
27         
28         for(int i = 0; i < n; ++ i)
29         {
30             res += (p[i].x * p[i+1].y - p[i+1].x * p[i].y);
31         }
32         printf("%.1f
", 0.5*fabs(res));
33     }
34     
35     
36     return 0;
37 }
原文地址:https://www.cnblogs.com/mjn1/p/11283093.html