简单几何。
求N边形的面积,叉积。
#include <cstdio>
#include <cmath>#define MAX 1000
using namespace std;
typedef struct A
{
double x,y;
}POINT;
POINT p[MAX];
double mul_cross(POINT a,POINT b)
{
return ((a.x-p[0].x)*(b.y-p[0].y)-(a.y-p[0].y)*(b.x-p[0].x));
}
int main()
{
int n;
double sum;
while(scanf("%d",&n)&&n)
{
sum=0.0;
for(int i=0;i<n;i++)
scanf("%lf%lf",&p[i].x,&p[i].y);
for(int i=1;i<n-1;i++)
sum+=mul_cross(p[i],p[i+1]);
printf("%.1f\n",fabs(sum)/2);
}
return 0;
}