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/17 | 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;
}