Lernpfad:Objektorientierte Programmierung mit Processing/6

Aus Informatik-Box
Zur Navigation springen Zur Suche springen

Vollmond

Es gibt eine Sonne und die Erde. Es fehlt noch unser treuer Trabant: der Mond.

Sonnensystem Processing.gif
Processing icon.png
Arbeitsauftrag

Erstelle eine neue Klasse Moon. Du kannst Planet als Vorlage nutzen. Ergänze aber noch die Eigenschaft float size, damit wir Monde verschiedener Größe erstellen können. Achte auch darauf, dass der Mond nun nicht mehr um die Sonne, sondern um einen Planeten kreist (passe die Eigenschaft, den Konstruktor und die Getter entsprechend an).

Tipps: fill(255) setzt die Füllfarbe auf Weiß. Die Referenz zur ellipse-Methode hilft Dir dabei, die Größe des Mondes passend zu zeichnen.

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 distance;
  
  private float angle;

  private float speed;
  
  private float size;

  private Planet planet;

  public Moon( String pName, Planet pPlanet, float pSize, float pDist, float pSpeed ) {
    name = pName;
    planet = pPlanet;
    distance = pDist;
    size = pSize;
    
    speed = pSpeed;
    angle = 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(),size,size);
  }
  
  public void update() {
    angle += speed;
    x = distance * cos(angle);
    y = distance * sin(angle);
  }

}