Processing Workshop | Teil 2 | Methode, Funktion und Schleife

Markus Walthert

Schleife
Die graphische Grundelemente sind die Linie, Ellipse, Rechteck, Bogen und Bezier. Damit können mit Reihungen, Schaltungen oder anderen Kombinationen alle beliebigen zweidimensionale Geometrien erstellt werden. Weitere Formen findet man in der Reference unter “Shapes”.

Reihungen können unter anderem mit der for-Schleife erstellt werden. Die for-Schleife wiederholt sich so lange, bis eine definierte Bedingung erfüllt ist. Dazu werden in der Klammer nach for drei “Gesetze” aufgestellt;
for(wie beginnt die Schleife, wann endet die Schleife; was verändert sich in jedem Durchlauf)
Dazu definiert man einen Startwert, einen Endwert. Kontrolliert wird die Schleife durch den Zähler, der sich in jedem Schleifendurchlauf ein klein wenig verändert, z.B. um 1 erhöht. Zugleich kann der Zähler, da er sich nach meinen Wünschen verändert, für die Programmsteuerung verwendet werden. Z.B:

for(Zähler bekommt einen Anfangswert; Zähler kleiner als Endwert?; dann wird der Zähler nochmal ein wenig größer)

Ist der Zähler nicht mehr kleiner als der Endwert, wir die Schleife einfach verlassen und der Programmablauf geht zum nächsten Schritt.

Methode
Um immer wiederkehrende Aufgaben nicht mehrmals programmieren zu müssen, können diese in sogenannte Methoden gepackt werden. Methoden sind wie setup() und draw() in sich geschlossene Blöcke die mit einer geschweiften Klammer beginne und enden. Dazwischen liegt der Methodenrumpf.
Im Beispiel unten sind
drawHalfWay()
getAverage()
solche Methoden, die von jeder beliebigen Stelle aus aufgerufen werden können.

int numLines = 40;
int distLine;
 void setup(){
 size(600,600);
 distLine = width/numLines;
}
 
void draw(){
 background(255);
 /* Line malen, aber erst die Hälfte berechnen...*/
 for(int x=0;x<=numLines;x++){
  for(int y=0;y<=numLines;y++){
   drawHalfWay(x*distLine,y*distLine);
  }
 }
}
 
void drawHalfWay(int theX, int theY){
 int  myHalfX = getAverage(mouseX, theX);
 int  myHalfY = getAverage(mouseY, theY);
 line(theX, theY, myHalfX, myHalfY);
}
 
int getAverage(int theA, int theB){
 int myHalfWay = ((theA + theB) / 2);
 return myHalfWay;
}