Heute möchte ich die Programmierumgebung Processing vorstellen, mit der es recht schnell und einfach möglich ist, zu programmieren. Da Processing in der Programmiersprache Java geschrieben ist, ist es für Windows, Mac OS X und Linux verfügbar. Die Programmiersprache Processing ist ein leicht verändertes Java. So ist zum Beispiel nur ein
void meineFunktion(int anz) { …
nötig um eine Funktion zu schreiben.
Da der Schwerpunkt in der Grafik-Programmierung liegt, bringt Processing viele sinnvolle und praktische Funktionen mit, mit denen es sehr einfach ist, 3D Bilder oder Animationen zu erstellen. Es gibt sowohl fertige Funktionen, um einen Würfel zu erstellen und ihn um die eigene Achse zu drehen, als auch komplett eigene Körper.
Auch Interessierte, die bis her noch nichts mit einer Programmiersprache zu tun hatten, werden schnell Ergebnisse erzielen können.
Processing download und erste Schritte
Processing kann auf der Seite des Herstellers heruntergeladen werden: http://processing.org/download/
Nach dem Entpacken, kann Processing sofort gestartet werden.
Nach dem Processing gestartet wurde, können unter “File” -> “Exampels” viele verschiedene Beispiele geladen werden, an denen man auch recht viel über Processing lernen kann. Da die Benutzeroberfläche recht einfach und übersichtlich gestaltet ist und sich zudem selbst erklärt, werde ich nicht weiter darauf eingehen.
Außer ein Button, der nicht gleich ins Auge sticht, jedoch später recht sinnvoll ist. Dieser befindet sich ganz rechts in der Tab-Leiste und ist ein Pfeil nach rechts. Dieser Knopf öffnet weitere Tabs, die die Übersicht erleichtern. Trotz der Möglichkeit verschiedener Tabs, können Variablen, die global definiert sind, also nicht in einer Funktion stehen (das reicht bei Processing aus), so wie Funktionen, in jedem Tab verwendet werden.
Die erste 3D-Animation
Nun will ich kurz erklären, wie man einen 3D-Würfel erzeugt, ihn grün färbt und anschließend um die eigene Achse drehen lässt.
Die Main-Funktion von Processing nennt sich “void setup()”, diese wird ein mal beim Start des Programms aufgerufen. Um Animationen zu erzeugen, wird zusätzlich noch die Funktion “void draw()” benötigt. Diese wird immer wieder ausgeführt. Damit auf jeden Rechner die Animation gleich schnell abläuft, unabhängig der Rechenleistung, gibt es die Funktion “frameRate()”, die in die Setup-Funktion ihren Platz hat. Nun brauchen wir noch ein Ausgabefenster. Das Ausgabefenster wird mit “size()” erstellt und gehört auch in die Setup-Funktion.
Nun haben wir die Setup-Funktion soweit ausgerüstet, das wir uns an die Draw-Funktion machen können, aber vorher noch mal die fertige Setup-Funktion:
void setup() { size(600, 600, P3D); // 600 x 600 im 3D (P3D) Modus frameRate(24); // Bildwiederholrate 24 }
Die Draw-Funktion kommt direkt unter die Setup-Funktion und sieht in meinem Beispiel wie folgt aus:
void draw() { lights(); background(0); pushMatrix(); translate(width/2, height/2, 0); rotateY(radians(frameCount)); fill(0,255,0); box(100); popMatrix(); }
- Als erstes werden mit “lights()” die Lichter aktiviert. Das lässt den Würfel plastischer wirken.
- In der nächsten Zeile wird mit “background(0)” der Hintergrund schwarz gefärbt.
- Eine Zeile weiter wird mit “pushMatrix()” die Matrix-Ebene gewechselt. (Stichwort: MatrixStack).
- Anschließend wird das Koordinaten System um die Hälfte der Breite und um die Hälfte der Höhe verschoben. (“width” und “height” sind feste Variablen, die automatisch den wert durch “size()” bekommen.)
- Die Funktion “rotateY()” dreht, wie der Name schon erahnen lässt, auf der Y-Achse.
- Mit “fill()” können Objekte eingefärbt werden (Rot, Grün, Blau und Alpha).
- Eine Zeile weiter wird der Würfel erzeugt.
- In der letzten Zeile wird wieder auf die erste Matrix-Ebene gewechselt.
Nun ist die erste selbst programmierte 3D Animation zum starten bereit.
Ein paar Hinweise zum Schluss
Vordefinierte Funktionen und reservierte Wörter wie “void” werden orange eingefärbt. Feste Variablen wie “frameCount”, “width” und “height” werden hellblau eingefärbt. Variablen und Funktionen fangen immer mit einem Kleinbuchstaben an.
Ich wünsche viel Spaß beim herum probieren, programmieren und experimentieren.