Le vecteur n'est pas un objet dessinable mais il est d'une aide puissante pour les calculs 3D. Ses propriétés sont semblables à celles des vecteurs utilisés en science ou en ingénierie. Il peut être utilisé en même temps que les tableaux de Numeric. (Numeric est un module ajouté à Python pour fournir des possibilités de calcul ultra-rapide à travers un traitement optimisé des tableaux. Le module Numeric est importé automatiquement par Visual.)
Retourne un vecteur avec les composantes données qui sont transformées en virgules flottantes (Ainsi, 3 est converti en 3.0).
Les vecteurs peuvent être ajoutés ou soustraits l'un de l'autre, ou multipliés par un nombre ordinaire. Par exemple,
v2 = vector(10,20,30)
print v1+v2 # affiche (11 22 33)
print 2*v1 # affiche (2 4 6)
Vous pouvez faire référence à une composante individuelle d'un vecteur:
v2.x vaut 10, v2.y vaut 20, v2.z vaut 30
Il est permis de créer un vecteur à partir d'un autre: vector(v2) vaut ainsi vector(10,20,30).
La forme vector(10,12) a la même signification que vector(10,12,0).
Un vecteur est une séquence Python, ainsi v2.x est équivalent à v2[0], v2.y est équivalent à v2[1], et v2.z est équivalent à v2[2].
Vous pouvez aussi obtenir la norme du vecteur avec la forme v2.mag, et le carré de la norme du vecteur avec v2.mag2.
Il est possible de redéfinir la norme ou la norme au carré d'un vecteur:
Vous pouvez redéfinir la norme à 1 avec norm():
Vous pouvez aussi écrire v1.norm(). Comme norm(v1) = v1/mag(v1), il n'est pas possible de normer un vecteur de longueur 0: norm(vector(0,0,0)) retourne une erreur, car la division par zéro est interdite.
Calcule l'angle entre deux vecteurs (la "différence" des angles de deux vecteurs)..
Calcule le produit vectoriel de deux vecteurs, qui est un vecteur orthogonal au plan défini par les vecteurs vector1 et vector2, dans une direction définie par la règle de la main droite: si les doigts de la main droite se plient de vector1 vers vector2, le pouce pointe dans la direction du produit vectoriel. La norme de ce vecteur est égale au produit des normes de vector1 et vector2, multiplié par le sinus des angles entre les deux vecteurs.
Calcule le produit scalaire de deux vecteurs, qui est un nombre ordinaire égal au produit des normes des vecteurs vector1 et vector2, multiplié par le cosinus de l'angle entre les deux vecteurs. Si les deux vecteurs sont normés, le produit scalaire retourne le cosinus de l'angle entre les vecteurs, qui est souvent utile.
Rotation d'un vecteur
L'axe par défaut est (0,0,1), pour une rotation dans le plan xy autour de l'axe z. Il n'y a pas d'origine pour une rotation de vecteur. Remarquez aussi que la rotation d'un vecteur se fait par une fonction, v = rotate(), comme c'est le cas avec d'autres manipulations vectorielles telles que dot() ou cross(), tandis que la rotation d'objets graphiques se fait par des attributs, avec la forme object.rotate().
Conversion pratique
Par commodité, Visual convertit automatiquement (a,b,c) en vector(a,b,c), avec des valeurs à virgule flottante, lors de la création d'objets Visual: sphere.pos=(1,2,3) est équivalent à sphere.pos=vector(1.,2.,3.). Cependant, utiliser la forme (a,b,c) directement dans des calculs vectoriels entraînera des erreurs, parce (a,b,c) n'est pas un vecteur; écrivez vector(a,b,c) à la place.
Vous pouvez convertir un vecteur vec1 en un tuple Python (a,b,c) avec tuple(vec1) ou avec une option beaucoup plus rapide vec1.as_tuple().
Copyright © 2006 Guillaume et Yoann Duriaud. Aucune reproduction, même partielle, ne peut être faite de ce site ni de l'ensemble de son contenu : textes, documents, images, etc. sans l'autorisation expresse de l'auteur. Sinon vous encourez selon la loi jusqu'à trois ans de prison et jusqu'à 300 000 € de dommages et intérêts.