我有一组点,想知道是否有一个函数(为了方便和速度)可以计算一组点所包围的面积。
例如:
x = np.arange(0,1,0.001)
y = np.sqrt(1-x**2)
points = zip(x,y)
给定 points
面积应约等于 (pi-2)/4
。也许有来自 scipy、matplotlib、numpy、shapely 等的东西可以做到这一点?我不会遇到 x 或 y 坐标的任何负值……它们将是没有任何定义函数的多边形。
编辑:
点很可能不会按任何指定顺序(顺时针或逆时针)并且可能非常复杂,因为它们是一组边界下的 shapefile 中的一组 utm 坐标
原文由 pbreach 发布,翻译遵循 CC BY-SA 4.0 许可协议
鞋带公式 的实现可以在
Numpy
中完成。假设这些顶点:我们可以重新定义numpy中的函数求面积:
并获得结果:
避免
for
循环使这个函数比PolygonArea
快 ~50 倍:计时在 Jupyter notebook 中完成。