Grundlagen der Geometrie Softwaretechnologie II 20.11.2008 Michel Arleth
Einführung Der Bildschirm bildet alle Grafiken zweidimensional ab. Das ist völlig ausreichend für Spiele wie Tetris, dreidimensionale Spiele müssen anders behandelt werden. Dreidimensionale Objekte werden im Rechner in drei Dimensionen berechnet und vor der Ausgabe auf den Bildschirm projiziert.
Punkte, Koordinaten und Vektoren Grundlage ist das kartesische Koordinatensystem. Kleinster Baustein ist der Punkt. Wir benutzen zwei Arten, um Punkte im Koordinatensystem darzustellen: Punkte und Vektoren
Punkte, Koordinaten und Vektoren Darstellung eines Punktes: Darstellung eines Vektors:
Grundrechenarten und Vektoren Länge berechnen: Addition: Skalarprodukt:
Grundrechenarten und Vektoren Multiplikation: Einheitsvektoren:
Vektordarstellung als Vielfaches des Einheitsvektoren Beispiel:
Polarkoordinatendarstellung
Polarkoordinatendarstellung Darstellung eines Punktes durch Länge / Entfernung vom Ursprung (Radiant / r) und den Winkel α zur x-Achse / Azimut) Alternativ Dastellung als Produkt aus Sinus, Cosinus und Länge: Umrechnung eines Punktes in Polarkoordinaten ausgehend von kartesischen Koordinaten wegen Fallunterscheidung komplex. In C++ übernimmt die Funktion atan2 die Umrechnung.
Fallunterscheidungen:
Skalarprodukt Nötig zur Projektion eines Vektoren auf einen anderen. immer ein Absolutwert. Ist bei 90 Grad null.
Skalarprodukt und Projektion Skalarprodukt von Vektor a und b: Projektion von Vektor a auf Vektor b:
Zerlegen von Vektoren Zerlegung von M in x und y:
Darstellung im Bogenmaß Im Einheitskreis ist r = 1 (vgl. Einheitsvektor) Umrechnung Radiant in Grad:
Darstellung im Bogenmaß Bsp: Funktionen in C++: double sin (double x); auch long double und float. Alle Winkelangaben als Radiant.
Bewegung Bewegung eines grafischen Objektes besteht aus Drehung und Verschiebung. Gedreht wird immer um den Ursprung, ggf. wird das Objekt zur Berechnung verschoben.
Bewegung Verschiebung (Translation) von Punkt P um Punkt A:
Bewegung Drehung von Punkt P um Winkel α entgegen dem Uhrzeigersinn::
Bewegung Skalierung von Punkt P um die Faktoren r und s:
Bewegung Skalieren mit unterschiedlichen Faktoren: r=2; s=1
Bewegung Beispiel: Verschiebung und Drehung eines Punktes P(2|1). Angelpunkt A(4|6). P wird um 90 Grad gedreht, die Entfernung von P zu A wird verdoppelt. 1. Verschieben des Koordinatensystems:
Bewegung 2. Drehen des Punktes P' (5|-2) um A'(0|0):
Bewegung 3. Skalierung um den Faktor 2
Bewegung 4. Rückverschieben des Koordinatensystems
Bewegung Zusammenfassung der Transformation in einem Term:
Bewegung Berechnung der Transformation mit Hilfe einer Matrix: Einführung der dritten Dimension aus mathematischen Gründen, bleibt ohne Effekt auf das Resultat.
Bewegung Berechnung der Transformation mit Hilfe einer Matrix: Verschiebung:
Bewegung Berechnung der Transformation mit Hilfe einer Matrix: Drehung:
Bewegung Berechnung der Transformation mit Hilfe einer Matrix: Skalieren:
Bewegung Alle vier Matritzen (Verschieben in den Ursprung, Drehung, Skalierung, Rückverschiebung) werden nacheinander multipliziert und so zusammengefasst:
Bewegung Alle vier Matritzen (Verschieben in den Ursprung, Drehung, Skalierung, Rückverschiebung) werden nacheinander multipliziert und so zusammengefasst:
Projektion „Schatten“ eines Objektes in einem um eine Dimension kleineren Raum
Projektion Orthogonale Projektion
Projektion Orthogonale Projektion:
Projektion Orthogonale Projektion mit der Einschränkung eines Sichtfensters der Höhe c und der Breite d. (c = 0 da 2D) DefinitionSichtbarkeit des Objekts wenn nach der Projektion: Notwendige Transformation von x:
Projektion Rangfolge für y-Wert verschiedener Objekte bilden, dazu Transformation in Abhängigkeit des Abstandes a (Kamera zum Fenster) und b (Abstand Kamera zur Projektionsfläche). Ergebnisse liegen zwischen 0 = a und 1 = b.
Projektion Einfügen der Formeln in Matrix:
Projektion Perspektivische Projektion
Projektion Perspektivische Projektion
Projektion Matrix für perspektivische Projektion: