Lernpfad Diskussion:Objektorientierte Programmierung mit Processing/4
Zur Navigation springen
Zur Suche springen
Neuer Inhalt (vorher Schritt 3):
{{NNameAnzeigen}}{{NNavigation}}
Im Zentrum unseres Sonnensystems steht die Sonne. Wir wollen die Sonne in der Mitte des Fensters entfachen. Dazu erstellen wie eine Klasse <code>Sun</code>, die die Sonne zeichnet.
Jede Klasse wird in einer neuen Datei erstellt. Öffne dazu auf dem kleinen Pfeil oben einen neuen Tab und nenne ihn "Sun".
[[Datei:20210322220256 Processing.gif|center|frame|Einen neuen Tab erstellen.]]
Unsere Sonne hat zunächst keine "sonnigen" Eigenschaften. Sie befindet sich einfach in der Mitte des Bildschirms und ist gelb. Kopiere folgenden Code in den "Sun"-Tab:
<syntaxhighlight lang="Java">
class Sun {
public float getX() {
return 0.0;
}
public float getY() {
return 0.0;
}
public void draw() {
noStroke();
fill(240,200,0);
ellipse(0,0,50,50);
}
}
</syntaxhighlight>
{{Aufgabe:Start|Icon=Processing_icon.png}}
# Analysiere den Code der Klasse <code>Sun</code> und versuche zu erklären, was die <code>draw</code>-Methode macht. Welche Bedeutung haben die Befehle und welchen Effekt erzeugen sie wohl in {{Processing}}?
# Schaue die Befehle in der offiziellen {{Processing}} Referenz nach: https://processing.org/reference/
{{Aufgabe:End}}
== Es werde Licht! ==
Noch wird keine Sonne im Programmfenster angezeigt. Wir müssen erst ein Objekt der Klasse <code>Sun</code> erzeugen und in der <code>draw</code>-Methode des Hauptprogramms zeichnen lassen.
Wechsele wieder in den ersten Tab und ändere den Code so ab:
<syntaxhighlight lang="Java">
Sun sun = new Sun();
void setup() {
size(800, 600);
}
void draw() {
background(0);
sun.draw();
}
</syntaxhighlight>
{{Aufgabe:Start|Icon=Processing_icon.png}}
# '''Bevor Du das Programm startest''', beantworte folgende Frage: Wo wird die Sonne gleich "aufgehen"? Wenn Du eine Vermutung hast, starte das Programm.
# Hast Du richtig gelegen? Wenn nicht [https://michaelkipp.de/processing/01%20zeichnen.html#sec_1_1 findest Du hier eine Erklärung].
# Wir möchten den Koordinatenursprung (den Punkt <math>(0|0)</math>) gerne in der Mitte des Fensters haben, wenn wir die Sonne zeichnen. Schau erneut in der [https://processing.org/reference/ offiziellen Referenz] nach, ob Du einen entsprechenden Befehl findest. (Tipp: Schau in der Kategorie "Transform" nach.)
{{Aufgabe:End}}
{{Lösung:Start}}
Der passende Befehl lautet [https://processing.org/reference/translate_.html translate()] und verschiebt das Koordinatensystem des Fensters an eine neue Position. Führe sie direkt zu Beginn der <code>draw</code>-Methode aus:
<syntaxhighlight lang="Java">
Sun sun = new Sun();
void setup() {
size(800, 600);
}
void draw() {
// width und height sind die Breite / Höhe des Programmfensters.
// Du könntest hier auch einfach 400 und 300 benutzen.
translate(width/2, height/2);
background(0);
sun.draw();
}
</syntaxhighlight>
[[Datei:TheSun_Processing.png|center|600px]]
{{Lösung:End}}