int brushsize = 15; float[] pigments; Drip[] drips; int num; int affectrange = 15; int maxaffect = 20; int mx; float lastRelease=-1; boolean doClear=false; void setup() { size(600, 350); ellipseMode(CENTER); noStroke(); smooth(); background(255); fill(255, 102, 153, 204); framerate(60); //================================= drips = new Drip[width]; pigments = new float[width]; for(int i=0; i= width) mx = width-maxaffect-1; else mx = mouseX; store(mx, 25); } }//draw void mousePressed() { float time=millis(); if(lastRelease!=-1 && (time-lastRelease)<200) { doClear=true; drips = new Drip[width]; pigments = new float[width]; for(int i=0; i width) xr = width-10; range = xr-xl; if(range == 0) range = 1; float sinoffset = 180 / range; float sinstep = 0; int tmpxl = xl; for (int i=0; i -1) { if(drips[x] == null) { drips[x] = new Drip(x, y, pigments[x]); drips[x].init(); } else { drips[x].update(pigments[x]); } } tmpxl++; } sinstep = 0; tmpxl = xl; for (int i=0; i