如何计算一系列随机点的面积?

5

我正在编写一段代码,用于处理遥控飞机喷洒农药的位置数据,并计算横跨的总表面积(不重复计算任何区域)。我无法弄清如何计算给定操作期间的区域面积。

根据以下表格,计算点覆盖的区域面积。

x,y
1,2
1,5
4,3
6,6
3,4
3,1

有什么想法吗?我浏览了Green定理,但是没有实际的概念可以编码。

感谢任何建议。

7个回答

9

一个叫做'scipy.spatial.ConvexHull'的流行Python库可以帮助计算一系列点的凸包。请参考:https://docs.scipy.org/doc/scipy-0.19.0/reference/generated/scipy.spatial.ConvexHull.html - bing

4

1

我不确定你是否真正需要的是“表面积”,而不是距离。看起来你想要计算该列表中一个点与下一个点之间的距离。如果是这样,只需使用距离公式即可。

如果飞机在这些点之间飞行时以恒定宽度的灰尘掉落,则该区域仅为这些点之间的距离乘以喷雾的宽度。


我真的很喜欢这种方法,我忘记在描述中加入这一点了。这种方法存在重复计算覆盖面积的缺陷。有没有一种简单的方法来过滤掉重复计算的数量? - TelsaBoil
@TelsaBoil - 我之前没有意识到重复计数会成为一个问题。看看Lior Kogan的回答,它似乎非常有用。 - Dave McClelland

1

如果您的点保证在整数网格上 - 就像在您的示例中一样 - (而且您确实正在寻找封闭区域),那么皮克定理是否有帮助?


0

你的回答可以通过提供更多支持信息来改进。请编辑以添加进一步的细节,例如引用或文档,以便他人可以确认你的答案是正确的。您可以在帮助中心中找到有关如何编写良好答案的更多信息。 - Community

0
你需要将复杂的多边形大致分成标准多边形(三角形、矩形等),然后计算它们的面积。这就像常规的积分一样(唯一的区别是你还没有找到一个公式来近似你的数据)。
以上观点是在假设你正在用你的数据形成一个封闭的多边形时。

1
或者,更好的方法是将该区域积分转换为一条周长曲线积分,并使用高斯积分法沿周边走一遭。 - duffymo

0
使用QHull来对区域进行三角剖分,然后将得到的三角形的面积进行求和。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接