float offset = 30*PI/180; float shrinkFactor = 0.7; int maximumBranchouts = 4; float maximumBranchAngle = 2*PI/4.0; int maximumHeight = 8; void branch(int startX, int startY, int branchLength, float angle, int size) { if (size == 0) return; strokeWeight(size); if (size > 1) { stroke(80, 50, 20); } else { // strokeWeight(1); stroke(0,80+int(random(50)),0); } int endX = startX + int(branchLength * cos(angle)); int endY = startY + int(branchLength * sin(angle)); line(startX, startY, endX, endY); if (size<4) { stroke(0,80+int(random(50)),0); ellipse(endX,endY, random(size*8),random(size*5)); } int branches = int(random(maximumBranchouts - 1)) + 2; float branchShrink = 0.5 + random(1)/2; for (int i=0; i