Convex Polygon Area - 凸多边形面积


问题

求凸多边形面积。

三角形面积

向量的叉积的值恰好等于由组成的平行四边形的面积,组成的三角形的面积的倍。

ConvexPolygonArea1.png

因此有

计算三角形面积的时间复杂度为

多边形面积

二维坐标系上的多边形有个顶点,随意选取一个顶点与多边形上其他每条边的两个端点组成一个三角形(共个三角形),像这样顶点与所有边分别组成的所有三角形的面积之和,即为该多边形的面积。注意到叉积的值可能为负数,最终的面积取绝对值即可。如图所示:

ConvexPolygonArea2.png

因此有

计算多边形面积的时间复杂度为


源码

ConvexPolygonArea.h

ConvexPolygonArea.cpp

测试

ConvexPolygonAreaTest.cpp