2017-02-03 271 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

正確體積來計算