Lernpfad:Objektorientierte Programmierung mit Processing/3

Aus Informatik-Box
Zur Navigation springen Zur Suche springen

Im Zentrum unseres Sonnensystems steht die Sonne. Wir wollen die Sonne in der Mitte des Fensters entfachen. Dazu erstellen wie eine Klasse Sun, 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".

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:

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);
  }

}
Processing icon.png
Arbeitsauftrag
  1. Analysiere den Code der Klasse Sun und versuche zu erklären, was die draw-Methode macht. Welche Bedeutung haben die Befehle und welchen Effekt erzeugen sie wohl in Processing?
  2. Schaue die Befehle in der offiziellen Processing Referenz nach: https://processing.org/reference/


Es werde Licht!

Noch wird keine Sonne im Programmfenster angezeigt. Wir müssen erst ein Objekt der Klasse Sun erzeugen und in der draw-Methode des Hauptprogramms zeichnen lassen.

Wechsele wieder in den ersten Tab und ändere den Code so ab:

Sun sun = new Sun();

void setup() {
  size(800, 600);
}

void draw() {
  background(0);
  
  sun.draw();
}
Processing icon.png
Arbeitsauftrag
  1. Bevor Du das Programm startest, beantworte folgende Frage: Wo wird die Sonne gleich "aufgehen"? Wenn Du eine Vermutung hast, starte das Programm.
  2. Hast Du richtig gelegen? Wenn nicht findest Du hier eine Erklärung.
  3. Wir möchten den Koordinatenursprung (den Punkt [math]\displaystyle{ (0|0) }[/math]) gerne in der Mitte des Fensters haben, wenn wir die Sonne zeichnen. Schau erneut in der offiziellen Referenz nach, ob Du einen entsprechenden Befehl findest. (Tipp: Schau in der Kategorie "Transform" nach.)
Lösung

Der passende Befehl lautet translate() und verschiebt das Koordinatensystem des Fensters an eine neue Position. Führe sie direkt zu Beginn der draw-Methode aus:

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();
}
TheSun Processing.png