Lernpfad:Objektorientierte Programmierung mit Processing/5: Unterschied zwischen den Versionen
Jneug (Diskussion | Beiträge) Keine Bearbeitungszusammenfassung |
Jneug (Diskussion | Beiträge) Keine Bearbeitungszusammenfassung |
||
| Zeile 3: | Zeile 3: | ||
== Die Bewegungen der Planeten == | == Die Bewegungen der Planeten == | ||
Bisher ist die Position des Planeten relativ zur Sonne bei <math>(0|0)</math>, also direkt auf der Sonne. Wir müssen | Bisher ist die Position des Planeten relativ zur Sonne bei <math>(0|0)</math>, also direkt auf der Sonne. Wir müssen die wirkliche Position des Planeten noch abhängig von Entfernung und Rotationswinkel berechnen. Wir implementieren dazu eine <code>update</code>-Methode in der Klasse <code>Planet</code>, die das übernimmt. | ||
<syntaxhighlight lang="Java"> | <syntaxhighlight lang="Java"> | ||
| Zeile 14: | Zeile 14: | ||
{{Kasten|Weißt Du noch, wie Kreiskoordinaten berechnet werden können? Eine Erklärung kannst Du in der [https://mathepedia.de/Kreis.html Mathepedia] nachlesen.|Farbe={{Farbe:Info}}}} | {{Kasten|Weißt Du noch, wie Kreiskoordinaten berechnet werden können? Eine Erklärung kannst Du in der [https://mathepedia.de/Kreis.html Mathepedia] nachlesen.|Farbe={{Farbe:Info}}}} | ||
Rufe die neue Methode im Hauptprogramm nach <code>earth.draw();</code> | Rufe die neue Methode im Hauptprogramm nach <code>earth.draw();</code> auf, damit die Position der Erde passend aktualisiert wird. | ||
[[Datei:SonneErde_Processing.png|center|600px]] | [[Datei:SonneErde_Processing.png|center|600px]] | ||
Version vom 23. März 2021, 09:46 Uhr
Die Bewegungen der Planeten
Bisher ist die Position des Planeten relativ zur Sonne bei [math]\displaystyle{ (0|0) }[/math], also direkt auf der Sonne. Wir müssen die wirkliche Position des Planeten noch abhängig von Entfernung und Rotationswinkel berechnen. Wir implementieren dazu eine update-Methode in der Klasse Planet, die das übernimmt.
public void update() {
x = distance * cos(angle);
y = distance * sin(angle);
}
Weißt Du noch, wie Kreiskoordinaten berechnet werden können? Eine Erklärung kannst Du in der Mathepedia nachlesen.
Rufe die neue Methode im Hauptprogramm nach earth.draw(); auf, damit die Position der Erde passend aktualisiert wird.
Schon besser. Nun lass uns etwas Bewegung in's Spiel bringen.
Sorge dafür, dass bei jedem update der Rotationswinkel des Planeten angepasst wird. Dazu hatten wir dem Planeten schon eine Geschwindigkeit als Eigenschaft mitgegeben. Addiere diese bei jedem update auf den Winkel.
public void update() {
angle += speed;
x = distance * cos(angle);
y = distance * sin(angle);
}
Das Ergebnis kann sich sehen lassen:
