可参考mayavi文档 http://docs.enthought.com/mayavi/mayavi/installation.html#installing-with-pip
首先安装mayavi
pip install mayavi
如果出现Microsoft Visual C++ 14.0 is required 则需安装对应的Windows c++库
可以参考https://blog.csdn.net/weixin_42057852/article/details/80857948
或者https://blog.csdn.net/gtf215998315/article/details/80194526
再安装PyQt5
pip install PyQt5
安装好后接下来就是代码
import numpy as np
from mayavi import mlab
from sympy import *
from mayavi.mlab import *
def Demo():
x,y,z = np.mgrid [0:1:20j , 0:1:20j , 0:1:20j]
u = -y
v = x
w = z #矢量场三坐标分量表达式
x = Symbol('x')#引入符合x
expr = sin(x)/ x#表达式形式
f = lambdify(x,expr,"numpy")#表达式中x符合用数组代替
data = np.linspace(1,10,10000)#取数组1至10,线性分割1000份
print(data)
print(f(data))#将数组data带入表达式
mlab.quiver3d(u,v,w)#绘制矢量场
mlab.outline()#绘制边框
def test_flow():
x, y, z = np.mgrid[-5:5:40j, -5:54:40j, 0:4:20j]#x y z网格化,形成填充三维坐标数组
u = y #矢量场x分量
v = -x #矢量场y分量
w = np.ones_like(z)*0.05#数组用1来填充 #矢量场z分量
quiver3d(u, v, w,mask_points=10)#绘制矢量场
obj = flow(u, v, w)#在矢量场中放置可移动物体以检查流场
return obj
test_flow()
运行结果
是不是很漂亮,那个多边形物体可以移动到不同位置以检测流场 。
参考https://blog.csdn.net/qq_42731466/article/details/84894825