/* _____________________________________________________________ Paco Agüero 2006 Se fusionan aleatoriamente caras de alumnos y alumnas. Utilizando la función blend. ________________________________________________________________*/ int nCaras=15; int caraActualEl; int caraActualElla; int dimension; int aleaEl ; int aleaElla; PImage[] origen = new PImage [nCaras]; PImage[] destino = new PImage [nCaras]; void setup(){ // Se asigna el nº aleatorio float m = random(nCaras); int aleaEl = int(m); //convierte en int el numero aleatorio float. float n = random(nCaras); int aleaElla = int(n); size(800, 300); background(0); //Coloca las imágenes en el array. Con esta función puede haber hasta 999 imágenes. String iniNombreEl = "el00"; String iniNombreElla = "ella00"; for(int i=0;i=10 & i<100){ nombreEl = iniNombreEl + "0" + i + ".jpg"; nombreElla = iniNombreElla + "0" + i + ".jpg"; } else{ nombreEl = iniNombreEl + i + ".jpg"; nombreElla = iniNombreElla + i + ".jpg"; } //Carga imagen en el objeto loadImage. destino[i] = loadImage(nombreEl); origen[i] = loadImage(nombreElla); } //Se llama a dos imágenes utilizando sendas variables donde se guardan los nos. aleatorios. image(origen[aleaEl],320,20); image(destino[aleaElla],320,20); //Con esta función se mexclan pixeles de las parejas de imágenes que aparecen en la ventana. blend(origen[aleaEl], 0, 0, 160, 200, 320, 20, 160, 200, ADD); //estas son las pequeñas image (destino[aleaElla],100,120,destino[aleaElla].width/2, destino[aleaElla].height/2); image(origen[aleaEl],620,120,origen[aleaEl].width/2, origen[aleaEl].height/2); // Se fijan las caras actuales caraActualEl=aleaEl; caraActualElla=aleaElla; //rectángulo/trasparencia para las pequeñas fill(0,50); noStroke(); rect (100,120,80,100); rect (620,120,80,100); } void draw(){ //Si se pulsa el ratón se asignan nuevos numeros aleatorios que cargan las imagenes de forma contínua //y se guardan las últimas una vez se suelta el ratón. if (mousePressed == true){ // Se asignan números aletorios. float a = random(nCaras); aleaEl = int(a); float b = random(nCaras); aleaElla = int(b); //Se llama a las imágenes con los nuevos números. /*image(origen[saleImg],32,0); funciona tambien sin tener que llamar a la imagen de este array, aunque lo lógico sería llamarla?*/ image(destino[aleaElla],320,20); //Se llama a la función blend. blend(origen[aleaEl], 0, 0, 160, 200, 320, 20, 160, 200, ADD); //estas son las pequeñas image (destino[aleaElla],100,120,destino[aleaEl].width/2, destino[aleaEl].height/2); image(origen[aleaEl],620,120,origen[aleaElla].width/2, origen[aleaElla].height/2); rect (100,120,80,100); rect (620,120,80,100); } else{ //Se fijan las caras actuales. caraActualEl=aleaElla; caraActualElla=aleaEl; } }