1

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

这些公式不需要应用于奇异的多边形或多面体。如果它们适用于简单的(非相交边)凸形,我已经很满意了。除了顶点坐标列表之外,我不想使用其他任何东西,[(x1, y1), ..., (xn, yn)]或者[(x1, y1, z1), ..., (xn, yn, zn)]可能以特定顺序排列。

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

4

1 回答 1

2

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

这相当于对三角形 M_iOM_j 的(代数)面积求和,以 O 为原点(或任何点),如果角度 BOA 为正,则三角形 BOA 的代数面积为正。

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

于 2013-08-14T15:34:55.023 回答