我也是从别的大佬那学的算法
计算几何系列,先来一道简单的。。。
全裸的计算几何题目,求多边形面积,非常基础的题。
只要记住这个公式:
如果逆时针给出点坐标,值为正,
如果顺时针给出点坐标,值为负。
当i=n-1 i+1就是n所代表的点就是第一个点
代码如下:
#include<stdio.h>
#include<math.h>
int main()
{
int n,a[1000],b[1000];
while(scanf("%d",&n)!=EOF&&n)
{
double sum=0;
for(int i=0;i<n;i++)
{
scanf("%d",&a[i]);
scanf("%d",&b[i]);
}
for(int i=0;i<n;i++)
sum+=(a[i]*b[(i+1)%n]-a[(i+1)%n]*b[i])/2.0;
printf("%.1lf\n",fabs(sum));
}
return 0;
}