5

因此,我正在编写一段代码来获取 RC 平面作物除尘器的位置数据并计算横向的总表面积(不重复计算任何面积)。我无法弄清楚如何计算给定操作期间的面积。

给定下表计算点覆盖的面积。

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

有任何想法吗?我浏览了 Greens Theorem,但我没有一个实用的编码概念。

感谢您的任何建议

4

6 回答 6

9
  1. 从给定点构建凸包

    这里描述了算法

    看一个很不错的python demo + src

  2. 计算它的面积

    Python代码在这里

于 2010-08-30T19:37:27.550 回答
4

比我更数学的人可能需要在这里验证信息。但它看起来是合法的:http: //www.wikihow.com/Calculate-the-Area-of-a-Polygon并且相当容易在代码中应用。

于 2010-08-30T19:33:48.903 回答
1

我不完全确定您正在寻找“表面区域”,就像您正在寻找距离一样。似乎您想计算该列表的一个点与下一个点之间的距离。如果是这种情况,只需使用距离公式

如果飞机在这些点之间飞行时会掉落恒定宽度的灰尘,那么面积就是这些点之间的距离乘以喷雾的宽度。

于 2010-08-30T19:31:39.670 回答
1

如果你的点保证在一个整数网格上——就像在你的例子中一样——(而且你真的在寻找封闭区域)Pick's Theorem会有帮助吗?

于 2010-08-30T19:39:11.517 回答
0

您必须将复杂多边形大致划分为标准多边形(三角形、矩形等),然后找到所有这些多边形的面积。这就像常规积分一样(唯一的区别是您还没有找到一个公式来近似您的数据)。

以上几点是当您假设您正在用您的数据形成一个封闭的多边形时。

于 2010-08-30T19:36:42.593 回答
0

使用QHull对区域进行三角剖分,然后将所得三角形的面积相加。

于 2010-08-30T19:40:15.220 回答