计算三角形面积
double getS(Point a,Point b,Point c)
{
return ((b.x - a.x) * (c.y - a.y) - (b.y - a.y) * (c.x - a.x)) / 2; //应用叉积的定义推出的
}
计算多边形面积。必须确保 n>=3,且多边形是凸多边形
double getPS(Point p[], int n)
{
double sumS = 0;
for(int i = 1; i <= n - 1; i++)
sumS += getS(p[1], p[i], p[i + 1]); // n-2个三角形的面积和
return sumS;
}
参考: 计算凸多边形面积的算法
计算任意多边形的面积
首先判断图形是否是凸多边形,然后把它切割成多个三角形,然后利用叉乘定理,可以计算出他的面积。