Expressions/Bases/Vecteur & Dimension

Vecteur & Dimension

Sans rentrer dans le détail, on peut considérer qu'un vecteur stocke simplement des valeurs ayant un lien entre elles et ce stockage se fait dans un ordre déterminé. En informatique un vecteur peut être représenté sous forme de tableau. Un tableau peut par exemple contenir des données de texte, des nombres, ou un objet tel qu'un calque. Un vecteur lui ne contient que des nombres, il est donc un tableau de nombres. Un vecteur est un concept issu des mathématiques, alors que le tableau est un outil informatique pour représenter une liste d'éléments (un vecteur entre autres).

La dimension d'un vecteur est le nombre d'éléments qu'il contient. La plupart des données que l'on manipule au sein d'une expression sont des vecteurs de dimension un, deux, trois ou quatre. La position d'un calque 2D par exemple correspond à un vecteur de dimension deux (son abscisse x et son ordonnée y) et une couleur correspond à un vecteur de dimension quatre (rouge, vert, bleu et alpha). Les tableaux que l'on utilise en général dans les expressions sont de dimension un, on peut les voir comme une simple liste d'objets.

On accède aux valeurs d'un vecteur ou d'un tableau en précisant quelle composante on souhaite atteindre, c'est-à-dire l'index ou le rang de l'élément. Cet index se note entre crochets et il est spécifié juste après le nom du vecteur (ou du tableau). Le premier élément se situe à l'index 0.

Prenons un exemple pour clarifier les choses. La position d'un calque 2D (position) correspond à un vecteur à deux dimensions et peut être représentée par un tableau à une dimension mais contenant deux valeurs (valeur en x et valeur en y). Si l'on souhaite accéder à sa première composante, on écrit position[0], et si l'on souhaite récupérer sa deuxième composante, on utilise position[1]. Si le calque est un calque 3D, on peut faire référence à sa troisième composante en écrivant position[2].

Il est possible d'effectuer des opérations utilisant des vecteurs, par exemple considérons l'expression suivante appliquée à la position d'un calque

posA = [200,100];
posB = [50,50];
posA - posB;

Le résultat de cette expression va être le vecteur [150,50]. Les opérations se font composante par composante. Il en est de même avec l'opérateur "+". Lorsque que l'on écrit une expression, il est bon de toujours vérifier que le résultat correspond bien à la dimension de la propriété à laquelle l'expression est appliquée. Si l'on écrit par exemple sur la propriété de rotation, l'expression

[90,180];

un message d'erreur indique que la rotation ne comporte qu'une seule dimension et que le résultat de l'expression doit être de même dimension.

Remarques

After Effects permet de faire des opérations sur des vecteurs qui ne sont pas de même dimension. Il retourne dans ce cas un vecteur dont la dimension est la plus grande des deux. Si l'on écrit [1,2,3] + [4,5], le résultat sera le vecteur [5,7,3]. En d'autres termes il complète le vecteur de plus petite dimension en ajoutant un zéro dans les composantes additionnelles. L'opération effectuée est [1,2,3] + [4,5] = [1,2,3] + [4,5,0].

On verra plus tard que After Effects utilise l'attribut index pour désigner le numéro d'un calque (1 s'il est au sommet de la pile de calques, 2 s'il s'agit du deuxième calque, etc). Pour faire le lien avec ce qui est écrit plus haut, on peut considérer que cet index détermine le rang du calque dans le tableau qui contient tous les calques de la composition, du premier au dernier dans cet ordre. En revanche cet index commence à 1 et non à 0.