叉乘求任意多边形面积
N:多边形的顶点数目
返回值:多边形面积
注意:
支持多边形,凹凸多边形都可
多边形顶点输入顺序按顺时针排序
struct Point{
double x,y;
}p[N];
int n;
double polygonarea()
{
int i,j;
double area = 0;
for(i = 0;i < n;++i){
j = (i+1)%n;
area += p[i].x*p[j].y;
area -= p[i].y*p[j].x;
}
area /= 2.0;
return (area<0?-area:area);
}
一道模板题:Click Here~