Vecteur, dimension



Un vecteur est un concept mathématique servant à stocker des valeurs ayant un lien entre elles et ce "stockage" se fait dans un ordre déterminé. En informatique on utilise plus souvent le terme de tableau.

Un tableau peut contenir des données de texte, des nombres, ou un objet tel qu'un calque. Un vecteur lui ne contiendra que des nombres, il sera donc un tableau de nombres. Il est représenté par une paire de crochets (un au début, un à la fin) et les valeurs qu'il contient sont séparées par une virgule.

Le concept de dimension serait trop vaste et compliqué à définir en quelques mots, mais disons qu'un vecteur peut être de plusieurs dimensions. De dimension 1 s'il s'agit d'un seul nombre (la rotation par exemple), de dimension 2 s'il possède deux valeurs, on parlera alors de composantes du vecteur (la position par exemple possède deux composantes qui sont sa coordonée en x et sa coordonée en y), de dimension 3 s'il possède trois composantes (l'orientation d'un calque 3D par exemple est un vecteur de dimension 3) et de façon plus générale un vecteur peut être d'une dimension quelconque même infinie.

On accède aux valeurs d'un vecteur en précisant quelle composante on souhaite atteindre. Avec la terminologie de tableau, on dira qu'on accède aux valeurs qu'il contient par l'intermédiaire d'un "index" qu'on notera aussi entre crochets et qu'on écrira juste après le nom du tableau (vecteur). Il indiquera l'endroit ou le "rang" dans le tableau que l'on souhaite atteindre.

L'index d'un tableau commence au rang 0, faisons attention c'est une erreur classique de croire que le premier élément se situe au rang 1, le premier élément se situe au rang 0.

La position d'un calque 2D peut se représenter par un vecteur à deux dimensions

      [x,y]

Si l'on souhaite accéder à l'une de ses composantes, disons sa première composante (i.e. "x"), on écrira

      position[0]

et si l'on souhaite maintenant récupérer sa deuxième composante (i.e. "y"), on écrira

      position[1]

Résumons les différentes notations pour que nous puissions nous familiariser avec celles-ci :

      position = [x,y];
      x = position[0];
      y = position[1];
      position = [position[0],position[1]];


Si notre calque est un calque 3D, il est alors représenté par un vecteur à trois dimensions:

      position = [x,y,z];

et pour référence à sa troisième composante (i.e. "z") on écrira

      position[2]

Il est possible d'effectuer des opérations utilisant des vecteurs, par exemple considérons l'expression suivante appliquée à la position de notre 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 "+".

On rappelle au passage qu'il est formellement interdit (car impossible) de diviser un nombre par zéro. After Effects nous lancera immédiatement un mesage d'erreur si notre expression contient quelque part une telle opération. On rappelle également que le " ; " à la dernière instruction évaluée n'est pas obligatoire (nous aurions pu écrire la dernière ligne sans le ";").

Lorsque nous écrivons une expression, vérifions toujours que le résultat correspond à la dimension de la propriété à laquelle nous appliquons l'expression. Si nous mettons par exemple sur la propriété de rotation du calque, l'expression suivante:

      [90,180];

un message d'erreur comme celui-ci apparait

erreur


La rotation étant un vecteur de dimension 1, After Effects s'attend à ce que le résultat de notre expression soit un tel vecteur, or ici on lui a indiqué un vecteur de dimension 2.

Il est important que nous comprenions bien ces notations. Nous les retrouverons dans la plupart de nos expressions.


Remarques


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

Lorsque After Effects stocke un vecteur à deux dimensions comme par exemple la position ou l'échelle, le tableau qu'il utilise pour mémoriser les valeurs est un tableau de dimension 1 contenant 2 éléments, visualisons cela comme une simple liste de nombres (le premier de la liste étant la première composante du vecteur, le deuxième élément représente sa deuxième composante).

Dernière remarque, nous verrons 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 pourra 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" commencera lui à "1" et non à "0". Nous reviendrons en détail sur cet attribut "index" pour désigner un calque en particulier.