Aufgabe 1a
Es gibt folgende Koordinatenarten aus Sicht der Grafikpipeline laut VL:
Objektkoordinaten
Weltkoordinaten
Projektionskoordinaten
Normierte Koordinaten
Bildschirmkoordinaten
Für folgende Koordinatenarten erklären wir nun die Verwendung:
Objektkoordinaten
Objektkoordinaten beschreiben die Lage von (3D-)Objekten lokal aus der Sicht eines bestimmten Objekts/Punkts innerhalb der Gesamtwelt. wird damit zum Ursprung des Systems der Objektkoordinaten.
Objektkoordinaten sind z.B. nützlich bei der Modellierung von Mehrgelenkigen Armen, sodass Bewegungen von starren Abschnitten jeweils aus der Sicht des zuständigen Gelenks beschrieben werden können.
Bildschirmkoordinaten
Um eine 3D Szene dem Nutzer zugänglich zu machen, muss sie letztendlich in einem Fenster auf einem Bildschirm angezeigt werden. Hierzu werden (projizierten) Punkten sichtbarer Objekte Bildschirmkoordinaten zugewiesen, sodass sie an die Größe und Position des Anzeigefensters angepasst auf dem Bildschirm dargestellt werden können.
Bildschirmkoordinaten kommen auch im umgekehrten Sinne zum Einsatz: Wählt der Nutzer mit der Maus ein Objekt der Szene aus, so müssen die Bildschirmkoordinaten des Mauszeigers in z.B. Weltkoordinaten der angezeigten Szene übersetzt werden.
Aufgabe 1b
Ein 2D Eingabegerät (z.B. Maus) erlaubt es dem Nutzer bei der Interaktion nicht, auch eine Tiefenposition anzugeben. Beispielsweise könnte er ein 3D Objekt mit der Maus greifen und verschieben wollen (Dragging), allerdings ist beim Verschieben nicht klar, ob das Objekt z. B. lediglich in der x-y-Ebene, oder nach hinten in die z-Ebene verschoben werden soll.
2D-Interaktionen mit 3D-Darstellungen sind also mehrdeutig.
Behebungsmöglichkeit: Manipulatoren
Manipulatoren repräsentieren mögliche Operationen auf Objekten (und/oder ihren Status) in der Szene visuell. Das Eingabeproblem lässt sich mit ihnen also z.B. folgendermaßen lösen:
Wird ein Objekt ausgewählt, erscheinen sog. "Handles", also grafische Elemente, die z.B. je einer Verschiebungsrichtung zugeordnet sind. Wird nun Dragging auf den Handles ausgeführt, so ist die Richtung der Verschiebung eindeutig bestimmt.
Behebungsmöglichkeit: Direktes 2D-Maus-Mapping
Jedem 3D Objekt der Szene werden in der Nähe 2D Bereiche in Bildschirmkoordinaten zugeordnet, für jeweils positive/negative Manipulation in Richtung einer der 3D-Achsen.
Beispielsweise kann der Bildschirmbereich rechts-unten von einem Objekt negativem y-Achsenbereich und links-oben positivem y-Achsenbereich zugeordnet werden. Zieht der Nutzer nun beim Dragging das Objekt z.B. in Richtung des Bereichs rechts unten auf dem Bildschirm, so wird entsprechend die y-Position des Objekts in negative Richtung verändert.
Aufgabe 2a
Bei perspektivischer Projektion laufen die Projektionsstrahlen der Punkte eines Objekts in einem zentralen Punkt des Betrachters (Augpunkt), dem "Projektionszentrum", zusammen.
Bei paralleler Projektion hingegen verlaufen jene Strahlen immer parallel zu einander.
Aufgabe 2b
Parallele Projektion erscheint zwar weniger realistisch, da sie nicht an das menschliche Sehempfinden angepasst ist, dafür bleiben allerdings Winkel im Allgemeinen erhalten und parallele Geraden der projizierten Szene bleiben parallel.
Somit eignet sich parallele Projektion für Anwendungsgebiete, welche exakte Darstellungen erfordern, wie beispielsweise in der Medizin. Perspektivische Verzerrung kann hier schwere Folgen haben, wenn z. B. generierte Bilder als Grundlage für Operationen verwendet werden.
Aufgabe 3a
Aufgabe 3b
Eine Drehung um 23° mathematisch negativ um die y-Achse sollte einer Drehung von 360°-23°=337° positiv entsprechen, dies wird durch folgende Matrix erreicht:
Um also Punkte im Planetenkoordinatensystem in das Weltkoordinatensystem zu übersetzen, simulieren wir eine um 23° um y gedrehte z-Achse, indem wir alle Punkte mittels um 23° um die y-Achse drehen und dann mittels an die Stelle des Planeten verschieben:
Aufgabe 3c
Eine Drehung um 90° um die Planetenachse (w-Achse, z-Achse im Standardsystem) wird durch diese Matrix durchgeführt:
Wir drehen also zunächst die Punkte im Planetensystem um dessen Achse (mit ), dann drehen wir um die y-Achse, so als ob wir die Planetenachse um 23° kippen (mit ). Zuletzt müssen wir die Punkte an die Stelle des Planeten mit verschieben.
Somit gilt für :
Aufgabe 3d
Aufgabe 3e
Sollte tatsächlich eine Stauchung im Sinne von Verkleinerung gemeint sein, dann wird um den Faktor skaliert und die Matrix lautet:
Ist eine Vergrößerung um den Maßstab gemeint, dann lautet sie hingegen: