//import processing.opengl.*; //trees 1,2,3 taken from //Blprnt tree taken from //grass2 and trees 4,5 taken from String [][] rulesets ={ {"FF", "FF-[-F+F+F-]+[+F-F-F+]", "Blprnt tree"}, {"F", "F[+F]F[-F]F", "Grass1"}, {"F", "F[+F]F[-F][F]", "Grass2"}, {"F", "FF-[-F+F+F]+[+F-F-F]", "Bush"}, {"F", "F[+F][-F[-F]F]F[+F][-F]", "Axial Tree"}, {"X", "FF", "F-[[X]+X]+F[+FX]-X", "tree1"}, {"X", "FF", "F[+X]F[-X]+X", "tree2"}, {"Y", "F", "X[-FFF][+FFF]FX", "YFX[+Y][-Y]", "tree3"}, {"X", "FF", "F[+X][-X]+FX", "tree4"}, {"X", "FF", "F-[[X]+X]+F[+FX]-X", "tree5"}}; ParticleSystem physics; //ParticleSystem treePhysics; GrowTree tree; PFont font; int choice; void setup(){ size(400, 600);//, OPENGL); framerate(24); font = loadFont("ArialMT-40.vlw"); textFont(font, 40); choice = int(random(rulesets.length)); String [] ruleset = new String[rulesets[choice].length-2]; arraycopy(rulesets[choice], 1, ruleset, 0, rulesets[choice].length-2); int iterations = 3; if(choice > 4){ iterations = 4; } tree = new GrowTree(width / 2, height, 1, rulesets[choice][0], ruleset, iterations); ellipseMode(CENTER); } void draw(){ background(0); fill(150); text(rulesets[choice][rulesets[choice].length-1],0,40); text("nodes:"+tree.drawStackSize,0,80); smooth(); tree.draw(); } void mousePressed(){ choice = (choice + 1) % rulesets.length; String [] ruleset = new String[rulesets[choice].length-2]; arraycopy(rulesets[choice], 1, ruleset, 0, rulesets[choice].length-2); int iterations = 3; if(choice > 4){ iterations = 4; } tree = new GrowTree(width / 2, height, 1, rulesets[choice][0], ruleset, iterations); }