【发布时间】:2023-03-26 14:40:01
【问题描述】:
我想计算一个随机多边形的面积和一个随机多面体的体积。谷歌搜索让我找到了曲面细分和蒙特卡洛方法。但是,我只对精确计算感兴趣,而不是通过收敛进行近似。可能有人熟记确切的公式,或者有指向描述此类公式的页面的链接?
这些公式不需要应用于奇异的多边形或多面体。如果它们适用于 simple(不相交的边缘)convex 形状,我已经很满意了。除了可以按特定顺序排列的顶点坐标列表[(x1, y1), ..., (xn, yn)] 或[(x1, y1, z1), ..., (xn, yn, zn)] 之外,我不想使用其他任何东西。
我能够阅读Fortran、C/C++、Python 和MATLAB。因此,用这些语言中的任何一种或用伪代码编写的算法都受到好评。
【问题讨论】:
-
我没有给你的代码,但鉴于形状是“简单而凸的”,你可以选择一个顶点,然后找到循环穿过其他顶点时形成的所有三角形的面积...
-
对于简单的多面体,您必须使用行列式公式细分并计算四面体的体积。多边形也一样(镶嵌并使用叉积的范数来计算三角形的面积)
标签: c++ python matlab polygon polyhedra