如何使用python从点列表中计算多边形的面积?

zyt*_*hon 3 python geometry polygon

我有一个 2D 点的列表/数组,它们形成一个非凸 非自相交形状。我想计算由该多边形包围的面积。

首先,我需要用我作为“曲线行走”(非自相交)提供的点形成一个多边形。如果我可以对那个多边形进行三角剖分,我就可以计算面积(我可以容忍一个小的相对误差)。

scipy.spatial.ConvexHull()显然,在错误的形状和区域中使用 scipy 的结果,但我还没有在大型数学包中找到可以执行此操作的可用算法。

谁能告诉我怎么做?

Shp*_*ter 11

使用适用于 Python 2.7 和 3 的 shapely 模块

In [41]: from shapely.geometry import Polygon

In [48]: coords  = ((-1, 0), (-1, 1), (0, 0.5), (1, 1), (1, 0), (-1, 0))

In [49]: polygon = Polygon(coords)

In [50]: polygon.area
Out[50]: 1.5
Run Code Online (Sandbox Code Playgroud)