8. November 2010
Rekursive Funktion hiess diese Aufgabe. Hier galt es den bestehenden Code (Baum) so abzuändern, dass sich etwas Neues und Eigenes generiert. Ich verschob als Erstes den Null-Punkt in die Mitte des Fensters und arbeitete hauptsächlich mit Ellipsen und Strichen. Mein Ziel war es eine veränderbare Wolken / Regen - Kombination zu gestalten. Zusätzlich habe ich eine Sonne mit einem Verlauf hinzugefügt, damit man das Wetter besser simulieren kann. Durch klicken auf die Grafik wird jedesmal eine neue Wolkenform generiert (funktioniert hier nicht, weil JPG). Ausgangsform: Mein Produkt: Code:void setup() { size(600,600); // def. fenstergroesse randomSeed(millis()); // seed random smooth(); // aktiviere antialiasing strokeWeight(5); // linienbreite stroke(0,0,0,150); noLoop(); } void draw() { background(255); noStroke(); fill(27,51,75); rect(0,0,600,400); pushStyle(); //colorMode(RGB,50); for(int i = 150; i < 200; i++) { int j = (int)map(i,100,200,255,0); noFill(); strokeWeight(1); stroke(224,175,38,j); ellipse(width/2-150,height/2-150,i,i); } popStyle(); fill(255,247,5); ellipse(width/2-150,height/2-150,150,150); pushMatrix(); translate(width/2,height/4); wurzel(7); popMatrix(); } void mousePressed() { redraw(); } // funktion void wurzel(int tiefe) { if(tiefe <=0) // teste ob das ende erreicht worden ist { // zeichen regen int schatten2; schatten2 = (int)random(0,180); pushStyle(); int clr = (int)random(100,255); stroke(116,198,234,190); fill(clr,clr,clr,190); line(0,100,10,100); stroke(25,67,155,schatten2); line(0,40,100,300); popStyle(); return; } // zeichne wolken int x; int y; int schatten; int count = (int)random(1,8); for(int i = 0; i < count;i++) { x = (int)random(-200,200); y = -(int)random(-100,150); schatten = (int)random(0,100); noStroke(); fill(180,180,180,schatten+20); ellipse(0,0,x-50,y-50); fill(200,200,200,schatten); ellipse(0,0,x,y); pushMatrix(); translate(x,y); scale(random(.3,.95)); wurzel(tiefe-1); popMatrix(); } }