positionner selon un cercle ########################### .. image:: images/cercle.png :width: 400px * pour calculer la position d'un point sur un cercle de rayon 1 * à partir de sa position sur le cercle (définie par la distance ``p`` parcourue sur le périmètre) * on calcule sa position en x ``cos(p)`` * on calcule sa position en y ``sin(p)`` * pour obtenir l'équivalent pour un cercle de périmètre ``r``, on multiplie le résultat par ``r`` exemples ******** Élément mobile selon un cercle de rayon 100 =========================================== .. code-block:: javascript var x = transform.position[0] + Math.sin ( 2*Math.PI * ( time / thisComp.duration ) ) * 100; var y = transform.position[1] + Math.cos ( 2*Math.PI * ( time / thisComp.duration ) ) * 100; [x,y] .. raw:: html

.. code-block:: javascript /* on récupère la position en x et y de notre élément avant l'exécution de l'expression */ var x_au_depart = transform.position[0]; var y_au_depart = transform.position[1]; // le tour du cercle = 2π var tour_du_cercle = 2 * Math.PI; // durée de la composition var duree_composition = thisComp.duration; // durée écoulée ramenée de 0 (0%) à 1 (100%) var duree_ecoulee = time / duree_composition; /* le sinus du tour du cercle ramenée à la durée de la composition écoulée = de 0 à 1, multiplié par 100 = de 0 à 100 */ var x_cercle = Math.sin ( tour_du_cercle * duree_ecoulee ) * 100; var y_cercle = Math.cos ( tour_du_cercle * duree_ecoulee ) * 100; // on ajoute les coordonnées du cercle à celles de départ var x = x_au_depart + x_cercle; var y = y_au_depart + y_cercle; [x,y] ---- Éléments multiples placés le long d'un cercle ============================================= .. code-block:: javascript var x = transform.position[0] + Math.sin ( index * Math.PI / 2.5) * 200; var y = transform.position[1] + Math.cos ( index * Math.PI / 2.5) * 200; [x,y] .. raw:: html