26. Oktober 2011
Ausgehend von einem Baum, der immer und immer wieder durch eine rekursive Funktion von neuem wächst, habe ich das Script so abgeändert, dass es aussieht als würde ein Blumenstrauss durch jeden Klick neu spriessen. Dazu der Code, auch hier gibts eine PDF Speicherfunktion mit der Taste "S".import processing.pdf.*; PImage b; void setup() { size(600,600); // def. fenstergroesse beginRecord(PDF,"baum.pdf"); b = loadImage("Q.png"); randomSeed(millis()); // seed random smooth(); // aktiviere antialiasing strokeWeight(5); // linienbreite stroke(0,0,0,150); noLoop(); } void draw() { background(255); pushMatrix(); translate(width *.5,height - 20); wurzel(7); translate(100,100); scale(30,50); popMatrix(); } void mousePressed() { redraw(); } // funktion void wurzel(int tiefe) { if(tiefe <=0) // teste ob das ende erreicht worden ist { // zeichen blueten pushStyle(); int clr = (int)random(100,255); noStroke(); fill(clr,0,0,190); ellipse(0,0,100,100); popStyle(); pushStyle(); int clr2 = (int)random(100,120); noStroke(); fill(clr2,0,100,40); ellipse(0,0,250,250); popStyle(); pushStyle(); int clr3 = (int)random(50,100); noStroke(); fill(clr3,0,100,200); ellipse(0,0,75,50); ellipse(0,0,50,75); popStyle(); /* pushStyle(); pushMatrix(); image(b, 0, 0); popMatrix(); popStyle(); */ return; } // zeichne zweige int x; int y; int count = (int)random(1,6); for(int i = 0; i < count;i++) { x = (int)random(-50,100); y = -(int)random(10,150); pushStyle(); int clr = (int)random (200,255); fill(clr); noStroke(); triangle(100,140,0,0,x,y); popStyle(); pushMatrix(); translate(x,y); scale(random(.3,.95)); wurzel(tiefe-1); popMatrix(); } } void keyPressed() { pushMatrix(); switch(key) { case 's': endRecord(); exit(); } popMatrix(); }