import java.awt.geom.Point2D; int counter; int counter2; float xg = 40; float yg = 30; int trunkSegments = int(random(5))+3; int nodeLimit = 20000; Point2D.Float[]pts = new Point2D.Float[nodeLimit]; int branchLimit = 500; float trunkLength = int(random(50))+50; float[]lean2 = new float[trunkSegments+1]; float radius = 15; boolean ifDrawTrunk = false; void setup(){ size(500,400); background(255); stroke(30); } void draw(){ if(!ifDrawTrunk) { trunk(); ifDrawTrunk = true; } branch(pts); } void trunk(){ for(int i= 0; i2){ radius*=.931; } }else if(counter2 >= 200){ stemCount = 2 + (int)(Math.random()*15); stroke(220+random(30), random(80), random(100) , 100); yg += myRand(5); xg -= random(1.5); radius *= (.91); } for (int j =0; j