格林公式计算多边形的面积

算法导论第31章第一节第8题。只要是边不相交的简单多边形,也就是说,不仅凸多边形,还有各种奇形怪状的凹多边形,都可以用格林公式求出面积。
格林公式:若函数P(x,y), Q(x,y)在由一条或几条光滑曲线所围成的闭区域D上连续,且有连续的一阶偏导数,则有

L为区域D的边界曲线,并取正方向。
边不相交的简单多边形正好是由数条线段围成的闭区域,所以可以使用格林公式。
令P=0, Q=x,则面积S =
设第i个点的坐标为,第i + 1个点的坐标为,则线段的参数式为,
所以,
所以面积。
上述公式可以计算任意简单多边形的面积,包括三角形,四边形,六边形。

python实现:
# P is list of vertices of the polygon
def polygon_area(P):
    n = len(P)
    P.append(P[0])
    S = 0
    for i in range(0, n):
        S = S + (P[i][0] + P[i + 1][0]) * (P[i + 1][1] - P[i][1])
    return 0.5 * abs(S)


作者:王二
链接:https://www.zhihu.com/question/53259589/answer/134574326
来源:知乎
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。

你可能感兴趣的:(计算几何)