/* Tutorial de Processing Joan Soler-Adillon (www.joan.cat) La quadratura del cercle: el bitxo rebota! */ int posX, posY, velX, velY; void setup(){ size(250,150); frameRate(30); rectMode(CENTER); //smooth(); posX = width/2; posY = height/2; velX = 2; velY = 2; } void draw(){ dibuixaFons(); actualiza(); comprobaLimits(); dibujaReBicho(); } void comprobaLimits(){ //limit X if((posX<0)||(posX>width)){ velX = -velX; } //limit Y if((posY<0)||(posY>height)){ velY = -velY; } } void dibuixaFons(){ //background(255,127,127); noStroke(); fill(255,127,0,32); rect(width/2,height/2,width,height); } void actualiza(){ //actualitzem posicions posX = posX+velX; posY = posY+velY; } void dibujaReBicho(){ //variables de funciĆ³ int midaCosX=24; int midaCosY=40; int llargPotes=midaCosY; int separacioPotes = midaCosY/5; int diametrePeus=4; int diametreUlls=6; int diametrePupiles=2; int separacioUlls=10; //colors fill(127,127,255); stroke(127,255,127); //potes line(posX-llargPotes/2,posY-separacioPotes*2,posX+llargPotes/2,posY-separacioPotes*2); line(posX-llargPotes/2,posY-separacioPotes,posX+llargPotes/2,posY-separacioPotes); line(posX-llargPotes/2,posY,posX+llargPotes/2,posY); line(posX-llargPotes/2,posY+separacioPotes,posX+llargPotes/2,posY+separacioPotes); line(posX-llargPotes/2,posY+separacioPotes*2,posX+llargPotes/2,posY+separacioPotes*2); //cos rect(posX,posY,midaCosX,midaCosY); //peus ellipse(posX-llargPotes/2,posY-separacioPotes*2,diametrePeus,diametrePeus); ellipse(posX+llargPotes/2,posY-separacioPotes*2,diametrePeus,diametrePeus); ellipse(posX-llargPotes/2,posY-separacioPotes,diametrePeus,diametrePeus); ellipse(posX+llargPotes/2,posY-separacioPotes,diametrePeus,diametrePeus); ellipse(posX-llargPotes/2,posY,diametrePeus,diametrePeus); ellipse(posX+llargPotes/2,posY,diametrePeus,diametrePeus); ellipse(posX-llargPotes/2,posY+separacioPotes,diametrePeus,diametrePeus); ellipse(posX+llargPotes/2,posY+separacioPotes,diametrePeus,diametrePeus); ellipse(posX-llargPotes/2,posY+separacioPotes*2,diametrePeus,diametrePeus); ellipse(posX+llargPotes/2,posY+separacioPotes*2,diametrePeus,diametrePeus); //ulls stroke(0); fill(255); ellipse(posX-separacioUlls/2,posY-midaCosY/2,diametreUlls,diametreUlls); ellipse(posX+separacioUlls/2,posY-midaCosY/2,diametreUlls,diametreUlls); fill(0); ellipse(posX-separacioUlls/2,posY-midaCosY/2,diametrePupiles,diametrePupiles); ellipse(posX+separacioUlls/2,posY-midaCosY/2,diametrePupiles,diametrePupiles); }