obtenir une courbe « ping-pong » ################################ un outil pour faire des maths quand on est nul en maths ******************************************************* `Wolfram|Alpha `_ (…) est un outil de calcul en langage naturel développé par la société internationale Wolfram Research. Il s'agit d'un service internet qui répond directement à la saisie de questions factuelles en anglais par le calcul de la réponse à partir d'une base de données, au lieu de procurer une liste de documents ou de pages web pouvant contenir la réponse. -- wikipédia plot **** En l'occurence, le terme « plot » désigne l'action de tracer quelque chose. Si on suit ce terme d'une fonction de x, celle-ci sera dessinée. Exemple : ``plot x`` (voir résultat plus bas). objectif ******** Notre objectif ici est d'obtenir une courbe « ping-pong », c'est à dire formant une onde triangulaire oscillant entre 0 et 1. .. image:: images/courbe-dents-de-scie.gif courbe de base ************** Par défaut, la courbe de x correspond à une droite passant par 0, x = y (``plot x``). .. image:: images/x.gif valeur absolue ============== Pour obtenir une courbe correspondant à la valeur absolue de x, on peut taper ``plot |x|``. Cela nous donne la courbe suivante : .. image:: images/courbe-math.abs(x).gif On observe que la courbe forme un v dont la point se situe en 0 en x et y. reste ===== Si l'on essaie d'obtenir le reste de la division euclidienne de x par 1 (``plot x%1``) on obtient ce qui suit : .. image:: images/courbe-x-mod-1.gif On observe une courbe en dent de scie, mais pas triangulaire (pas de « ping-pong »), allant de 0 à 1 en y. ----- En divisant par 2 (``plot x%2``), la courbe va de 0 à 2 en y : .. image:: images/plot-(x-mod-2).gif ----- En soustrayant 1 (``plot (x%2)-1``), la courbe va de 1 à -1 .. image:: images/plot-(x-mod-2)-1.gif combinaison reste et valeur absolue =================================== Si l'on trace la même courbe mais en valeur absolue (``plot |(x%2)-1|``), on obtient alors la courbe suivante oscillant entre 0 et 1, et correspondant à ce que recherché. .. image:: images/plot-|(x-mod-2)-1|.gif .. code-block:: javascript Math.abs( ( x % 2 ) - 1 ) Dans le temps ************* Dans after effects, on utilise la variable ``time`` plutôt que ``x``. réglage de la période ===================== Pour adapter notre courbe, par exemple en terme de vitesse, il suffit de diviser x par la période souhaitée p en secondes. Par exemple si l'on souhaite une période de n secondes, ici par exemple 5 (``plot |((x/5)%2)-1|``) : .. image:: images/plot-|((x-5)-mod-2)-1|.gif .. code-block:: javascript var periode = 5; var t = Math.abs( ( time / periode ) % 2 - 1); décalage ======== Pour décaler « horizontalement » la courbe, il suffit d'ajouter la valeur souhaitée à la variable time, par exemple (``plot |(((x/5)+1)%2)-1|``) : .. image:: images/plot((x-5)+1)mod2)-1.gif On voit ici que la courbe est décalée horizontalement. .. code-block:: javascript var periode = 5; var decalage = 1; var t = Math.abs( ( ( time / periode ) + decalage ) % 2 - 1);