//No ArrayList yet. But soon. 10.23.05 float ab; void setup() { size(800,800); background(0); stroke(130,100,100,200); smooth(); ab=25; } void draw() { background(0); grow(400,700,0,1, 1); ab=ab+1; if(ab>35) { ab=25; } delay(2500); } void grow(float x, float y, float a, int L, float dec) { float nx, ny; float wt; if(L<12) { nx=x+80*dec*sin(radians(a)); ny=y-80*dec*cos(radians(a)); if(L>6) { fill(0,random(170,255),0,200); noStroke(); ellipse(nx,ny,10,10); noFill(); stroke(130,100,100,200); } wt=14-1.7*(float)L; //if(L>3) //GOOD IDEA BUT THIS TRAIT MUST BE INHERETED //MAYBE THIS IS HOW TREE GROWS???????!!!!! //{wt=wt+random(-2,0);} if(wt<1) { wt=1; } strokeWeight((int)wt); line(x,y,nx,ny); grow(nx, ny, a+random(ab/2,ab), L+int(random(1,2.4)), dec-random(.08,.11)); grow(nx,ny,a-random(ab/2,ab),L+int(random(1,2.4)), dec-random(.08,.11)); if((int)random(0,2)==1) { grow(nx,ny,a-random(-1*ab/4,ab/4),L+int(random(1,2.4)), dec-random(.08,.11)); } } }