Mayavi:scale_mode 'vector' 是做什么的?

Mayavi: What does the scale_mode 'vector' do?

谁能告诉我 Mayavi 的 scale_mode = 'vector' 有什么用?

各种绘图函数在它们的文档字符串中都有相同的句子:

scale_mode: the scaling mode for the glyphs (‘vector’, ‘scalar’, or ‘none’).

import numpy as np
from mayavi import mlab

o = np.array([0.0, 0.0, 0.0])
d = np.array([0.0, 0.0, 1.0])

mesh = mlab.quiver3d(o[0], o[1], o[2], d[0], d[1], d[2], scalars=2,
                                                         scale_mode='vector',
                                                         scale_factor=1.0)


mlab.axes(None, extent=[-1, 1, -1, 1, -1, 1])
mlab.gcf().scene.parallel_projection = True
mlab.show()

mayavi中的scale模式是直接传给vtk的,这或许可以解释文档难找的问题。

在 VTK 中,该选项被传递给 "glyph"(即以图形方式表示的对象),请参阅文件 vtkGlyph3D.cxx。对于模式 "scale_by_vector",矢量数据的大小(默认情况下仅适用于矢量场)用于缩放字形。

请注意,mayavi 中的缩放是使用取决于您的数据的参考单位完成的(请参阅 Mayavi documentation),除非给出了 scale_factor 选项。