Last updated 6 years ago
求凸多边形面积。
向量v1⃗\vec{v_{1}}v1和v2⃗\vec{v_{2}}v2的叉积的值恰好等于由v1⃗\vec{v_{1}}v1、v2⃗\vec{v_{2}}v2组成的平行四边形的面积,组成的三角形的面积的222倍。
因此有
计算三角形面积的时间复杂度为O(1)O(1)O(1)。
二维坐标系上的nnn多边形有nnn个顶点,随意选取一个顶点ppp。ppp与多边形上其他每条边的两个端点组成一个三角形(共n−2n - 2n−2个三角形),像这样顶点ppp与所有边分别组成的所有三角形的面积之和,即为该多边形的面积。注意到叉积的值可能为负数,最终的面积取绝对值即可。如图所示:
计算多边形面积的时间复杂度为O(n)O(n)O(n)。