2017-07-20 4 views
0

Quelqu'un peut-il me dire à quoi sert le scale_mode = 'vector' de Mayavi?Mayavi: Que fait le scale_mode 'vector'?

Les différentes fonctions graphiques ont toutes la même phrase dans leur chaîne de doc:

scale_mode: le mode de mise à l'échelle pour les Glyphes (« vecteur », « scalaire », ou « 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() 

Répondre

0

Le mode d'échelle dans mayavi est passé directement à VTK, ce qui peut expliquer la difficulté à trouver de la documentation.

En VTK, l'option est transmise à un "glyphe" (c'est-à-dire un objet représenté graphiquement), voir le fichier vtkGlyph3D.cxx. Pour le mode "scale_by_vector", l'amplitude des données vectorielles (uniquement disponible pour les champs vectoriels par défaut) est utilisée pour mettre à l'échelle le glyphe. Notez que la mise à l'échelle dans mayavi est effectuée avec une unité de référence qui dépend de vos données (voir Mayavi documentation) sauf si l'option scale_factor est donnée.

+0

J'ai également obtenu une réponse similaire d'un développeur Mayavi: https://github.com/enthought/mayavi/issues/529 – Joe

+0

Ok, merci d'accepter de toute façon et je suis content d'être d'accord avec Prabhu Ramachandran :-) –