Sitzung: Jeden Freitag in der Vorlesungszeit ab 16 Uhr c. t. im MAR 0.005. In der vorlesungsfreien Zeit unregelmäßig (Jemensch da?). Macht mit!

Javakurs/Übungsaufgaben/Canvas

Schwierigkeit: Schwer

In dieser Aufgabe sollt Ihr eine Representation einer dreidimensionalen Maloberfläche implementieren, die verschiedene geometrische Figuren wie Kugeln, Punkte, Geraden oder Würfel enthalten kann.

Beachtet bitte, dass diese Aufgabe ziemlich umfangreich ist und daher viele mögliche Fehlerquellen enthält. Fragt daher bei jedem auftauchenden Problem einen Tutor um Hilfe, da sich mögliche Fehler sonst bis zum Schluss durchziehen könnten.


3D-Punkt

Erstellt die Klasse Point3D, die die Representation eines Punktes im dreidimensionalen Punktes darstellt.

Die Klasse soll folgende Daten, Methoden und Funktionen haben:

  1. private Variablen für x-, y- und z-Koordinaten
  2. einen Constructor, der Initialisierungswerte für x,y und z bekommt
  3. eine toString(), die den Punkt so darstellt: "(3, 2, 1)"
    • Tipp: Spätestens jetzt sollte ein erster Test des bisher Geschriebenen erfolgen.
  4. eine Methode changeCoordinates, die eine nachträgliche Anpassung der Koordinaten ermöglicht.
  5. eine Funktion calcDistance, die den Abstand des Punktes zu einem zweiten berechnet
    • Tipp: Entscheidet, ob die Distanz exakt (float) und grob (int) berechnen wollte. In beiden Fällen könnt Ihr unter java.lang.Math Nützliches finden.


Kugel

Erstellt die Klasse Sphere, die eine Kugel darstellen soll.

Sphere soll folgende Daten und Methoden kapseln:

  1. private Variablen für Ursprung (Point3D) und Radius
  2. Methoden zum Ändern und Initialisieren dieser Werte
  3. eine toString mit passender Visualisierung
  4. zwei Funktionen, die Volumen und Oberfläche der Kugel berechnen
  5. eine Funktion, die diese Kugel und eine andere hinsichtlich ihrer Größe vergleicht (compareSpheres)


Weitere Figuren

Orientiert Euch an Sphere und Point 3D und schreibt Klassen für weitere Figuren, wie z.B. Würfel, Zylinder oder Kegel.