Wiederholung: Schleifen

Einstieg While-Schleife

Auch in Processing können wir auf die gewohnten Schleifen zurückgreifen. Vollziehe die folgenden Beispiele nach um zu verstehen, wie die while-Schleife in Processing genutzt werden kann.

void setup() {
  size(400, 200);
  background(0);
  stroke(255, 255, 0);
}
 
void draw() {
  int i = 10;
 
  while (i < width) {
    line(i, 0, i, height);
    i += 10;
  }
}
void setup() {
  size(200, 200);
  background(0);
  stroke(255, 255, 0);
}
 
void draw() {
  int i = 10;
  int j = 10;
 
  while(i < width) {
    line(i, 0, i, height);
    line(0, j, width, j);
 
    i += 10;
    j += 10;
  }
}
while-Schleife - Übung 1

Erzeuge folgendes Muster mit Hilfe einer while-Schleife:

while-Schleife - Übung 2

Erzeuge mittels einer Folge von senkrechten Linien und einer while-Schleife einen Farbverlauf.

Verschachtelte for-Schleifen

Um beispielsweise interessante Muster zu erzeugen, kann man for-Schleifen auch ineinander verschachteln. Betrachten wir dazu folgendes Beispiel:

void setup() {
  size(200, 200);
  background(200);
  stroke(255, 0, 0);
  strokeWeight(5);
}
 
void draw() {
  for (int x = 20; x < width; x += 20) {
    for (int y = 20; y < height; y += 20) {
      point(x, y);
    }    
  }
}

Die äußere Schleife legt den x-Wert der ersten Reihe von Punkten fest. Die innere Schleife zeichnet nun alle 20px einen Punkt (Änderung des y-Werts). Nach Abarbeitung der inneren Schleife springt das Programm wieder in die äußere Schleife und ändert den x-Wert um 20px. Daraufhin zeichnet die innere Schleife die zweite Reihe von Punkten, usw. Nach Erreichen der Abbruchbedingung der ersten Schleife bricht das Programm ab.

Im Prinzip kann man beliebig viele Schleifen ineinander verschachteln. Zu beachten ist dabei, dass mit der Zahl der Schleifen unter Umständen die Laufzeit des Programms deutlich zunimmt. Hier noch ein schönes Beispiel:

void setup() {
  size(200, 200);
  background(200);
  stroke(255, 0, 0);
  strokeWeight(1);
}
 
void draw() {
  // Rechtecke im Modus "Ankerpunkt im Zentrum"
  rectMode(CENTER);
 
  background(255);
 
  for (int y = 9; y < height; y += 20) {
    for (int x = 9; x < width; x += 20) {
      for (int d = 18; d > 0; d -= 4) {
        rect(x, y, d, d); 
      }
    }    
  }
}
for-Schleife - Übung 1

Experimentiere mit dem letzten Programmbeispiel, um weitere Muster zu erzeugen. Beispiele:

a)
b)
c)
d)