Prof. Dr. Andreas Butz Dipl.-Medieninf. Hendrik Richter Dipl.-Medieninf. Raphael Wimmer Computergrafik Übung Wiederholung Lineare Algebra: Vektoren, Matrizen, Transformationen in D und 3D Computergrafik 4/6/ Übung SS 6.4.
Organisatorisches Termin und Ort: 5 Wöchentliche Übungstermine: Freitags, :5 3:45 und 4:5 5:45 Montags, :5 3:45 und 4:5 5:45 und 6:5 7:45 Ort: Theresienstr. 39, Raum B 34 Zum Ende des Semesters wird es eine Klausur geben (6.7.) Computergrafik Übung SS 6.4.
Ziele der Übung Erlernen von grundlegenden Konzepten der 3D-Programmierung: Transformationen Licht und Teturen Interaktion Erwerb von Kenntnissen in C/C++, OpenGL und QT: Wiederholung algebraischer Grundlagen Grundlage der C/C++ Programmierung Grundlegende 3D-Programmierung mit OpenGL Grundlagen der GUI-Programmierung mit QT Verständnis der Mathematik für 3D-Grafik: Transformations- und Projektionsmatrizen Computergrafik Übung SS 6.4. 3
Formalia Ablauf der Übung: Es wird wöchentliche Übungsblätter geben Donnerstag 4: Neues Aufgabenblatt. Montag : Abgabe der Aufgaben. Abgabe über UniWorX erlaubte Formate sind nur Plain Tet (UTF-8) und PDF Die ersten Übungsblätter werden alleine bearbeitet und abgegeben im weiteren Verlauf der Übung werden von den Übungsleitern feste Gruppen zu 4 Personen eingeteilt Alle Aufgaben der späteren Übungsblätter müssen als ein *.zip File von einem Mitglied der Gruppe unter Angabe aller anderen Mitglieder erfolgen. Computergrafik Übung SS 6.4. 4
Bonuspunkte Abgaben müssen Pünktlich (vor Montag, Uhr s.t.) Korrekt (kompilieren mit einem Klick) Lauffähig Und nicht abgeschrieben sein (für Abschreiber und Vorlagenlieferant keine Bonuspunkte) Jedes Blatt wird korrigiert, die relative Anzahl der erreichten Punkte wird umgerechnet auf - 5 % der in der Klausur erreichbaren Punkte. Nur wenn alle Kriterien erfüllt sind, gehen die erworbenen Punkte als Bonuspunkte in die Klausur ein. Punkte sind Gruppenpunkte, d.h. jeder Teilnehmer einer Gruppe erhält die gleiche Anzahl Punkte. Computergrafik Übung SS 6.4. 5
Wiederholung Lineare Algebra: Vektoren Computergrafik Übung SS 6.4. 6
Koordinatenssteme X Richtung des Daumens Y Zeigefinger Z Mittelfinger Die beiden Koordinatenssteme sind spiegelbildlich und nicht durch Drehung ineinander zu überführen. Computergrafik Übung SS 6.4. Quelle: Skript zur Vorlesung Computergrafik im SS9 Prof. Dr. Ing. Ael Hoppe LMU München 7
Vektoren - Grundbegriffe a r a a Elemente eines Vektorraums Länge und Richtung Verschiebung keine Aussage über absolute Position Schreibweise: a a r : a Betrag/ Norm/ Länge eines Vektors: r r r a a a a + an + a +... Computergrafik Übung SS 6.4. 8
Computergrafik Übung SS 6.4. Vektoren - Addition geometrisch: Anfang des zweiten Pfeils an Spitze des ersten Pfeils Addition ist kommutativ im kartesischen Koordinatensstem: + + + + b a r r 9 a+b b+a a b
Computergrafik Übung SS 6.4. Vektoren Multiplikation : Skalarmultiplikation Multiplikation mit einem Skalar/ Skalarmultiplikation: * * * * * z z a r Veränderung der Vektorlänge um Faktor des Skalars das Ergebnis ist wieder ein Vektor bei Multiplikation mit negativem Skalar dreht sich die Richtung des Vektors
Computergrafik Übung SS 6.4. das Ergebnis ist ein Skalar wenn Skalarprodukt, stehen die Vektoren senkrecht aufeinander bzw sind orthogonal Verwendung: Winkel zwischen Vektoren ausrechnen Vektoren Multiplikation : Skalarprodukt Multiplikation eines Vektors mit einem Vektor: cos b a b a r r r r λ, z z z z b a b a + + r r
Computergrafik Übung SS 6.4. Vektoren Multiplikation 3: Kreuzprodukt/ Vektorprodukt Ziel: Zwei Vektoren zu einem Normalenvektor der Ebene verbinden. Welcher Vektor steht auf beiden Vektoren senkrecht? Die Länge dieses Vektors ist die Flächengröße des Parallelogramms mit den Seiten und. e b a b a r r r r r ) sin(ϕ Phi Winkel, eingeschlossen von a und b e Einheitsvektor, zu beiden Vektoren orthogonal 3 3 3 3 b a b a b a b a b a b a b a r r ϕ e a b a r b r
Vektoren Lineare Abhängigkeit Mehrere Vektoren sind linear abhängig, wenn sie parallel (D) oder koplanar (3D) zueinander sind ODER man einen aus den anderen erstellen kann ODER man mit ihnen den Nullvektor ausdrücken kann, d.h. es gibt, nicht alle Null, so daß gilt: λ,...,λ n λ v r +... + n v r λ n Computergrafik Übung SS 6.4. 3
Geraden im R 3 Geraden im R 3 haben folgende Form: + λ z 3 Zur Berechnung eines Geradenschnittpunkts: Beide Geradengleichungen gleichsetzen eine Gleichung für jede Koordinate Geradenparameter berechnen Einsetzen Punkt Richtungsvektor Geradenparameter Computergrafik Übung SS 6.4. 4
http://commons.wikimedia.org/wiki/file:casio_f-99es_calculator_new.jpg Stefan-Xp GNU FDL Computergrafik Übung SS 6.4.
Wiederholung Lineare Algebra: Matrizen http://matricookbook.com/ Computergrafik Übung SS 6.4. 6
Matrizen - Grundbegriffe Anordnung von Elementen (m n m Zeilen, n Spalten) Verwendung zur Transformation von Punkten und Vektoren Translation, Rotation, Scheren, Skalieren Addition und Multiplikation mit einem Skalar: Element für Element 5 3 4 Computergrafik Übung SS 6.4. 7
Matrizen Multiplikation mit einer Matri Spalten in Matri Zeilen in Matri Element (i,j) im Pordukt ist Produkt der Zeile i der Matri und Spalte j der Matri 5 3 3 4 6 7 9 8 nicht kommutativ: AB! BA assoziativ: A*(B*C) (A*B)*C 4 3 distributiv: A*(B+C) AB + AC 9 9 8 7 44 8 33 6 3 3 6 Computergrafik Übung SS 6.4. 8
Matrizen Multiplikation mit einer Matri (Falkesches Schema) Spalten in Matri Zeilen in Matri Element (i,j) im Produkt ist Produkt der Zeile i der Matri und Spalte j der Matri Spalte 3 3 6 j 3 4 3 6 9 4 Zeile i 7 8 3 5 4 7 9 8 4 3 3 9 7 33 3 5 9 44 6 6 3 4 8 8 3 Computergrafik Übung SS 6.4. 9
Matrizen Multiplikation mit einem Vektor Vektor als einspaltige Matri (m ) Computergrafik Übung SS 6.4.
Matrizen Transponieren einer Matri 3 5 T 4 6 3 4 5 6 Computergrafik Übung SS 6.4.
Matrizen Einheitsmatri I Zwei Matrizen, deren Produkt bei der Matrizenmultiplikation die Einheitsmatri ist, sind zueinander invers. ( AB) AA A A I B A Computergrafik Übung SS 6.4.
Matrizen Inverse Matri Zwei Matrizen, deren Produkt bei der Matrizenmultiplikation die Einheitsmatri ist, sind zueinander invers. Elementare Zeilenumformungen. Vertauschung zweier Zeilen. Multiplikation einer Zeile mit einer konstanten Zahl! 3. Addition des beliebigen Vielfachen einer Zeile zu einer anderen Zeile. Matri zur Einheitsmatri umformen. gleiche Schritte auf Einheitsmatri anwenden 3. umgeformte Einheitsmatri ist Inverse der Quellmatri Computergrafik Übung SS 6.4. 3
http://commons.wikimedia.org/wiki/file:casio_f-99es_calculator_new.jpg Stefan-Xp GNU FDL Computergrafik Übung SS 6.4.
Wiederholung Lineare Algebra: Transformationen Computergrafik Übung SS 6.4. 5
Transformationen in D - Grundbegriffe Bewegungen Transformationen Veränderung der Position von Punkten Verschiebung Translation Größenveränderungen Skalierung Drehung Rotation Weitere affine (linienerhaltende) Transformationen: Spiegelung Scherung Computergrafik Übung SS 6.4. 6
Uniforme Skalierung Zentrum der Skalierung ist, Skalierung erfolgt in alle Richtungen uniform mit dem skalaren Faktor Multiplikation mit dem Skalierungsfaktor Ortsvektor zu (, ) wird auf das - fache verlängert, um (', ' ) zu erhalten (', ' ) (, ) Quelle: Skript zur Vorlesung Computergrafik im SS9 Prof. Dr. Ing. Ael Hoppe LMU München Computergrafik Übung SS 6.4.
Nicht-uniforme Skalierungen Zentrum der Skalierung ist o, Skalierung erfolgt in -Richtung mit Quelle: Skript zur Vorlesung Computergrafik im SS9 Prof. Dr. Ing. Ael Hoppe LMU München (, ) ß (', ' ) Computergrafik Übung SS 6.4. dem Faktor, in -Richtung mit β (Skalierungsvektor (, β) T ) Multiplikation mit entsprechenden Skalierungsfaktoren Ortsvektor zu (, ) wird auf das - fache in -Richtung und das β-fache in -Richtung verlängert. eine Darstellung als Matrizenmultiplikation ist möglich: ' ' β β
Rotation (', ' ) r Quelle: Skript zur Vorlesung Computergrafik im SS9 Prof. Dr. Ing. Ael Hoppe LMU München Rotationszentrum ist der Nullpunkt. Positive Werte von ergeben eine Drehung entgegen dem Uhrzeigersinn. Punkt (, ) wird um den Winkel um den Nullpunkt gedreht, so dass sich der Punkt (', ') ergibt. (, ) φ r r cos( + φ) r cos φ Computergrafik Übung SS 6.4.
Rotation: Berechnungs-Vorschrift Rotationen um negative Winkel erfolgen mit dem Uhrzeigersinn; ausnutzen: cos( ) cos() und sin( ) sin() die Berechnungs-Vorschrift ' cos sin ' sin +cos kann als Matri-Vektormultiplikation ausgedrückt werden: ' ' cos sin sin cos Computergrafik Übung SS 6.4. 3
Translation d (d, d) d + d (', ' ) Punkt (, ) wird auf gerade Linie nach (', ') verschoben. Addition des Verschiebungsvektors Beschreibung der Translation durch einen Vektor (d, d), der die Verschiebungsweite in - und -Richtung angibt (, ) Quelle: Skript zur Vorlesung Computergrafik im SS9 Prof. Dr. Ing. Ael Hoppe LMU München d Computergrafik Übung SS 6.4.
Computergrafik Übung SS 6.4. Zusammenfassung Skalierung Multiplikation mit Vektor/ Skalierungsmatri Rotation Multiplikation mit orthonormaler Rotationsmatri Translation Addition eines Translationsvektors Matrizenmultiplikation ist assoziativ*, lange Ketten von Transformationsmatrizen könnten also zusammengefasst werden. Wie lässt sich die Translation als Matrizenmultiplikation ausdrücken? Homogene Koordinaten Translation als Matrimultiplikation: VORTEIL: Repräsentation aller Punkte in homogenen Koordinaten ermöglicht einheitliche Behandlung der Transformationen, Geschwindigkeitsgewinn * Matrizen A,B und Vektor : A*(B*) (A*B)* + + ' ' β β
Computergrafik Übung SS 6.4. Transformationen in 3D Vorgehensweise analog zu D Arbeit mit homogenen Koordinaten homogene Koordinaten sind jetzt vierdimensional Transformationsmatrizen demzufolge 4 4-Matrizen Anwendung wie in D z t t t T z s s s S cos sin sin cos cos sin sin cos cos sin sin cos z R R R Skalierung Rotation 33 Translation
http://commons.wikimedia.org/wiki/file:casio_f-99es_calculator_new.jpg Stefan-Xp GNU FDL Computergrafik Übung SS 6.4.
Vielen Dank! Nächstes Mal: C++, Qt Computergrafik Übung SS 6.4.