6) Produire une mouvement de balançoire

Pour créer un mouvement d’oscillation régulier, on emploiera la fonction sin(). Voici une démonstration simple.

Précédent | 7/16 | Suivant

La fonction sin() transforme une information en radians (un chiffre entre 0 et deux fois la valeur de PI, soit 6,28 et des poussières) en un chiffre situé entre -1 et 1. Ici on réduit ce chiffre (par 0,4) et on l’utilise de nouveau en radians.

Le code ci dessous utilise cette méthode. Il affiche le chiffre en radians en temps réel et ajoute quelques fioritures graphiques.

float ondulation=0;

void setup() {
 size(600, 600);
 fill(0);
}

void draw() {
 background(255);
 translate(width/2, height/2);
 float angle=sin(ondulation)*0.4; // mouvement de balancier
 rotate(angle);
 
 line(-200, 0, 200, 0); // grande barre
 text(angle, 205, 0);
 
 // barre d'arret
 if (angle > 0) {
   line(190, 0, 190, -30);
 }
 else {
   line(-190, 0, -190, -30);
 }
 
 // boule en mouvement
 float roulis=map(angle, -0.4, 0.4, -180, 180);
 ellipse(roulis, -10, 20, 20);

 ondulation+=0.01;
}