// elout de kok - http://www.xs4all.nl/~elout/ // compiled in p5 v.0065 // 13 nov 2003 BImage pfoto,backg; int particlemax=10000; //create an oop array particle bob[] = new particle[particlemax]; // used for fps int new_sec,old_sec,my_fps,temp_fps; int ybuffer[]; int photowidth=374; int photoheight=500; int photobuffer[]; int stepz=20; int mx,my,oldmx,oldmy,mousetimeout; void setup() { size(photowidth*2, photoheight); cursor(CROSS); pfoto = loadImage("peterluining21aug03.jpg"); //start init all the particles for (int i=0;i40) { oldmx=mx; oldmy=my; } //calculate each particle for (int i=0;i=width){x=width-1; xspeed=-xspeed;} if (x<=0){x=0; xspeed=-xspeed;} if (y>=height){y=height-1; yspeed=-yspeed;} if (y<=0){y=0; yspeed=-yspeed;} my_r=((backg.pixels[(y*width)+x] >> 16) & 0xff); my_g=((backg.pixels[(y*width)+x] >> 8) & 0xff); my_b=(backg.pixels[(y*width)+x] & 0xff); if (wcol==0){ addpoint1(x,y,my_g,my_g,my_g); } if (wcol==1){ drawpoint1(x,y,my_r,my_r,my_r); } if (wcol==2){ drawpoint1(x,y,my_r,0,0); } if (wcol==3){ drawpoint1(x,y,my_r,my_g,my_b); } if (wcol==4){ drawpoint1(x,y,0,0,my_b); } } } void drawpoint1(int x, int y, int r, int g,int b) { pixels[ybuffer[y]+x] = ( ( r << 16) | ( g << 8) | b); } void addpoint1(int x, int y, int r, int g,int b) { int r1,g1,b1; int pos=ybuffer[y]+x; r1=((pixels[pos] >> 16) & 0xff)+r; g1=((pixels[pos] >> 8) & 0xff)+g; b1=(pixels[pos] & 0xff)+b; if (r1>255){r1=255;} if (g1>255){g1=255;} if (b1>255){b1=255;} pixels[ybuffer[y]+x] = ( ( r1 << 16) | ( g1 << 8) | b1); } void fastblur2black(int blurbackground[], int step) { int r1,g1,b1; int maxcol=step+1; for(int i=0; i> 16) & 0xff); g1=((blurbackground[i] >> 8) & 0xff); b1=(blurbackground[i] & 0xff); if (r1>maxcol){r1=r1-step;} else {r1=0;} if (g1>maxcol){g1=g1-step;} else {g1=0;} if (b1>maxcol){b1=b1-step;} else {b1=0;} blurbackground[i] = ( ( r1 << 16) | ( g1 << 8) | b1); } }