Vollmond
Es gibt eine Sonne und die Erde. Es fehlt noch unser treuer Trabant: der Mond.
classDiagram
Sonne <-- Planet : zentrum
Planet <-- Mond : zentrum
class Mond {
-x: float
-y: float
-entfernung: float
-winkel: float
-geschwindigkeit: float
-farbe: color
+Mond(pX: float, pY: float, pEntfernung: float, pGeschwindigkeit: float, pFarbe: color)
+getX() float
+getY() float
+getEntfernung() float
+getWinkel() float
+getGeschwindigkeit() float
+update()
+draw()
}
classDef default fill:#fff,stroke:#333;
Erstelle eine neue Klasse Mond. Du kannst Planet als Vorlage nutzen.
Achte auch darauf, dass der Mond nun nicht mehr um eine Sonne, sondern um einen Planeten kreist (passe das Attribut zentrum, den Konstruktor und die Getter entsprechend an).
Füge dann einen Mond in das Hauptprogramm ein und lasse ihn um die Erde kreisen. (Passende Werte für den Mond sind: Größe=8, Entfernung=30, Geschwindigkeit:-0.005.)
🔎 Lösung
class Moon {
private String name;
private float x;
private float y;
private float entfernung;
private float winkel;
private float geschwindigkeit;
// Groesse des Mondes
private int groesse;
// Speichert den Planeten, um den der Mond kreist.
private Planet planet;
public Moon( String pName, Planet pPlanet, float pGroesse, float pEntfernung, float pGeschwindigkeit ) {
name = pName;
planet = pPlanet;
entfernung = pEntfernung;
groesse = pGroesse;
geschwindigkeit = pGeschwindigkeit;
winkel = 0.0;
x = 0.0;
y = 0.0;
}
public float getX() {
return planet.getX() + x;
}
public float getY() {
return planet.getY() + y;
}
public void draw() {
noStroke();
fill(255);
ellipse(getX(), getY(), groesse, groesse);
}
public void update() {
winkel += geschwindigkeit;
x = entfernung * cos(winkel);
y = entfernung * sin(winkel);
}
}