29.04.2015 Aufrufe

1. Übung zu Computergrafik 1

1. Übung zu Computergrafik 1

1. Übung zu Computergrafik 1

MEHR ANZEIGEN
WENIGER ANZEIGEN

Sie wollen auch ein ePaper? Erhöhen Sie die Reichweite Ihrer Titel.

YUMPU macht aus Druck-PDFs automatisch weboptimierte ePaper, die Google liebt.

<strong>1.</strong> Übung <strong>zu</strong> <strong>Computergrafik</strong> 1<br />

Sommersemester 2011<br />

Jun.-Prof. Thorsten Grosch<br />

Abgabe bis Dienstag, den 19.04.2011 15:00 Uhr<br />

Aufgabe 1: Normalisierung (1,5 Punkte)<br />

Berechnen Sie die Länge der folgenden Vektoren und normalisieren Sie die Vektoren auf Länge Eins:<br />

1<br />

2<br />

3<br />

0<br />

0<br />

15<br />

a) b) c)<br />

–1<br />

0<br />

1<br />

Aufgabe 2: Skalarprodukt (1,5 Punkte)<br />

Berechnen Sie die folgenden Skalarprodukte: a) b) c)<br />

Aufgabe 3: Kreuzprodukt (2 Punkte)<br />

3<br />

4<br />

7<br />

–2<br />

• 5<br />

3<br />

–5<br />

0<br />

3<br />

4<br />

• –2<br />

1<br />

3<br />

0<br />

–5<br />

0<br />

• 4<br />

0<br />

5<br />

3 ×<br />

0<br />

–2<br />

4<br />

0<br />

Berechnen Sie folgende Kreuzprodukte: a) b)<br />

1<br />

0<br />

0<br />

×<br />

0<br />

0<br />

–1<br />

Geben Sie in beiden Fällen an, wohin zeigt der resultierende Vektor in einem Rechts - bzw. Linkssystem<br />

zeigt. Die xy-Ebene ist dabei die Zeichenebene.<br />

Aufgabe 4: Kreuzprodukt senkrecht (3 Punkte)<br />

a × b<br />

a<br />

Zeigen Sie, daß der Vektor senkrecht auf steht.<br />

Aufgabe 5: Ebenengleichung (4 Punkte)<br />

Gegeben ist ein Dreieck mit den drei Punkten , und .<br />

a) Geben Sie die Ebenengleichung des Dreiecks in Parameterform an.<br />

b) Geben Sie die Ebenengleichung des Dreiecks in Hesse’scher Normalform ( n 0<br />

• x – d = 0 ) an.<br />

c) Berechnen Sie die Fläche des Dreiecks.<br />

P 0 = P 1 = P 2 2 2 = 1<br />

2 1<br />

1<br />

1 2<br />

1<br />

April 12, 2011 1


Aufgabe 6: Fehlersuche (3 Punkte)<br />

3<br />

a = 0 b =<br />

4<br />

Gegeben sind die beiden Vektoren und .<br />

Zur Berechnung des Winkels zwischen den beiden Vektoren werden zwei verschiedene Varianten vorgeschlagen:<br />

–4<br />

–3<br />

0<br />

a • b<br />

a • b = abcosα ⇒ α=<br />

acos ⎝<br />

⎛ ----------<br />

ab ⎠<br />

⎞ a × b = absinα ⇒ α=<br />

a) b)<br />

asin a × b<br />

⎝<br />

⎛ --------------<br />

ab ⎠<br />

⎞<br />

Berechnen Sie den Winkel nach beiden Varianten. Warum sind die beiden Winkel unterschiedlich und<br />

welcher ist der richtige ?<br />

Aufgabe 7: Vektorzerlegung (3 Punkte)<br />

Gegeben sind die beiden Vektoren und . Zerlegen Sie den Vektor in zwei Komponenten:<br />

Eine parallele Komponente und eine senkrechte Komponente <strong>zu</strong> .<br />

Aufgabe 8: Kamera (3 Punkte)<br />

y<br />

a<br />

=<br />

3<br />

b<br />

7<br />

w<br />

3<br />

--<br />

=<br />

5<br />

a<br />

4<br />

--<br />

5<br />

b<br />

z<br />

2α<br />

x<br />

f<br />

h<br />

Von einer Kamera sind folgende Werte bekannt:<br />

Horizontaler (voller) Öffnungswinkel , Bildbreite w = 2 und Bildhöhe h = <strong>1.</strong>8<br />

a) Berechnen Sie den Abstand f von der Kamera <strong>zu</strong>r Bildebene<br />

b) Berechnen Sie den vertikalen Öffnungswinkel der Kamera<br />

c) Berechnen Sie die Koordinaten des linken oberen Bildpunkts im Kamerakoordinatensystem (x,y,z)<br />

Aufgabe 9: Vektorklasse (2 Punkte)<br />

2α = 60°<br />

Implementieren Sie das Kreuzprodukt für die Klasse Vector3D. Sie können sich bei der Programmierung am<br />

Skalarprodukt orientieren. Testen Sie Ihre Funktion mit den Vektoren aus Aufgabe 3.<br />

April 12, 2011 2


Aufgabe 10: Sierpinski Dreiecke (4 Punkte)<br />

w<br />

P<br />

0<br />

0<br />

= P<br />

w<br />

1<br />

=<br />

---<br />

P 2<br />

= 2<br />

0 0<br />

h<br />

Gegeben sind drei Punkte , ,<br />

Schreiben Sie ein Programm punkte.cpp, das folgenden Algorithmus ausführt:<br />

Setze<br />

P = P 0<br />

Wiederhole N mal<br />

Wähle <strong>zu</strong>fällig einen Punkt<br />

Setze<br />

P<br />

Zeichne Punkt<br />

1<br />

= -- ( P + P<br />

2 i<br />

)<br />

P<br />

P i<br />

( i ∈ { 0, 1,<br />

2}<br />

)<br />

Legen Sie ein OpenGL Fenster mit Breite w und Höhe h an und setzen Sie glOrtho(0, w, 0, h, -1, 1). Zum<br />

Erzeugen der Zufallszahlen können Sie die Funktion rand() aus stdlib.h verwenden.<br />

Als Zahlenwerte können Sie z.B. w = 600, h = 600, N = 100000 verwenden.<br />

April 12, 2011 3

Hurra! Ihre Datei wurde hochgeladen und ist bereit für die Veröffentlichung.

Erfolgreich gespeichert!

Leider ist etwas schief gelaufen!