Python库计算一个多面体的表面积和体积
问题描述:
如果我有一个任意多面体的顶点坐标数组,有没有一个库(最好在Python中)可以计算该多面体的表面积和体积。这些计算的方法似乎established,但我找不到已实现此目的的库。更具体地,如果我给正规octahderon的坐标Python库计算一个多面体的表面积和体积
arr1 = [[1,0,0],[-1,0,0],[0,1,0], [0,-1,0], [0,0,1], [0,0,-1]],
代码必须返回我的
4/3的体积(公式:SQRT(2)*一个^ 3/4)
答
只要多面体是凸的(这是我目前的兴趣),scipy有一个类ConvexHull
,可以计算面积和体积。例如,对于上面的情况下的体积可如下
import numpy as np
from scipy.spatial import ConvexHull
arr1 = [[1,0,0],[-1,0,0],[0,1,0], [0,-1,0], [0,0,1], [0,0,-1]]
arr1 = np.asarray(arr1)
volume = ConvexHull(arr1).volume
print volume
以上代码生成的1.33333
正确体积来计算