我使用二维数组绘制三维表面,我想绘制渐变矢量场。我已经按gx,gy = numpy.gradient(Z)
计算了渐变,并知道应该使用绘制箭头quivers3d(x,y,z,u,v,w)
,但我不明白我应该将u,v,w
作为什么。
你能帮帮我,怎么办?
答案 0 :(得分:0)
来自文档http://docs.enthought.com/mayavi/mayavi/auto/mlab_helper_functions.html#quiver3d:
u,v,w是numpy数组,给出了向量的组成部分。
如果只传递3个数组u,v和w,则它们必须是3D数组,并且箭头的位置假定为(u,v,w)数组中相应点的索引。
如果传递了6个数组(x,y,z,u,v,w),则3个第一个数组给出箭头的位置,3个数组最后给出组件。它们可以是任何形状。
所以u,v,w
是渐变,x,y,z
是这些渐变描述的矢量的3D xyz坐标。所以如果你对可视化中的那些东西不感兴趣(听起来你不是吗?),你可以打电话给mlab.quiver3d(0,0,0,gx,gy,0)
。
但你还没有解释这是否是你想要的。如果这个答案不适合您的使用案例,请澄清您的问题,如果可以,我会尝试更新它。