3: Ein Algorithmus in Processing
- Grundstruktur eines Processing-Programms.
- Verwendung von Befehlen in Java.
Wir definieren einen Algorithmus durch seine Eingabe und die erwartete Ausgabe. Zum Beispiel
Eingabe: zwei ganze Zahlen (a und b)
Ausgabe: die Summe der Zahlen
Dieser Algorithmus lässt sich in einer ersten Version in Processing so programmieren:
// Eingabe: zwei ganze Zahlen (a und b)
int a = 5;
int b = 3;
// Ausgabe: die Summe der Zahlen
print(a + b);
Du siehst die Ausgabe der Summe im Textfenster unten. Verändere die Zahlen für a
und b
und starte das Programm erneut.
Zeilen, die mit //
beginnen, werden von Processing ignoriert. Sie dienen als Kommentare, um das Programm besser zu verstehen.
Dir ist sicher aufgefallen, dass sich beim Start ein kleines Fenster geöffnet hat. Processing ist auf Grafikprogrammierung ausgelegt. In dieses Fenster kannst du mit den Befehlen von Processing zeichnen und so "grafische Algorithmen" programmieren. Hier ist ein Beispiel:
Eingabe: keine
Ausgabe: Zeichne ein Quadrat der Kantenlänge vierzig
// Zeichne ein Quadrat der Kantenlänge vierzig
line(0,0, 40,0);
line(40,0, 40,40);
line(40,40, 0,40);
line(0,40, 0,0);
- Probier den Algorithmus in Processing aus.
- Mach dir klar, was die Zahlen in den
line
-Befehlen bedeuten. Wofür stehen die Zahlenpaare? - Erstelle einen Algorithmus zu dieser Definition:
Eingabe: zwei Zahlen Ausgabe: ein Rechteck mit den angegebenen Kantenlängen
Die Zahlenpaare stehen für die Anfangs- und Endkoordinaten der zu zeichnenden Linie. Das Zeichenfenster besitzt also ein Koordinatensystem, in dem die Koordinaten Punkte im Fenster darstellen.
Mit diesem Wissen lässt sich das Programm umschreiben, indem die passenden Koordinaten gegen die Eingaben a
bzw. b
getauscht werden.
// Breite / Höhe des Rechtecks
int a = 40;
int b = 80;
// Zeichne ein Rechteck der Kantenlängen a und b
line(0,0, a,0);
line(a,0, a,b);
line(a,b, 0,b);
line(0,b, 0,0);
// Breite / Höhe des Rechtecks
int a = 40;
int b = 80;
// Position des Rechtecks
int x = 10;
int y = 20;
// Zeichne ein Rechteck der Kantenlängen a und b
// an der Position (y|y)
line(x,y, x+a,y);
line(x+a,y, x+a,y+b);
line(x+a,y+b, x,y+b);
line(x,y+b, x,y);
// Breite / Höhe des Rechtecks
int a = 40;
int b = 80;
// Position des Rechtecks
int x = 10;
int y = 20;
// Zeichne ein Rechteck der Kantenlängen a und b
// an der Position (y|y)
line(x-(a/2),y-(b/2), x+(a/2),y-(b/2));
line(x+(a/2),y-(b/2), x+(a/2),y+(b/2));
line(x+(a/2),y+(b/2), x-(a/2),y+(b/2));
line(x-(a/2),y+(b/2), x-(a/2),y-(b/2));