Lernpfad:Objektorientierte Programmierung mit Processing/3: Unterschied zwischen den Versionen

Aus Informatik-Box
Zur Navigation springen Zur Suche springen
Keine Bearbeitungszusammenfassung
Keine Bearbeitungszusammenfassung
Zeile 1: Zeile 1:
{{NNavigation}}
{{NNavigation}}


Im Zentrum unseres Sonnensystem 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.
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".
Jede Klasse wird in einer neuen Datei erstellt. Öffne dazu auf dem kleinen Pfeil oben einen neuen Tab und nenne ihn "Sun".
Zeile 7: Zeile 7:
[[Datei:20210322220256 Processing.gif|center|frame|Einen neuen Tab erstellen.]]
[[Datei:20210322220256 Processing.gif|center|frame|Einen neuen Tab erstellen.]]


Unsere Sonne hat erstmal keine "sonnigen" Eigenschaften. Sie befindet sich einfach in der Mitte des Bildschirms und ist gelb. Kopiere folgenden Code in den "Sun"-Tab:
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">
<syntaxhighlight lang="Java">
class Sun {
class Sun {
Zeile 53: Zeile 53:


{{Aufgabe:Start|Icon=Processing_icon.png}}
{{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.
# '''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].
# 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.)
# 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.)

Version vom 7. Februar 2022, 23:48 Uhr

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