当前位置: 首页 > 知识库问答 >
问题:

多边形面积和多面体体积的精确公式

梁楷
2023-03-14

我想计算一个随机多边形的面积和一个随机多面体的体积。谷歌搜索让我找到了镶嵌和蒙特卡罗方法。然而,我只感兴趣的是一个精确的计算,而不是通过收敛的近似值。可能有人知道确切的公式,或有一个网页的链接,这样的公式被描述?

对于奇异多边形或多面体,不需要用到这些公式。如果它们适用于简单的(不相交的边)凸形状,我已经很满意了。我只想使用一个顶点坐标列表[(x1,y1),...,(xn,yn)][(x1,y1,z1),...,(xn,yn,zn)](可能按特定顺序排列)。

我能够阅读FortranC/C++PythonMatlab。因此,用这些语言中的任何一种或用伪代码编写的算法都很受欢迎。

共有1个答案

尹光辉
2023-03-14

对于简单的多边形,可以使用Green-Riemann公式,如这里所解释的:http://www.math.unl.edu/~mbrittenham2/classwk/208s04/inclass/areas_of_polygons.pdf

这相当于将三角形M_iOM_j的(代数)面积求和,以O为原点(或任意一点),其中三角形BOA的代数面积为正,当角BOA为正时。

对于Poledras来说,你可以用Ostrogradski的公式来概括上面的内容。参见。此处:http://en.wikipedia.org/wiki/polyhedron#volume

您可以在此找到关于上述计算卷方法的评论:http://citeseerx.ist.psu.edu/viewdoc/download?doi=10.1.1.144.3873&rep=rep1&type=pdf

 类似资料:
  • 问题内容: 假设我有一组任意的纬度和经度对,它们代表一些简单的闭合曲线上的点。在笛卡尔空间中,我可以使用格林定理轻松计算出此类曲线所包围的面积。计算球体表面面积的类似方法是什么?我想我所追求的是Matlabareaint函数背后的算法(甚至是近似算法)。 问题答案: 有几种方法可以做到这一点。 1)整合纬度带的贡献。此处每个条带的面积为(Rcos(A)(B1-B0))(RdA),其中A为纬度,B1

  • 我使用Python 3.4和shapely 1.3.2创建一个多边形对象的长/lat坐标对列表,我转换成一个众所周知的文本字符串,以便解析它们。这样的多边形可能看起来像: 由于shapely不处理任何投影并实现carthesian空间中的所有几何体对象,因此对该多边形调用area方法,如: 以平方度为单位给出多边形的面积。为了得到以平方米为单位的平面面积,我想我必须使用不同的投影变换多边形的坐标(

  • 总结: 我试图在r中计算大量多边形的面积。我读过几篇关于如何做的文章(例1 扩展说明: 我实际上是在计算澳大利亚维多利亚州的房产面积。多边形表示这些属性。我从Spatial Datamart下载了所有维多利亚州的VicMaps简化模型1和2。然而,考虑到形状文件的大小,我不得不将搜索范围缩小到一个地方政府区域(LGA),并计算多边形区域(仅用于测试)。形状文件为15.5MB。 这是有效的,但它不是

  • 我有一系列冰的图像,我想通过分析来确定固体和液体的面积。这里有一个示例图像。这类似于孔隙率测量,但由于颜色太相似,无法简单地进行阈值测量,因此我很难进行测量。 目前,我不得不玩弄对比/寻找边缘/去斑/制作二进制文件,以使晶体更容易识别。 然后我通过形态分割:例子和阈值来计算区域。 有没有更简单的方法来计算冰的面积和空间/液体的面积,而不必追踪每一个晶体?

  • https://stackoverflow.com/a/4682656/7924630这是一个非常有用的答案,帮助我解决这个问题 出于某种原因,这返回的区域值很小,我不明白为什么。例如,我在一个矩形区域上测试了这个。面积应该约为45平方米,但它返回0.0137平方米。我尝试了其他的实现,但没有找到任何对本机JavaScript有用的东西。

  • 问题内容: 标题基本上说明了一切。我需要使用Python计算地球表面上的多边形内部的面积。计算地球表面上任意多边形所围成的面积虽然可以说明这一点,但在技术细节上仍然含糊不清: 如果要使用更“ GIS”的样式来执行此操作,则需要为您的区域选择一个度量单位,并找到保留该区域的适当投影(并非全部如此)。由于您正在谈论计算任意多边形,因此我将使用类似Lambert Azimuthal等面积投影的方法。将投