// processing_logo.pde // by douglas edric stanley -> http://www.abstractmachine.net // -> atelier hypermedia -> http://www.ecole-art-aix.fr/hypermedia/ /* ...une petite demonstration avec une liste de points. Ce programme utilise des notions plut™t avancŽes. Si vous avez du mal ˆ comprendre le fonctionnement, revenez aprs avoir suivi quelques cours dans l'atelier. */ // crŽer une liste de points, chaque lettre Žtant sŽparŽ par -1 pour signaler la fin de la forme int[] points = { 10,190,10,10,40,40,40,50,40,75,10,100, -1, // P 25,190,25,110,35,110,45,125,45,135,25,150,45,190, -1, // r 55,130,65,110,75,110,85,130,85,170,75,190,65,190,55,170,55,130, -1, // o 115,130,103,110,95,130,95,170,103,190,115,170, -1, // c 125,150,155,150,155,130,143,110,135,110,125,130,125,170,135,190,143,190, -1, // e 190,130,180,110,170,110,165,140,190,160,185,190,170,190,165,170, -1, // s 220,130,210,110,200,110,195,140,220,160,215,190,200,190,195,170, -1, // s 230,110,230,190, -1, // i 240,190,240,120,245,110,255,110,260,120,260,190, -1, // n 280,150,290,150,290,170,283,190,277,190,270,170,270,130,277,110,283,110,290,130 // g }; // cette liste copiera chacun des points de la liste des points, mais en ajoutant une valeur alŽatoire int[] points_copy = new int[points.length]; // dŽfinir la taille de l'animation, ses couleurs void setup() { size(300,200); // dŽfinir la taille de l'animation fill(0); // dŽfinir la couleur des traits } // le boucle infini o l'animation a lieu void draw() { // les variables dont on se servira int i, d, x1, y1, x2, y2; background(255); // effacer (blanc) l'image // copier les points de la liste immobile, en ajoutant de la mobilitŽ for(i=0; i 0) ) { d = 50 - d; points_copy[i] = points_copy[i] + (int)random(-d,d); points_copy[i+1] = points_copy[i+1]+(int)random(-d,d); } } // dessiner chaque ligne for(i=0;i<(points.length-2); i+=2) { // si nous rencontrons le fin de la lettre, avanons ˆ la prochaine lettre if (points[i+2] == -1) i+=3; // rŽcupŽrer les 2 points, puis les 2 points suivants x1 = points_copy[i+0]; y1 = points_copy[i+1]; x2 = points_copy[i+2]; y2 = points_copy[i+3]; // desiner la ligne avec ces points line(x1, y1, x2, y2); } }