/* Autor: Joan Soler-Adillon www.joan.cat Setembre 2006 */ PFont lletra; int fakeX,fakeY; int interval; boolean cursorOn=true; boolean blackHoles[][]; int panelSize = 80; void setup(){ //en aquest sketch la quadrícula ha de ser de size(513,593); lletra = loadFont("Arial-BoldMT-48.vlw"); interval = 32; blackHoles = new boolean[(width-1)/interval][((height-panelSize)-1)/interval]; rectMode(CORNER); cursor(CROSS); } void draw(){ //background(200); fill(200); rect(0,0,width,height-panelSize-1); stroke(16); //dibuixa la quadrícula vertical for(int i=0;i= 0 && fakeY >= 0) { if (!blackHoles[fakeX][fakeY])fill(127,32,32); else fill(64,8,16); rect(fakeX*interval,fakeY*interval,interval,interval); } //Si el mouse està premut, graba la posició a l'array bidimensional if (mousePressed){ //assegura't que la posició del mouse no provoca un "null pointer exception" al sortir-se el mouse de la finestra if(fakeX < ((width-1)/interval) && fakeY<(((height-panelSize)-1)/interval) && fakeX >= 0 && fakeY >= 0) blackHoles[fakeX][fakeY]=true; } //actualitza el text que marca la posició en els píxels simulats if(fakeX < ((width-1)/interval) && fakeY<(((height-panelSize)-1)/interval) && fakeX >= 0 && fakeY >= 0){ fill(64); rect(0,height-panelSize,width,height); fill(255,27,64); textFont(lletra, 36); text("x: "+fakeX+", y: "+fakeY,25, (height-panelSize)+35); textFont(lletra, 24); int fakePixelArrayPosition = fakeY*((width-1)/interval)+fakeX; text("In PixelArray: "+fakePixelArrayPosition,25, (height-panelSize)+65); } } //FI DE DRAW //TECLES: M incrementa la quadrícula, n la disminueix void keyPressed(){ if(key=='n'){ if(interval>2)interval/=2; //un canvi de quadrícula vol dir que s'esborra el dibuix simulat blackHoles = new boolean[(width-1)/interval][((height-panelSize)-1)/interval]; } else if(key=='m'){ if(interval