Subato

Resource Files

GeometricObject

Gegeben sei die Klasse Vertex für Punkte im zweidimensionalen Raum.
class Vertex {
  double x;
  double y;

  Vertex(double x, double y) {
    this.x = x;
    this.y = y;
  }

  void move(Vertex v){
    x += v.x;
    y += v.y;
  }
  void moveTo(Vertex v){
    x = v.x;
    y = v.y;
  }
  public String toString() {
    return "("+x+", "+y+")";
  } 
}
Schreiben Sie eine Klasse GeometricObject, die rechteckige Flächen im zweidimensionalen Raum beschreiben. Diese habe ein Feld corner des Typs Vertex, ein Feld width des Typs double und eine Feld height ebenfalls des Typs double, sowie ein Feld velocity für die Bewegung des Objektes. Versehen Sie die Klasse mit einer geeigneten Methode toString. Schreiben Sie für die Klasse GeometricObject folgende Methoden:
  • double size()
    Es soll das Produkt aus Höhe und Weite errechnet werden.
  • boolean isLargerThan(GeometricObject that)
    Soll ausdrücken, dass die Größe von this größer ist als vom that-Objekt.
  • boolean isAbove(GeometricObject that)
    das Ergebnis soll wahr sein, wenn das übergebene Objekt eine y-Position hat die größer ist als die Summe aus der y-Position des this-Objektes und dessen Höhe.
  • boolean isUnderneath(GeometricObject that)
    das Ergebnis soll wahr sein, wenn die Summer aus y-Position und Höhe des übergebenen Objekt kleiner ist als die y-Position des this-Objektes.
  • boolean isLeftOf(GeometricObject that)
    das Ergebnis soll wahr sein, wenn das this-Objekt auf der x-Achse komplett weiter links als das that-Objekt liegt.
  • boolean isRightOf(GeometricObject that)
    das Ergebnis soll wahr sein, wenn das this-Objekt auf der x-Achse komplett weiter rechts als das that-Objekt liegt.
  • boolean touches(GeometricObject that)
    Soll genau dann wahr sein, wenn die beiden Objekte sich in irgendeiner Weise auf dem Koordinatensystem überschneiden.

class GeometricObject { Vertex corner; double width; double height; Vertex velocity; GeometricObject(Vertex corner, double width, double height, Vertex velocity) { this.corner = corner; this.width = width; this.height = height; this.velocity = velocity; } //Hier jetzt die Methoden implementieren! }
java