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

Aus Informatik-Box
Zur Navigation springen Zur Suche springen
Keine Bearbeitungszusammenfassung
Markierungen: Mobile Bearbeitung Mobile Web-Bearbeitung
KKeine Bearbeitungszusammenfassung
 
Zeile 17: Zeile 17:
[[Datei:SonneErde_Processing.png|center|600px]]
[[Datei:SonneErde_Processing.png|center|600px]]


Schon besser. Nun lass uns etwas Bewegung in's Spiel bringen.
Schon besser. Nun lass uns etwas Bewegung ins Spiel bringen.
{{Aufgabe:Start|Icon=Processing_icon.png}}
{{Aufgabe:Start|Icon=Processing_icon.png}}
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.
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.

Aktuelle Version vom 7. Februar 2022, 23:50 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);
  }
Icon Info.png
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.

SonneErde Processing.png

Schon besser. Nun lass uns etwas Bewegung ins Spiel bringen.

Processing icon.png
Arbeitsauftrag

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.

Lösung
  public void update() {
    angle += speed;
    x = distance * cos(angle);
    y = distance * sin(angle);
  }


Das Ergebnis kann sich sehen lassen:

ErdeRotiert Processing.gif