★ CODING ★ AMSLIVE ★ AMSLIVE n°6 - SINUS SITE (1/2) ★ |
AMSLIVE n°06 - Sinus | Coding Amslive |
Pour sortir de la platitude routinière des animations rectilignes, le programmeur ajoute dans son code une pincée de sinus. Mais le mathématicien devra se porter à son secours pour lui éviter de tomber dans les pièges des erreurs de précisions.Jetez un œil à la PLASMA DEMO de GOZEUR ou à la partie de RAINBIRD de la TERROR UNDER THE X-MAS TREE. On y voit des animations basées sur l'addition de courbes sinusoïdales. Mais le mouvement est tremblotant. A la fin de cet article (dans 1 mois, désolé), vous saurez pourquoi. RAPPELS C'est pas que ça me fasse particulièrement plaisir, mais j'ai promis à votre mère de vous inculquer certaines bases en mathématiques. On part d'un angle aigu que forment 2 demi-droites. En dressant une perpendiculaire à l'une d'entre elles, on obtient un triangle rectangle. Eh bien, le sinus de cet angle est le rapport du coté opposé sur l'hypoténuse. Dans un repère orthonormal (càd dont les axes sont perpendiculaires et les unités de mesure identiques en x et en y), on trace un cercle de rayon 1. Un rayon forme un angle avec l'axe horizontal. Cet angle varie de 0 à 360 ou de 0 à 2n suivant que vous parliez en degrés ou en radians. On mesure en partant de l'axe des abscisses, qui est fixe, dans le sens inverse des aiguilles d'une montre (on parle de sens trigonométrique). Le triangle OMH est rectangle. On a SIN (a) = HM/OM Et comme OM=1, on obtient la mesure de SIN (a) en projetant M sur l'axe des ordonnées. CARACTERISTIQUES Soit la fonction f : x -> SIN x, où x est un réel, on déduit des remarques précédantes que : ET LE COSINUS ? Revenons au cercle trigonométrique, le COSINUS de l'angle a est l'abscisse du point M, tout comme le SINUS correspondait à l'ordonnée. En résumé, le point M a pour coordonnées (COS(a);SIN(a)). Ceci explique la formule de tracé de cercle : ORIGIN 320,200:DEG:R%=100:FOR X%=0 TO 358 STEP 2:PLOT COS(X%) *R%,SIN (X%)*R%:NEXT La courbe de la fonction COS n'est pas très intéressante en soi, car elle équivaut à celle de la fonction SIN décalée (on dit déphasée) de -90 degrés. EN MODULUS SINUSUS CLAUDIO Dans une fonction de la forme SIN(A*x+B)*C+D, A détermine la fréquence, B le déphasage, C l'amplitude et D le domaine d'arrivée. Pour un affichage à l'écran par exemple, on peut souhaiter ne pas obtenir des valeurs négatives. Rien n'oblige ces paramètres à être constants. Eux-mêmes peuvent être fonctions de x. FINIE LA THEORIE ! On passe aux applications basiques ; la boucle suivante affiche une courbe dont l'amplitude va croissant. DEG : FOR X=0 TO 638 STEP 2:PLOT X,SIN (3*X) *X/4 + 200 :NEXT
Celle-ci a une fréquence modulée : DEG:FOR X = 0 to 638 STEP 2:PLOT X,SIN((SIN(X)+10) * X)*30+ 200:
Une bonne façon d'obtenir des courbes "originales" est d'additionner des sinusoïdales de fréquences différentes. On obtiendra une courbe, à l'apparence plus complexe, dont la période est le plus petit commun multiple (PPCM) des périodes des courbes de départ. Par exemple, en additionnant les fonctions fi et f2 de période 8 et 6 respectivement, on obtient une fonction de période 24. En 24 unités, f1 aura décrit 3 fois les mêmes variations, et il 4 fois les siennes. Allez, tapez : DEG:FOR X=0 to 638 STEP 2:Y1=SIN(2*X)*40:Y2=SIN(3*X)*40:PLOT X,Y1+200,1:PLOT X,Y2 + 200,2:PLOT X,Y1+Y2+200,3:NEXT
SINUS & SCROLLINGS Il y a plein de manières d'accommoder ces 2 ingrédients. La plus simple est d'afficher les caractères suivant votre courbe, et de déplacer le tout (comme dans la démo BYTE'96 de CMP/TOM&JERRY). Là, la courbe se déplace à la même vitesse que le scrolling, si je puis dire. Quand je parle de déplacement de courbe, imaginez-vous une onde qui se propage le long d'une corde ou sur une surface d'eau dans laquelle on a jeté un caillou. Que se passerait-il si on faisait partir une autre onde à l'autre bout de la corde ou si on jetait un deuxième caillou à coté du 1er ? Et bien 2 ondes vont se superposer. Pour simuler ça, on additionne 2 fonctions, mais en décalant progressivement la position de l'une par rapport à l'autre. Si on prend l'exemple d'une onde sinus toute simple, en l'additionnant sur elle-même, on double l'amplitude. Mais si on déphase de 180 degrés, on obtient la fonction nulle. Suivant le déphasage, on a des sinusoidales d'amplitudes intermédiaires. Les spécialistes feront le lien avec ma méthode PDC de multiplication. Cet effet fut employé la première fois par OVERFLOW dans l'intro du fanz THE OTHER WORLD 3, sous le nom de PVC (plasma version CPC).
|