在Python中绘制和填充3D卷

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了在Python中绘制和填充3D卷相关的知识,希望对你有一定的参考价值。

我正在使用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)

enter image description here

以上是关于在Python中绘制和填充3D卷的主要内容,如果未能解决你的问题,请参考以下文章

模糊边缘的着色器,或如何绘制光线

使用 Python matplotlib 绘制 3d 矢量

Python中的图形绘制——3D绘图

Python 使用 matplotlib绘制3D图形

python 绘制3D图

麻烦在python中制作3D绘图的动画