我想计算随机多边形的面积和随机多面体的体积。谷歌搜索引导我进行曲面细分和蒙特卡罗方法。但是,我只是对精确计算感兴趣,而不是通过收敛的近似。可能有人知道确切的公式,或者有一个链接到描述这些公式的页面?
不需要公式来应用于外来多边形或多面体。如果它们适用于简单(非交叉边)凸形状,我已经满意了。我想在顶点坐标列表[(x1, y1), ..., (xn, yn)]
或[(x1, y1, z1), ..., (xn, yn, zn)]
之外不使用任何其他内容,可能按特定顺序排列。
我能够阅读Fortran
,C/C++
,Python
和MATLAB
。因此,用任何这些语言编写或用伪代码编写的算法都很受欢迎。
答案 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