求凸多边形的有向面积,可以直接分成N-2个三角形。
因为向量计算出的是有向面积,因此这个算法凹多边形也适用。
double Area(Point *p, int n) {
double area = 0;
for(int i=1; i<n-1; i++)
area += cross(p[i]-p[0], p[i+1]-p[0]);
return area/2; //叉积有向面积的两倍
}
..END
求凸多边形的有向面积,可以直接分成N-2个三角形。
因为向量计算出的是有向面积,因此这个算法凹多边形也适用。
double Area(Point *p, int n) {
double area = 0;
for(int i=1; i<n-1; i++)
area += cross(p[i]-p[0], p[i+1]-p[0]);
return area/2; //叉积有向面积的两倍
}
..END