2017-02-03 228 views
0

如果我有一个任意多面体的顶点坐标数组,有没有一个库(最好在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)

回答

0

只要多面体是凸的(这是我目前的兴趣),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

正确体积来计算