Willkommen auf unserem Seminar-Blog

Immer auf dem aktuellen Stand bleiben

Dieser Seminar-Blog befindet sich noch im Aufbau und wird in den kommenden Tagen entsprechend verfeinert.

Member Login

Lost your password?

Registration is closed

Sorry, you are not allowed to register by yourself on this site!

You must either be invited by one of our team member or request an invitation by email at viad.info {at} zhdk {dot} ch.

Intensiv rekursiv

5. Oktober 2012

Eine neue Form von Code erwartete uns in dieser Lektion: die rekursive Schleife. Die Abfolge dieser Scripts zu verstehen verlangte von mir einiges an Denkarbeit und war mir deswegen nicht von Beginn an klar. Anfangs versuchte ich, gezielt nach Vorstellungen Formen zu kreieren - was in dieser Programmierart jedoch die völlig falsche Herangehensweise war. Der Punkt darin besteht ja, durch Zufall Formen entstehen zu lassen. Durch ändern der Parameter am Ausgangscode entstand nun das unten platzierte Resultat. Erinnert mich ein wenig an den Film 'Up'.
</pre>
void setup()
{
 size(600,600); // def. fenstergroesse

randomSeed(millis()); // seed random

smooth(); // aktiviere antialiasing
 strokeWeight(5); // linienbreite
 noStroke();
 //stroke(0,0,0,150);

noLoop();
}

void draw()
{
 background(255);

pushMatrix();
 translate(width *.5,height - 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 clr1 = (int)random(1,255);
 int clr2 = (int)random(1,255);
 int clr3 = (int)random(1,255);
 //stroke(clr1, clr2, clr3,190);
 noStroke();
 fill(clr1,clr2,clr3,255);
 float size1 = random(40, 100);
 ellipse(0,0, size1,size1);
 // ellipse(200,200, size1,size1);
 popStyle();

return;
 }

// zeichne zweige
 int x;
 int y;
 int count = (int)random(3,3);
 for(int i = 0; i < count;i++)
 {
 x = (int)random(-200,200);
 y = -(int)random(100,150);

 pushMatrix();
 strokeWeight(5);
 fill(0, 255);
 line(0,0,x,y);
 popMatrix();

pushMatrix();
 translate(x,y);
 scale(random(.1,1.5));
 wurzel(tiefe-1);
 popMatrix();
 }
}
<pre>