4. Ãbung zu Computergrafik 1
4. Ãbung zu Computergrafik 1
4. Ãbung zu Computergrafik 1
Erfolgreiche ePaper selbst erstellen
Machen Sie aus Ihren PDF Publikationen ein blätterbares Flipbook mit unserer einzigartigen Google optimierten e-Paper Software.
Aufgabe 1: Transformationen (4 Punkte)<br />
<strong>4.</strong> Übung <strong>zu</strong> <strong>Computergrafik</strong> 1<br />
Sommersemester 2011<br />
Jun.-Prof. Thorsten Grosch<br />
Abgabe bis Dienstag, den 10.05.2011 15:00 Uhr<br />
Geben Sie für die Fälle a)-e) an, welche Transformationen aus dem Original durchgeführt wurden. Geben<br />
Sie auch die <strong>zu</strong>gehörige 3x3 Transformationsmatrix an. Falls Sie die Transformation als Produkt mehrerer<br />
Matrizen darstellen, geben Sie die einzelnen Matrizen und die resultierende Matrix an.<br />
y<br />
Original<br />
2<br />
1<br />
y<br />
a) b)<br />
2<br />
2<br />
y<br />
1<br />
x<br />
c)<br />
2<br />
y<br />
1<br />
1<br />
1<br />
1<br />
x<br />
1<br />
2<br />
1<br />
2<br />
x<br />
d)<br />
2<br />
y<br />
e)<br />
2<br />
y<br />
1<br />
60°<br />
1<br />
x<br />
x<br />
1<br />
2 3 4<br />
1<br />
2<br />
Aufgabe 2: Spezial Skalierung (3 Punkte)<br />
Konstruieren Sie eine 3x3 Matrix, die ein Objekt entlang der Achse<br />
um den Faktor 3 skaliert.<br />
3 ⁄ 2<br />
1 ⁄ 2<br />
y<br />
x<br />
May 3, 2011 1
Aufgabe 3: Inverse Transformationen (4 Punkte)<br />
Gegeben sind folgende 4x4-Transformationsmatrizen. Beschreiben Sie bei jeder Matrix, welche Transformation<br />
mit einem Punkt durchgeführt wird und invertieren Sie die Matrix.<br />
M 1<br />
=<br />
0 3 0 0<br />
M 2<br />
=<br />
0 1 0 5<br />
M 3<br />
=<br />
0 1 0 0<br />
0 0 4 0<br />
0 0 1 7<br />
0 0 – 1 0<br />
2 0 0 0<br />
1 0 0 3<br />
– 1 0 0 0<br />
0 0 0 1<br />
0 0 0 1<br />
0 0 0 1<br />
M 4 =<br />
1 1<br />
------ ------ 0 2 M 5<br />
=<br />
0 0 0 0<br />
2 2<br />
0 0 1 0<br />
1 1<br />
------ –------<br />
0 1<br />
2 2<br />
1 0 0 0<br />
0 0 1 3<br />
0 0 0 1<br />
0 0 0 1<br />
Aufgabe 4: Farbwürfel (7 Punkte)<br />
a) Schreiben Sie eine Klasse ColorCube <strong>zu</strong>m Zeichnen eines farbigen Würfels. Der Würfel soll achsenparallel<br />
im Bereich (0,0,0) bis (1,1,1) liegen. Die Würfelseiten sollen verschiedene Farben haben (Rot, Grün,<br />
Blau, Cyan, Magenta, Gelb). Stellen Sie die Projektion auf glOrtho(-0.5, 1.5, -0.5, 1.5, -10, 10).<br />
y<br />
Numerierung der Eckpunkte<br />
3<br />
OpenGL Fenster<br />
1<br />
2<br />
7<br />
6<br />
z<br />
1<br />
1<br />
b) Der Würfel soll sich jetzt ununterbrochen um seinen Mittelpunkt drehen. Die Pfeiltasten sollen dabei die<br />
Rotationsgeschwindigkeit um die x - und y-Achse verändern, d.h. mehrfaches Drücken einer Pfeiltaste soll<br />
die Rotationsgeschwindigkeit um die Achse erhöhen. Verwenden Sie die idle() Funktion um die display()<br />
Funktion permanent auf<strong>zu</strong>rufen. Für die Abfrage der Pfeiltasten gibt es eine eigene GLUT Funktion:<br />
void special(int key, int x, int y)<br />
{<br />
switch (key) {<br />
case GLUT_KEY_UP : /* code for up */ break;<br />
case GLUT_KEY_LEFT : /* code for left */ break;<br />
...<br />
}<br />
}<br />
void idle()<br />
{<br />
glutPostRedisplay();<br />
}<br />
void main()<br />
{ ...<br />
glutIdleFunc(idle);<br />
glutSpecialFunc(special);<br />
}<br />
x<br />
4<br />
0<br />
5<br />
1<br />
May 3, 2011 2