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

时间:2013-08-14 15:27:29

标签: c++ python matlab polygon polyhedra

我想计算随机多边形的面积和随机多面体的体积。谷歌搜索引导我进行曲面细分和蒙特卡罗方法。但是,我只是对精确计算感兴趣,而不是通过收敛的近似。可能有人知道确切的公式,或者有一个链接到描述这些公式的页面?

不需要公式来应用于外来多边形或多面体。如果它们适用于简单(非交叉边)形状,我已经满意了。我想在顶点坐标列表[(x1, y1), ..., (xn, yn)][(x1, y1, z1), ..., (xn, yn, zn)]之外不使用任何其他内容,可能按特定顺序排列。

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

1 个答案:

答案 0 :(得分:2)

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

这相当于对三角形M_iOM_j的(代数)区域求和,其中O为原点(或任意点),如果角度BOA为正,则三角形BOA的代数区域为正。

对于polyedras,您可以使用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