// abstractmachine_image // (cc) 2006 douglas edric stanley, Some Rights Reserved // http://www.ecole-art-aix.fr/hypermedia/ // http://www.abstractmachine.net/ // ce programme va dans la base de donn?es abstractmachine.net, et cherche toutes les images (de petite taille) // Il fait cela, ? l'aide d'un programme php que vous pouvez consulter ? // http://www.abstractmachine.net/index/images/generate/thumbnails.php // ? chaque clic, vous pouvez lui demander de charger (au hasard) une nouvelle image // variable "globales" int image_combien; // il garde le compte d'images PImage image_tampon; // garde en m?moire une image String[] lignes; // cette liste gardera la liste des adresses des images int image_largeur, image_hauteur; // se souvienir de la taille de l'image actuelle void setup() { size(500,500,P3D); background(255); stroke(0); line(240,250,260,250); line(250,240,250,260); // aller sur le site de douglas, chercher la liste en format text de tous les addresses des images lignes = loadStrings( "http://www.abstractmachine.net/index/images/generate/thumbnails.php"); // compter le nombre de lignes dans ce texte image_combien = (lignes.length - 1); // charger, au d?part de l'animation, au moins une image dans le tampon image mousePressed(); } void draw() { background(255); stroke(0); line(240,250,260,250); line(250,240,250,260); pushMatrix(); // commencer ? dessiner au milieu de l'?cran translate(width/2, height/2, 0); // tourner l'ensemble de l'espace avant de dessiner rotateX((500-mouseX) * 0.01); rotateY((500-mouseY) * 0.01); rotateZ((mouseX-mouseY) * 0.01); // adjuster pour centrer l'image translate( -(image_largeur/2), -(image_hauteur/2), 0); // image semi-transparente, en fonction de notre ?loignement du centre (voire sous-m?thode) int distance = 255 - distanceDuCentre(); tint(255,255,255, distance ); // dessiner l'image image(image_tampon, 0, 0); popMatrix(); } void mousePressed() { // changer d'image // choisir au hasard un num?ro de cette liste int nombre_quelconque = (int)random(image_combien) + 1; // g?n?rer un texte avec cette image String url_image = "http://www.abstractmachine.net/index/images/thumbnails/" + lignes[nombre_quelconque]; // charger cette image dans notre variable image image_tampon = loadImage(url_image); // se souvenir de la taille de cette (nouvelle) image image_largeur = image_tampon.width; image_hauteur = image_tampon.height; } int distanceDuCentre() { float centre_x, centre_y, distance_x, distance_y, distance_z; // utiliser Pythagore (qui?) pour d?terminer la distance de la souris du centre de la fen?tre // le centre de la fen?tre centre_x = width / 2; centre_y = height / 2; // la diff?rence x et y distance_x = centre_x - mouseX; distance_y = centre_y - mouseY; // la difference z distance_z = sqrt( (distance_x * distance_x) + (distance_y * distance_y) ); // valeur minimum (ne pas d?passer 255) distance_z = min(255, distance_z); // renvoyer au variable qui a demand?, le r?sultat de tout cela return((int)distance_z); }