2017-02-03 22 views
0

Если у меня есть массив координат вершин произвольного многогранника, есть ли библиотека (желательно на python), которая может рассчитать площадь поверхности и объем этого многогранника , Подход для этих вычислений выглядит established, но я не смог найти библиотеку, которая реализовала это. Более конкретно, если я дам координаты регулярной octahderonБиблиотека Python для вычисления площади поверхности и объема многогранника arbirary

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