Sketch Processing: Jouer avec l'aléatoire - picardlimpens/JEIA GitHub Wiki

/////////////////////////////////////////////////////////////////////
//
//  Jouer avec l'aléatoire
//  Atelier: Le code comme outil de création, JEIA
//  24 - 02 - 2016
//  Cécile Picard-Limpens
//
/////////////////////////////////////////////////////////////////////

// Définir des variables: position x, y, vitesse en x et vitesse en y
float posx=0.0; float vx=0.0;
float posy=0.0; float vy=0.0;
// Définir une variable qui compte le nombre de sortie de l'espace
int compteur=0;

// Ce qui est réalisé une seule fois, au début du programme
void setup() {
  size(500,500);
  // Couleur de fond 
  background(200);
  // Epaisseur de trait de bordure (par défaut = 1)
  strokeWeight(2);
  // Diminuer la cadence de l'animation (par défaut = 60)
  //frameRate(5);
  
  // Le positionnement de départ est au centre de l'espace de visualisation
  // width et height font directement référence aux dimensions de cet espace 
  posx=width/2;
  posy=height/2;
}

// Ce qui est mis à jour continuellement 
// à une cadence par défaut de 60 fois par secondes
void draw() {
  // Couleur de remplissage: bleu
  // et changement en fonction du nombre de sorties de l'espace
  fill(0+compteur*10, 121, 184);
  // Couleur de bordure: blanc
  stroke(255); 
  
  // Tracé de figure, positionnnement en posx,posy
  ellipse(posx,posy,width/100,width/100);
  // Attribution des valeurs de vitesses
  vx=random(-width/50,width/50); vy=random(-width/50,width/50);
  // Mise à jour de la position (x,y)
  posx=posx+vx; posy=posy+vy;
  
  // Si le tracé sort de l'espace de dessin, repositionnement
  if(posx<0) {
    compteur++;
    posx=width/2;
  }
  if(posx>width) {
    compteur++;
    posx=width/2;
  }
  if(posy<0) {
    compteur++;
    posy=height/2;
  }
  if(posy>height) {
    compteur++;
    posy=height/2;
  }
  
  // Export: lorsqu'on clic sur la souris
  if(mousePressed) {
    println("sauvé!");
    saveFrame("img-####.jpg"); 
  }
  
}