prev up next


Aufgabe 5.3 (30 Punkte)

Thema: Modeling Transformation. Erweitern Sie das Projekt aus Aufgabe 1.

  1. Ordnen Sie vier der Quadrate so an, dass sie einen Würfel ergeben. Dazu sind die vier Model Transformation Matrizen bereits als Klassenvariable cubeModel deklariert und initialisiert und die Methode render() sorgt bereits dafür, dass vier Kopien mit diesen Model Matrizen gezeichnet werden. Implementieren Sie die Methode initCube(), die diese vier Matrizen so setzt, dass ein Würfel der Kantenlänge $d=\frac{1}{4}$ entsteht. Verschieben Sie den Würfel außerdem um $t_{x}=\frac{1}{2}$ Einheiten in x Richtung. Hinweis: Da wir nur das Drahtgitter des Würfels zeichnen, genügen vier Kopien des Vierecks.
  2. Ordnen Sie vier der Dreiecke so an, dass sie eine Pyramide ergeben. Dazu sind die vier Model Transformation Matrizen bereits als Klassenvariable pyramidModel deklariert und initialisiert und die Methode render() sorgt bereits dafür, dass vier Kopien mit diesen Model Matrizen gezeichnet werden. Implementieren Sie die Methode initPyramid(), die diese vier Matrizen so setzt, dass eine Pyramide der Kantenlänge $d=\frac{1}{4}$ entsteht (sowohl Länge der Kanten der Grundseite, als auch die der Schrägen). Verschieben Sie die Pyramide außerdem um $t_{x}=-\frac{1}{2}$ Einheiten in x Richtung. Hinweis: Da wir nur das Drahtgitter der Pyramide zeichnen, genügen vier Kopien des Dreiecks.
  3. Halten Sie schriftlich fest, wie Sie den Winkel berechnen, um den Sie das Dreieck kippen müssen, um eine Pyramidenseite zu erhalten.
  4. Zusatzaufgabe: Implementieren Sie die Möglichkeit den Würfel mittels der Tasten $\uparrow$, $\leftarrow$, $\downarrow$ und $\rightarrow$ zu drehen. Die Drehgeschwindigkeit soll erhöht sein, wenn man zusätzlich die rechte Shift-Taste gedrückt hält. Während des Drehens soll sich der Mittelpunkt des Würfels nicht ändern.

Musterlösung vom 30.05.2012:

Die Quellen der Musterlösung sind unter /home/cg/2012/Uebung/Blatt5/Lsg/CG12Blatt5.zipzu finden.


prev up next