// qix // (cc) 2005 douglas edric stanley // Ce programme dessine un ligne en mouvement // note : voir plus bas pour le setup() // dˇfinir les variables de position int x1, x2, y1, y2; // dˇfinir les variables de mouvement int dx1, dx2, dy1, dy2; // les variables qui dˇfiniront la couleur du qix int r, v, b; void draw() { fondu(); bouger(); rebondir(); dessiner(); // de temps en temps, changer de direction if (random(1000) < 2) changerDirection(); } void fondu() { noStroke(); fill(255,255,255,16); // remplir l'ˇcran avec un carrˇ d'une transparence de 32 (sur 255) rect(0,0,width,height); } void bouger() { x1 += dx1; // augementer la valeur de x1 selon dx1 y1 += dy1; // augementer la valeur de x1 selon dx1 x2 += dx2; // augementer la valeur de x1 selon dx1 y2 += dy2; // augementer la valeur de x1 selon dx1 } void rebondir() { if ( (x1 < 0 && dx1 < 0) || (x1 > width && dx1 > 0) ) { dx1 = -dx1; nouvelleCouleur(); } if ( (y1 < 0 && dy1 < 0) || (y1 > height && dy1 > 0) ) { dy1 = -dy1; nouvelleCouleur(); } if ( (x2 < 0 && dx2 < 0) || (x2 > width && dx2 > 0) ) { dx2 = -dx2; nouvelleCouleur(); } if ( (y2 < 0 && dy2 < 0) || (y2 > height && dy2 > 0) ) { dy2 = -dy2; nouvelleCouleur(); } } void dessiner() { // choisir couleur stroke(r, v, b, 255); // dessiner line(x1, y1, x2, y2); } void setup() { size(400,400); background(255); // dˇfinir une position de dˇpart (alˇatoire) x1 = (int)random(width); y1 = (int)random(height); x2 = (int)random(width); y2 = (int)random(height); // nous devons dˇfinir les directions de dˇpart (dx1, dy1, dx2, dy2) changerDirection(); } void changerDirection() { // dˇfinir (alˇatoirement) la direction des quatre points dx1 = nouvelleDirection(); dx2 = nouvelleDirection(); dy1 = nouvelleDirection(); dy2 = nouvelleDirection(); } int nouvelleDirection() { int direction, valeur; // on va aller dans un sens, ou dans un autre. Crˇer une liste int[] polarity = { -1,1 }; // dˇfinir une direction -1 ou 1 direction = polarity[(int)random(2)]; valeur = (int)random(1,5); return ( direction * valeur ); } void nouvelleCouleur() { // choisir une valeur alˇatoire pour les trois couleurs r = (int)random(255); v = (int)random(255); b = (int)random(255); }