Expression : Rotation autour d'un cercle

Le forum du compositing
florents
 
Messages: 2
Inscription: 03 Juin 2014, 00:41

Expression : Rotation autour d'un cercle

Messagede florents » 03 Juin 2014, 00:46

Bonjour à tous,

Je souhaiterai faire tourner plusieurs éléments (en l'occurence du texte) tous autour du centre sans pour autant que le texte change d'angle.
J'utilise cette expression : [(thisComp.width/2), (thisComp.height/2)] + [Math.sin(time)*315, -Math.cos(time)*315]
Tous fonctionne correctement, mis à part que les calques se retrouvent au même endroit, alors qu'ils ont une position différentes à la base.
Si jamais vous avez une idée, je vous remercie par avance,

Florent.

Avatar de l’utilisateur
Galdon
Administrateur du site
Administrateur du site
 
Messages: 2188
Inscription: 06 Sep 2008, 22:05

Re: Expression : Rotation autour d'un cercle

Messagede Galdon » 03 Juin 2014, 10:40

Il suffit d'ajouter un nombre au paramètres des fonctions sinus et cosinus pour provoquer un "décalage de phase", en écrivant ça par exemple :
Code: Tout sélectionner
[(thisComp.width/2), (thisComp.height/2)] + [Math.sin(time-2)*315, -Math.cos(time-2)*315]

Après il faut juste utiliser un nombre différent pour chaque calque (car 2 calques ayant le même décalage vont se superposer).

Par ailleurs, tu devrais écrire le cosinus en premier dans les coordonnées (pour éviter les embrouilles, car le cosinus correspond à l'abscisse et le sinus à l'ordonnée, sur le cercle trigonométrique) :

Code: Tout sélectionner
var diameter = 315;
var offset = -2;
[(thisComp.width/2), (thisComp.height/2)] + [Math.cos(time+offset)*diameter, Math.sin(time+offset)*diameter];
"Si tu veux me parler, envoie-moi un... FAX !" - George Abitbol

florents
 
Messages: 2
Inscription: 03 Juin 2014, 00:41

Re: Expression : Rotation autour d'un cercle

Messagede florents » 03 Juin 2014, 11:24

Super, merci beaucoup, cela fonctionne.

J'ai une autre question, car à chaque solution est égal à un nouveau problème :D

Peut-ont gérer la vitesse de rotation dans l'expression ?

Et Peut-ont éviter que les calques se croisent/se surperposent lors de la rotation ?

Merci :?

Avatar de l’utilisateur
Galdon
Administrateur du site
Administrateur du site
 
Messages: 2188
Inscription: 06 Sep 2008, 22:05

Re: Expression : Rotation autour d'un cercle

Messagede Galdon » 03 Juin 2014, 15:52

Pour modifier la vitesse il faut multiplier time, comme ceci :

Code: Tout sélectionner
var diameter = 315;
var offset = -2;
[(thisComp.width/2), (thisComp.height/2)] + [Math.cos(time*3+offset)*diameter, Math.sin(time*3+offset)*diameter];

Bizarrement ça ne fonctionne pas en utilisant une variable, ça ne marche que quand on met directement le facteur dans la formule (ici : *3).

florents a écrit:Et Peut-ont éviter que les calques se croisent/se superposent lors de la rotation ?

La réponse parait logique, si deux calques tournent sur la même trajectoire mais pas à la même vitesse, ils finiront inévitablement par se superposer (ça dépend de leur vitesse relative et de la durée de la composition).
"Si tu veux me parler, envoie-moi un... FAX !" - George Abitbol


Retourner vers After Effects

Qui est en ligne

Utilisateurs parcourant ce forum: Aucun utilisateur enregistré et 4 invités