import processing.opengl.*; PImage art; int xsize, ysize; int speed = 193; int threshold = 15; int version = 1, versionen = 5; int startradius = 10, maxradius = 25; int counter = 0, change = 10000; int agents = 50, maxagents = 200; float multi = 1.5; spin[] spinner; String pictures[] = {"botticelli.jpg","caravaggio.jpg","delacroix.jpg","gauguin2.jpg","gauguin.jpg","hopper.jpg","klimt.jpg","manet.jpg","munch.jpg","renoir.jpg","schiele.jpg","seurat.jpg","turner.jpg","vangogh.jpg"}; //String pictures[] = {"gauguin.jpg","hopper.jpg","manet.jpg","munch.jpg"}; //String pictures[] = {"blackwhite.jpg"}; //String pictures[] = {"title.jpg"}; void setup() { art = loadImage( pictures[int(random(pictures.length))] ); xsize = art.width; ysize = art.height; //size(1200,1000,OPENGL); size(765,540,OPENGL); //size(540,360); frameRate(100); spinner = new spin[maxagents]; for(int i=0; i=xsize || yp<0 || yp >= ysize) return 0; int mpointc = int(red(rgb) + green(rgb) + blue(rgb)); int epointc = int(red(art.pixels[(xp + yp*xsize)])); epointc += int(green(art.pixels[(xp + yp*xsize)])); epointc += int(blue(art.pixels[(xp + yp*xsize)])); if(abs(mpointc-epointc)=360) { degree-=360; radius+=dir; } if(radius>maxradius || radius<-maxradius) { dir*=-1; radius*=0.90; radius=startradius; } } void circlepoints() { if(testendpoint()==1) { xpos += radius*sin(radians(degree)); ypos += radius*cos(radians(degree)); degree+=180; rgb = color(int(red(art.pixels[xpos + ypos*xsize])),int(green(art.pixels[xpos + ypos*xsize])),int(blue(art.pixels[xpos + ypos*xsize])),255); draw_circlepoints(255); } degree+=speed; while(degree<0) degree+=360; while(degree>359) { degree-=360; radius+=dir; } if(radius>maxradius || radius<-maxradius) { dir*=-1; radius*=0.95; } } void connector() { if(testendpoint()==1) { draw_soft(120); xpos += radius*sin(radians(degree)); ypos += radius*cos(radians(degree)); degree+=180; rgb = color(int(red(art.pixels[xpos + ypos*xsize])),int(green(art.pixels[xpos + ypos*xsize])),int(blue(art.pixels[xpos + ypos*xsize])),255); } //radius+= int(random(4))-2; degree+=speed; while(degree<0) degree+=360; while(degree>=360) { degree-=360; radius+=dir; } if(radius>maxradius || radius<-maxradius) { dir*=-1; radius*=0.90; radius=startradius; } } void spiderweb() { if(testendpoint()==1) { xpos += radius*sin(radians(degree)); ypos += radius*cos(radians(degree)); degree+=180; rgb = color(int(red(art.pixels[xpos + ypos*xsize])),int(green(art.pixels[xpos + ypos*xsize])),int(blue(art.pixels[xpos + ypos*xsize])),255); draw_soft(60); } degree+=speed; while(degree<0) degree+=360; while(degree>359) { degree-=360; radius+=dir; } if(radius>maxradius || radius<-maxradius) { dir*=-1; radius*=0.95; } } } void mouseReleased() { version= int(random(versionen))+1; if(version==1) { maxradius = 40; speed=int(ceil(random(2))); agents = 200; threshold = 5; } else if(version==2) { //scratch agents=maxagents; speed = 180; threshold = 50; startradius = 3; maxradius = 15; } else if(version==3) { //square agents=200; speed = 90; threshold = 15; startradius = 3; maxradius = 12; } else if(version==4) { //scribbler agents=200; speed = 197; threshold = 5; startradius = 3; maxradius = 20; } else if(version==5) { //bezier speed = 193; threshold = 15; startradius = 10; maxradius = 25; agents = 50; } else { agents = maxagents; threshold = 20 + int(random(20)); } setup(); }