我正在使用Python处理一些3D(体积)数据,对于每个四面体,我不仅有顶点的坐标,还有第四个维度,它是该四面体体积的某个参数的值。
例如:
# nodes coordinates that defines a tetrahedron volume:
x = [0.0, 1.0, 0.0, 0.0]
y = [0.0, 0.0, 1.0, 0.0]
z = [0.0, 0.0, 0.0, 1.0]
# Scaler value of the potential for the given volume:
c = 100.0
我想绘制一个填充了一些纯色的3D体积(由节点坐标给出),它代表给定的值C.
我怎么能在Python 3.6中使用它的绘图库呢?
你可以使用mayavi.mlab.triangular_mesh()
:
from mayavi import mlab
from itertools import combinations, chain
x = [0.0, 1.0, 0.0, 0.0, 2.0, 3.0, 0.0, 0.0]
y = [0.0, 0.0, 1.0, 0.0, 2.0, 0.0, 3.0, 0.0]
z = [0.0, 0.0, 0.0, 1.0, 2.0, 0.0, 0.0, 3.0]
c = [20, 30]
triangles = list(chain.from_iterable(combinations(range(s, s+4), 3) for s in range(0, len(x), 4)))
c = np.repeat(c, 4)
mlab.triangular_mesh(x, y, z, triangles, scalars=c)