多边形面积的求法
学了高数的同学,会学到向量的外积,也可知道它有一个用途,可以求三角面积。
•外积的几何意义:α和β所张成的平行四边形的有向面积
•由求三角形面积的方法可以推广求凸多边形面积,如图,从一固定点出发,向其他各点引辅助线,这样就分割成了若干个三角形,利用上式求出每个三角形的面积再相加即可。
代码实现:
不过这种方法有局限性,只能求凸多边形的面积,对于凹多边形似乎就不可以了。
这里再提供一种凸凹都合适的求法。
•double Area(int n) //计算多边形面积,凹凸多边形皆可
•{
• int i;
• double s;
• s = p[0].y *(p[n-1].x - p[1].x);
• for(i=1; i<n; i++)
• s+=p[i].y * (p[i-1].x - p[(i+1)%n].x);
• if(s<0) s=s*(-1.0);
• return 1.0*s/2;
•}
就到这里吧,这是第一次写这个,如果有错误敬请谅解,给予提议。