24. September 2013
Anhand einer rekursiven Funktion soll eine Grafik generiert werden.
void setup()
{
size(600,600); // def. fenstergroesse
randomSeed(millis()); // seed random
smooth(); // aktiviere antialiasing
strokeWeight(1); // linienbreite
stroke(0,0,0,150);
noLoop();
}
void draw()
{
background(255);
pushMatrix();
translate(20, 20);
wurzel(7);
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);
stroke(clr,0,0,190);
fill(clr,0,0,190);
ellipse(0,0,50,50);
popStyle();
return;
}
// zeichne zweige
ellipse(0,0,150,150);
int x;
int y;
int z;
int count = (int)random(1,10);
for(int i = 0; i < count;i++)
{
x = (int)random(10,150);
y = (int)random(10,150);
ellipse(0,0,x,x);
pushMatrix();
translate(x,y);
scale(random(.3,.95));
wurzel(tiefe-1);
popMatrix();
}
}
void keyPressed() {
if (key == '1') {
saveFrame(); // Bild wird als .tiff gespeichert
}
}
[
]