void masterbranch( String[] mb_artists1, String[] mb_artists2, int loc, int dir, float h, float brt, float bender, String tag){ fill(0); bender *= 0.8f+(noise(bender)*0.2f); float a = dir; float winkel = radians(a)+bender; pushMatrix(); translate(0,-loc); //ab an den astanfang rotate(winkel); //astwinkel if (dir < 0){ image(B_mastl, -(brt/2), -h, brt, h); } else { image(B_mastr, -(brt/2), -h, brt, h); } translate(0,-h); //ans ende des astes branch(80,brt*0.75, 1, mb_artists1, 0, bender,0); branch(80,brt*0.75, -1, mb_artists2, 0, bender,0); popMatrix(); } void branch(float h, float brt, int dir, String[] artists1, int level, float bender, int toplevel) { // jeder ast wird kleiner h *= 0.72f; brt *= 0.75f; bender *= 0.8f+(noise(bender)*0.45f); float aba = (40); theta = radians(aba)+bender; if (level <= (artists1.length-1)) { fill(0); pushMatrix(); rotate(dir*theta); // astwinkel image(B_ast, -(brt/2), -h, brt, h); translate(0,-h); //ans ende des astes springen fill(108,0,0); text(artists1[level],0,0); fill(0); int nlvl = level+(level+1); int nnlvl = level+(level+2); branch(h,brt,1,artists1, nlvl, bender, nnlvl); // naechster ast branch(h,brt,-1,artists1, nnlvl, bender, nnlvl); popMatrix(); } } void buildtree(){ noStroke(); fill(0); textFont(sfont); b = b+(ziel-b)*0.02; a = a+(b-a)*0.025; bend = a; bendr = radians(bend); if (a>5){ ziel = -10; } if (a<-5){ ziel = 10; } float breite = 20; translate(376,456);// ANFANGSPUNKT DES BAUMES!!! rotate(bendr/2); image(B_stamm, -27, -180,55,180); float stammH = 180; //println("array1 : "+array1.length+" array1b: "+array1b.length); //println("array2 : "+array2.length+" array2b: "+array2b.length); //println("array3 : "+array3.length+" array3b: "+array3b.length); //println("array4 : "+array4.length+" array4b: "+array4b.length); //println("array5 : "+array5.length+" array5b: "+array5b.length); //println("array6 : "+array6.length+" array6b: "+array6b.length); masterbranch(array1, array1b, int(stammH/2), -80, stammH*0.79f, breite*0.9, bendr, array1tag); masterbranch(array2, array2b, int(stammH-28), -83, stammH*0.70f, breite*0.9, bendr, array2tag); masterbranch(array3, array3b, int(stammH-38), 85, stammH*0.71f, breite*0.9, bendr, array3tag); masterbranch(array4, array4b, int((stammH/2)-5), 77, stammH*0.79f, breite*0.9, bendr, array4tag); masterbranch(array5, array5b, int(stammH-20), -20, stammH*0.68f, breite*0.85, bendr, array5tag); masterbranch(array6, array6b, int(stammH-20), 30, stammH*0.65f, breite*0.85, bendr, array5tag); }