Vector vermicelliVect; int currentDiameter; boolean loading; int imageToLoad; int imageLoaded; int w; int h; int npixels; int maxCol; PImage stamp; PImage brushImg; PImage brushMask; float noiseVal; final int[] colors={0x915071,0xDEDEDE,0xDE2141,0xDE7AAC,0x91162A}; float offset; int bgcolor; float w2; void setup(){ size(400,400,P3D); w=width; h=height; npixels=w*h; currentDiameter=0; vermicelliVect=new Vector(); brushImg=loadImage("white.gif"); brushMask=loadImage("mask30.jpg"); brushImg.mask(brushMask); offset=1; bgcolor=0xDDDDCC; w2=w*0.5; } void draw(){ if (mousePressed) { if(currentDiameter<100){ currentDiameter++; } vermicelliVect.addElement(new Disc(mouseX,mouseY,currentDiameter)); vermicelliVect.addElement(new Disc(w-mouseX,mouseY,currentDiameter)); }else{ currentDiameter=0; } background(0); int len=vermicelliVect.size(); int i=0; while(i0){ noiseVal+=offset; if(noiseVal>1) noiseVal--; col=colors[min(4,floor(noiseVal*5))]; pixels[(w*y)+x]= pixels[(w*y)+(w-1-x)]=col; }else{ pixels[(w*y)+x]= pixels[(w*y)+(w-1-x)]=bgcolor; } } } updatePixels(); offset-=0.01; if(offset<0) offset++; } void removeDisc(Disc d){ vermicelliVect.remove(d); }