Diana, Dominik und Gerrit - userpages.uni-koblenz.decg/ws1213/cg1/uebung/folien/Uebung_1.pdf ·...

85
pgflastimage Organisatorisches Mathematik C++ und Vector-Klasse OpenGL ¨ Ubungsstunde 2 zu Computergrafik 1 Diana, Dominik und Gerrit Institut f¨ ur Computervisualistik Universit¨ at Koblenz 29. und 30. Oktober 2012 Diana, Dominik und Gerrit Arbeitsgruppe Computergrafik ¨ Ubungsstunde 2 zu Computergrafik 1

Transcript of Diana, Dominik und Gerrit - userpages.uni-koblenz.decg/ws1213/cg1/uebung/folien/Uebung_1.pdf ·...

Page 1: Diana, Dominik und Gerrit - userpages.uni-koblenz.decg/ws1213/cg1/uebung/folien/Uebung_1.pdf · Fr., 22.02.2013, 8 bis 12 Uhr Dieser Termin ist aufgrund des Planungsaufwandes fu r

pgflastimage

Organisatorisches Mathematik C++ und Vector-Klasse OpenGL

Ubungsstunde 2 zu Computergrafik 1

Diana, Dominik und Gerrit

Institut fur ComputervisualistikUniversitat Koblenz

29. und 30. Oktober 2012

Diana, Dominik und Gerrit Arbeitsgruppe Computergrafik

Ubungsstunde 2 zu Computergrafik 1

Page 2: Diana, Dominik und Gerrit - userpages.uni-koblenz.decg/ws1213/cg1/uebung/folien/Uebung_1.pdf · Fr., 22.02.2013, 8 bis 12 Uhr Dieser Termin ist aufgrund des Planungsaufwandes fu r

pgflastimage

Organisatorisches Mathematik C++ und Vector-Klasse OpenGL

Inhaltsverzeichnis

1 Organisatorisches

2 Mathematik

3 C++ und Vector-Klasse

4 OpenGL

Diana, Dominik und Gerrit Arbeitsgruppe Computergrafik

Ubungsstunde 2 zu Computergrafik 1

Page 3: Diana, Dominik und Gerrit - userpages.uni-koblenz.decg/ws1213/cg1/uebung/folien/Uebung_1.pdf · Fr., 22.02.2013, 8 bis 12 Uhr Dieser Termin ist aufgrund des Planungsaufwandes fu r

pgflastimage

Organisatorisches Mathematik C++ und Vector-Klasse OpenGL

Ein paar Worte zu CG1 vorab...

Das bisher gelernte...

z. B. aus OOPM

aus Mathematik

... wird angewendet und weitergefuhrt.

Achz...

...und wir dachten, jetzt wurde es cool...

Diana, Dominik und Gerrit Arbeitsgruppe Computergrafik

Ubungsstunde 2 zu Computergrafik 1

Page 4: Diana, Dominik und Gerrit - userpages.uni-koblenz.decg/ws1213/cg1/uebung/folien/Uebung_1.pdf · Fr., 22.02.2013, 8 bis 12 Uhr Dieser Termin ist aufgrund des Planungsaufwandes fu r

pgflastimage

Organisatorisches Mathematik C++ und Vector-Klasse OpenGL

Ein paar Worte zu CG1 vorab...

Wird es auch ¨

Nun sieht man, was man mit all dem machen kann...

Kurze Roadmap

Mathematische Grundlagen

Computergrafik-Grundlagen

OpenGL

Erste Anwendung: Komplettes Spiel mit Steuerung und allemdrum und dran in der Weihnachtsvorlesung!

...und noch viel mehr!

Diana, Dominik und Gerrit Arbeitsgruppe Computergrafik

Ubungsstunde 2 zu Computergrafik 1

Page 5: Diana, Dominik und Gerrit - userpages.uni-koblenz.decg/ws1213/cg1/uebung/folien/Uebung_1.pdf · Fr., 22.02.2013, 8 bis 12 Uhr Dieser Termin ist aufgrund des Planungsaufwandes fu r

pgflastimage

Organisatorisches Mathematik C++ und Vector-Klasse OpenGL

Ubungsbetrieb

Mitgestaltungsmoglichkeiten der Ubungen

Meldet Euch, wenn...

Ihr etwas nicht ganz verstanden habt

Ihr Wunsche und Anregungen habt

Ihr Kritik und Vorschlage habt

Kontakt Ubungsleiter

Diana: mailto:[email protected]

Dominik: mailto:[email protected]

Gerrit: mailto:[email protected]

Kontakt Korrektoren & SVN

Korrektor: Nico Merten: mailto:[email protected]

Korrektor: Kevin Keul: mailto:[email protected], Dominik und Gerrit Arbeitsgruppe Computergrafik

Ubungsstunde 2 zu Computergrafik 1

Page 6: Diana, Dominik und Gerrit - userpages.uni-koblenz.decg/ws1213/cg1/uebung/folien/Uebung_1.pdf · Fr., 22.02.2013, 8 bis 12 Uhr Dieser Termin ist aufgrund des Planungsaufwandes fu r

pgflastimage

Organisatorisches Mathematik C++ und Vector-Klasse OpenGL

Ubungsbetrieb

Ubungsblatter

Abgabe via SVN

Ansprechpartnerin: Diana Rottgermailto:[email protected]

Abgabe

Abgabe immer bis freitags 12 Uhr

https://svn.uni-koblenz.de/cg/CG1_WS1011/GruppeX

Diana, Dominik und Gerrit Arbeitsgruppe Computergrafik

Ubungsstunde 2 zu Computergrafik 1

Page 7: Diana, Dominik und Gerrit - userpages.uni-koblenz.decg/ws1213/cg1/uebung/folien/Uebung_1.pdf · Fr., 22.02.2013, 8 bis 12 Uhr Dieser Termin ist aufgrund des Planungsaufwandes fu r

pgflastimage

Organisatorisches Mathematik C++ und Vector-Klasse OpenGL

Ubungsbetrieb

Abgabe-SVN

Abgabe von Programmcode

.h-Dateien

.cpp-Dateien

Sonst nichts!

Abgabe von Theorieaufgaben

Als PDF!

Diana, Dominik und Gerrit Arbeitsgruppe Computergrafik

Ubungsstunde 2 zu Computergrafik 1

Page 8: Diana, Dominik und Gerrit - userpages.uni-koblenz.decg/ws1213/cg1/uebung/folien/Uebung_1.pdf · Fr., 22.02.2013, 8 bis 12 Uhr Dieser Termin ist aufgrund des Planungsaufwandes fu r

pgflastimage

Organisatorisches Mathematik C++ und Vector-Klasse OpenGL

Ubungsbetrieb

Abgabe-SVN

Ihr durft einchecken...

menschenlesbaren Code: (*.h, *.cpp, ...)

menschenlesbare Konfigurationsdateien

Unterordner

Textdokumente

Diana, Dominik und Gerrit Arbeitsgruppe Computergrafik

Ubungsstunde 2 zu Computergrafik 1

Page 9: Diana, Dominik und Gerrit - userpages.uni-koblenz.decg/ws1213/cg1/uebung/folien/Uebung_1.pdf · Fr., 22.02.2013, 8 bis 12 Uhr Dieser Termin ist aufgrund des Planungsaufwandes fu r

pgflastimage

Organisatorisches Mathematik C++ und Vector-Klasse OpenGL

Ubungsbetrieb

Abgabe-SVN

Ihr durft nicht einchecken...

Kompilate und Zwischenkompilate (*.exe, *.lib, *.a, *.dll,*.manifest, *.obj, *.pdb ...)

Projektdateien, die eure personlichen Konfigurationenenthalten (.project, .cproject, *.sln, ...)

Anhaltspunkt: Alles was sonst großer als 100kb ist, gehortwahrscheinlich nicht ins SVN.

Diana, Dominik und Gerrit Arbeitsgruppe Computergrafik

Ubungsstunde 2 zu Computergrafik 1

Page 10: Diana, Dominik und Gerrit - userpages.uni-koblenz.decg/ws1213/cg1/uebung/folien/Uebung_1.pdf · Fr., 22.02.2013, 8 bis 12 Uhr Dieser Termin ist aufgrund des Planungsaufwandes fu r

pgflastimage

Organisatorisches Mathematik C++ und Vector-Klasse OpenGL

Ubungsbetrieb

Klausurzulassung

Klausur CG1

Mindestens 50% der Theoriepunkte.

Mindestens 50% der Praxispunkte.

CV-Programmierpraktikum CG-Teil

Mindestens 50% der Theoriepunkte.

Mindestens 50% der Praxispunkte.

Bei der BV gibt es keine Zulassungsbeschrankungen

Diana, Dominik und Gerrit Arbeitsgruppe Computergrafik

Ubungsstunde 2 zu Computergrafik 1

Page 11: Diana, Dominik und Gerrit - userpages.uni-koblenz.decg/ws1213/cg1/uebung/folien/Uebung_1.pdf · Fr., 22.02.2013, 8 bis 12 Uhr Dieser Termin ist aufgrund des Planungsaufwandes fu r

pgflastimage

Organisatorisches Mathematik C++ und Vector-Klasse OpenGL

Ubungsbetrieb

Weitere wichtige Anlaufstellen

Newsgroup: infko.cg (wichtig!), zur Not mithttps://deliver.uni-koblenz.de/webnews/

newsgroups.php?search_txt=&group=infko.cg

Webseite:http://www.uni-koblenz-landau.de/koblenz/fb4/

institute/icv/agmueller/lehre/ws1213/cg1

Diana, Dominik und Gerrit Arbeitsgruppe Computergrafik

Ubungsstunde 2 zu Computergrafik 1

Page 12: Diana, Dominik und Gerrit - userpages.uni-koblenz.decg/ws1213/cg1/uebung/folien/Uebung_1.pdf · Fr., 22.02.2013, 8 bis 12 Uhr Dieser Termin ist aufgrund des Planungsaufwandes fu r

pgflastimage

Organisatorisches Mathematik C++ und Vector-Klasse OpenGL

Ubungsbetrieb

Ubungsbetrieb

Ablauf des Ubungsbetriebs

Jeden Freitag gibt’s ein neues Ubungsblatt auf der Seite zurCG1-Lehre:http://www.uni-koblenz-landau.de/koblenz/fb4/

institute/icv/agmueller/lehre/ws1213/cg1

Die bearbeiteten Ubungsblatter mussen immer amdarauffolgenden Freitag bis 12 Uhr im SVN abgegeben werden

Diana, Dominik und Gerrit Arbeitsgruppe Computergrafik

Ubungsstunde 2 zu Computergrafik 1

Page 13: Diana, Dominik und Gerrit - userpages.uni-koblenz.decg/ws1213/cg1/uebung/folien/Uebung_1.pdf · Fr., 22.02.2013, 8 bis 12 Uhr Dieser Termin ist aufgrund des Planungsaufwandes fu r

pgflastimage

Organisatorisches Mathematik C++ und Vector-Klasse OpenGL

Ubungsbetrieb

Bezug der Ubungen zum Rest der Veranstaltung

Die Ubung soll...

Gesamtverstandnis herstellen

Bezug zu anderen Veranstaltungen herstellen und Gehortesvertiefen

sowohl theoretische Grundlagen als auch praktischeUmsetzungen abdecken

Viel bisher Gelerntes zusammen- und weiterfuhren!

CV-Programmierklausur

Vorbereitung zur CV-Programmierklausur!

Diana, Dominik und Gerrit Arbeitsgruppe Computergrafik

Ubungsstunde 2 zu Computergrafik 1

Page 14: Diana, Dominik und Gerrit - userpages.uni-koblenz.decg/ws1213/cg1/uebung/folien/Uebung_1.pdf · Fr., 22.02.2013, 8 bis 12 Uhr Dieser Termin ist aufgrund des Planungsaufwandes fu r

pgflastimage

Organisatorisches Mathematik C++ und Vector-Klasse OpenGL

Ubungsbetrieb

CV-Programmierklausur

Termin

Fr., 22.02.2013, 8 bis 12 Uhr

Dieser Termin ist aufgrund des Planungsaufwandes fur das Institutfur Wissensmedien fest.

Diana, Dominik und Gerrit Arbeitsgruppe Computergrafik

Ubungsstunde 2 zu Computergrafik 1

Page 15: Diana, Dominik und Gerrit - userpages.uni-koblenz.decg/ws1213/cg1/uebung/folien/Uebung_1.pdf · Fr., 22.02.2013, 8 bis 12 Uhr Dieser Termin ist aufgrund des Planungsaufwandes fu r

pgflastimage

Organisatorisches Mathematik C++ und Vector-Klasse OpenGL

Ubungsbetrieb

CG1-Hauptklausur

Termin: 07.02.2013

Diana, Dominik und Gerrit Arbeitsgruppe Computergrafik

Ubungsstunde 2 zu Computergrafik 1

Page 16: Diana, Dominik und Gerrit - userpages.uni-koblenz.decg/ws1213/cg1/uebung/folien/Uebung_1.pdf · Fr., 22.02.2013, 8 bis 12 Uhr Dieser Termin ist aufgrund des Planungsaufwandes fu r

pgflastimage

Organisatorisches Mathematik C++ und Vector-Klasse OpenGL

Ubungsbetrieb

Bezug der Ubungen zum Rest der Veranstaltung

Jede Ubung...

bezieht sich auf den Stoff der aktuell zu bearbeitendenUbungsblatter

greift den Vorlesungsstoff auf und vertieft ihn in direktemBezug auf die Ubungsaufgaben

bespricht Beispielaufgaben, die die aktuell zu bearbeitendenAufgaben vorbereiten und erklaren

Losungen fur Aufgabenblatter

Es werden keine Musterlosungen veroffentlicht! Aufgaben werdenin den Ubungen vorbereitet, die Abgaben werden ausfuhrlichkommentiert.

Diana, Dominik und Gerrit Arbeitsgruppe Computergrafik

Ubungsstunde 2 zu Computergrafik 1

Page 17: Diana, Dominik und Gerrit - userpages.uni-koblenz.decg/ws1213/cg1/uebung/folien/Uebung_1.pdf · Fr., 22.02.2013, 8 bis 12 Uhr Dieser Termin ist aufgrund des Planungsaufwandes fu r

pgflastimage

Organisatorisches Mathematik C++ und Vector-Klasse OpenGL

Skalarprodukt

Berechnung des Skalarprodukts

Allgemein abc

• x

yz

= (a · x) + (b · y) + (c · z)

Beispiel 247

• −2

36

= (2 · (−2)) + (4 · 3) + (7 · 6) = 50

Diana, Dominik und Gerrit Arbeitsgruppe Computergrafik

Ubungsstunde 2 zu Computergrafik 1

Page 18: Diana, Dominik und Gerrit - userpages.uni-koblenz.decg/ws1213/cg1/uebung/folien/Uebung_1.pdf · Fr., 22.02.2013, 8 bis 12 Uhr Dieser Termin ist aufgrund des Planungsaufwandes fu r

pgflastimage

Organisatorisches Mathematik C++ und Vector-Klasse OpenGL

Skalarprodukt

Berechnung des Skalarprodukts

Allgemein abc

• x

yz

= (a · x) + (b · y) + (c · z)

Beispiel 247

• −2

36

= (2 · (−2)) + (4 · 3) + (7 · 6) = 50

Diana, Dominik und Gerrit Arbeitsgruppe Computergrafik

Ubungsstunde 2 zu Computergrafik 1

Page 19: Diana, Dominik und Gerrit - userpages.uni-koblenz.decg/ws1213/cg1/uebung/folien/Uebung_1.pdf · Fr., 22.02.2013, 8 bis 12 Uhr Dieser Termin ist aufgrund des Planungsaufwandes fu r

pgflastimage

Organisatorisches Mathematik C++ und Vector-Klasse OpenGL

Skalarprodukt

Berechnung des Skalarprodukts

Allgemein abc

• x

yz

= (a · x) + (b · y) + (c · z)

Beispiel 247

• −2

36

= (2 · (−2)) + (4 · 3) + (7 · 6) = 50

Diana, Dominik und Gerrit Arbeitsgruppe Computergrafik

Ubungsstunde 2 zu Computergrafik 1

Page 20: Diana, Dominik und Gerrit - userpages.uni-koblenz.decg/ws1213/cg1/uebung/folien/Uebung_1.pdf · Fr., 22.02.2013, 8 bis 12 Uhr Dieser Termin ist aufgrund des Planungsaufwandes fu r

pgflastimage

Organisatorisches Mathematik C++ und Vector-Klasse OpenGL

Skalarprodukt

Berechnung des Skalarprodukts

Allgemein abc

• x

yz

= (a · x) + (b · y) + (c · z)

Beispiel 247

• −2

36

= (2 · (−2)) + (4 · 3) + (7 · 6) = 50

Diana, Dominik und Gerrit Arbeitsgruppe Computergrafik

Ubungsstunde 2 zu Computergrafik 1

Page 21: Diana, Dominik und Gerrit - userpages.uni-koblenz.decg/ws1213/cg1/uebung/folien/Uebung_1.pdf · Fr., 22.02.2013, 8 bis 12 Uhr Dieser Termin ist aufgrund des Planungsaufwandes fu r

pgflastimage

Organisatorisches Mathematik C++ und Vector-Klasse OpenGL

Skalarprodukt

Was besagt das Ergebnis des Skalarprodukts?

Orthogonalitat

~a • ~b = 0⇔ Vektoren sind orthogonal zueinander (d. h. sie stehensenkrecht aufeinander).

Beispiel 100

• 0

10

= (1 · 0) + (0 · 1) + (0 · 0) = 0

Diana, Dominik und Gerrit Arbeitsgruppe Computergrafik

Ubungsstunde 2 zu Computergrafik 1

Page 22: Diana, Dominik und Gerrit - userpages.uni-koblenz.decg/ws1213/cg1/uebung/folien/Uebung_1.pdf · Fr., 22.02.2013, 8 bis 12 Uhr Dieser Termin ist aufgrund des Planungsaufwandes fu r

pgflastimage

Organisatorisches Mathematik C++ und Vector-Klasse OpenGL

Skalarprodukt

Was besagt das Ergebnis des Skalarprodukts?

Orthogonalitat

~a • ~b = 0⇔ Vektoren sind orthogonal zueinander (d. h. sie stehensenkrecht aufeinander).

Beispiel 100

• 0

10

= (1 · 0) + (0 · 1) + (0 · 0) = 0

Diana, Dominik und Gerrit Arbeitsgruppe Computergrafik

Ubungsstunde 2 zu Computergrafik 1

Page 23: Diana, Dominik und Gerrit - userpages.uni-koblenz.decg/ws1213/cg1/uebung/folien/Uebung_1.pdf · Fr., 22.02.2013, 8 bis 12 Uhr Dieser Termin ist aufgrund des Planungsaufwandes fu r

pgflastimage

Organisatorisches Mathematik C++ und Vector-Klasse OpenGL

Skalarprodukt

Was besagt das Ergebnis des Skalarprodukts?

Orthogonalitat

~a • ~b = 0⇔ Vektoren sind orthogonal zueinander (d. h. sie stehensenkrecht aufeinander).

Beispiel 100

• 0

10

= (1 · 0) + (0 · 1) + (0 · 0) = 0

Diana, Dominik und Gerrit Arbeitsgruppe Computergrafik

Ubungsstunde 2 zu Computergrafik 1

Page 24: Diana, Dominik und Gerrit - userpages.uni-koblenz.decg/ws1213/cg1/uebung/folien/Uebung_1.pdf · Fr., 22.02.2013, 8 bis 12 Uhr Dieser Termin ist aufgrund des Planungsaufwandes fu r

pgflastimage

Organisatorisches Mathematik C++ und Vector-Klasse OpenGL

Skalarprodukt

Was besagt das Ergebnis des Skalarprodukts?

Orthogonalitat

~a • ~b = 0⇔ Vektoren sind orthogonal zueinander (d. h. sie stehensenkrecht aufeinander).

Beispiel 100

• 0

10

= (1 · 0) + (0 · 1) + (0 · 0) = 0

Diana, Dominik und Gerrit Arbeitsgruppe Computergrafik

Ubungsstunde 2 zu Computergrafik 1

Page 25: Diana, Dominik und Gerrit - userpages.uni-koblenz.decg/ws1213/cg1/uebung/folien/Uebung_1.pdf · Fr., 22.02.2013, 8 bis 12 Uhr Dieser Termin ist aufgrund des Planungsaufwandes fu r

pgflastimage

Organisatorisches Mathematik C++ und Vector-Klasse OpenGL

Skalarprodukt

Was besagt das Ergebnis des Skalarprodukts?

Winkel zwischen zwei Vektoren

Das Ergebnis des Skalarprodukts gibt Aufschluss uber den Winkelzwischen zwei Vektoren:

~a • ~b = 0→ α = 90◦

~a • ~b < 0→ α > 90◦

~a • ~b > 0→ α < 90◦

Diana, Dominik und Gerrit Arbeitsgruppe Computergrafik

Ubungsstunde 2 zu Computergrafik 1

Page 26: Diana, Dominik und Gerrit - userpages.uni-koblenz.decg/ws1213/cg1/uebung/folien/Uebung_1.pdf · Fr., 22.02.2013, 8 bis 12 Uhr Dieser Termin ist aufgrund des Planungsaufwandes fu r

pgflastimage

Organisatorisches Mathematik C++ und Vector-Klasse OpenGL

Skalarprodukt

Was besagt das Ergebnis des Skalarprodukts?

Winkel zwischen zwei Vektoren

Das Ergebnis des Skalarprodukts gibt Aufschluss uber den Winkelzwischen zwei Vektoren:

~a • ~b = 0→ α = 90◦

~a • ~b < 0→ α > 90◦

~a • ~b > 0→ α < 90◦

Diana, Dominik und Gerrit Arbeitsgruppe Computergrafik

Ubungsstunde 2 zu Computergrafik 1

Page 27: Diana, Dominik und Gerrit - userpages.uni-koblenz.decg/ws1213/cg1/uebung/folien/Uebung_1.pdf · Fr., 22.02.2013, 8 bis 12 Uhr Dieser Termin ist aufgrund des Planungsaufwandes fu r

pgflastimage

Organisatorisches Mathematik C++ und Vector-Klasse OpenGL

Skalarprodukt

Was besagt das Ergebnis des Skalarprodukts?

Winkel zwischen zwei Vektoren

Das Ergebnis des Skalarprodukts gibt Aufschluss uber den Winkelzwischen zwei Vektoren:

~a • ~b = 0→ α = 90◦

~a • ~b < 0→ α > 90◦

~a • ~b > 0→ α < 90◦

Diana, Dominik und Gerrit Arbeitsgruppe Computergrafik

Ubungsstunde 2 zu Computergrafik 1

Page 28: Diana, Dominik und Gerrit - userpages.uni-koblenz.decg/ws1213/cg1/uebung/folien/Uebung_1.pdf · Fr., 22.02.2013, 8 bis 12 Uhr Dieser Termin ist aufgrund des Planungsaufwandes fu r

pgflastimage

Organisatorisches Mathematik C++ und Vector-Klasse OpenGL

Skalarprodukt

Was besagt das Ergebnis des Skalarprodukts?

Lange eines Vektors

Das Skalarprodukt kann zur Berechnung der Lange eines Vektors

benutzt werden: |~v | =√~v • ~v =

√~v2x + ~v2y + ~v2z

Beispiel

~v =

296

, |~v | =

√√√√√ 2

96

• 2

96

=

√(2 · 2) + (9 · 9) + (6 · 6) =

√22 + 92 + 62 =

√121 = 11

Diana, Dominik und Gerrit Arbeitsgruppe Computergrafik

Ubungsstunde 2 zu Computergrafik 1

Page 29: Diana, Dominik und Gerrit - userpages.uni-koblenz.decg/ws1213/cg1/uebung/folien/Uebung_1.pdf · Fr., 22.02.2013, 8 bis 12 Uhr Dieser Termin ist aufgrund des Planungsaufwandes fu r

pgflastimage

Organisatorisches Mathematik C++ und Vector-Klasse OpenGL

Skalarprodukt

Was besagt das Ergebnis des Skalarprodukts?

Lange eines Vektors

Das Skalarprodukt kann zur Berechnung der Lange eines Vektors

benutzt werden: |~v | =√~v • ~v =

√~v2x + ~v2y + ~v2z

Beispiel

~v =

296

, |~v | =

√√√√√ 2

96

• 2

96

=

√(2 · 2) + (9 · 9) + (6 · 6) =

√22 + 92 + 62 =

√121 = 11

Diana, Dominik und Gerrit Arbeitsgruppe Computergrafik

Ubungsstunde 2 zu Computergrafik 1

Page 30: Diana, Dominik und Gerrit - userpages.uni-koblenz.decg/ws1213/cg1/uebung/folien/Uebung_1.pdf · Fr., 22.02.2013, 8 bis 12 Uhr Dieser Termin ist aufgrund des Planungsaufwandes fu r

pgflastimage

Organisatorisches Mathematik C++ und Vector-Klasse OpenGL

Skalarprodukt

Was besagt das Ergebnis des Skalarprodukts?

Lange eines Vektors

Das Skalarprodukt kann zur Berechnung der Lange eines Vektors

benutzt werden: |~v | =√~v • ~v =

√~v2x + ~v2y + ~v2z

Beispiel

~v =

296

, |~v | =

√√√√√ 2

96

• 2

96

=

√(2 · 2) + (9 · 9) + (6 · 6) =

√22 + 92 + 62 =

√121 = 11

Diana, Dominik und Gerrit Arbeitsgruppe Computergrafik

Ubungsstunde 2 zu Computergrafik 1

Page 31: Diana, Dominik und Gerrit - userpages.uni-koblenz.decg/ws1213/cg1/uebung/folien/Uebung_1.pdf · Fr., 22.02.2013, 8 bis 12 Uhr Dieser Termin ist aufgrund des Planungsaufwandes fu r

pgflastimage

Organisatorisches Mathematik C++ und Vector-Klasse OpenGL

Skalarprodukt

Was besagt das Ergebnis des Skalarprodukts?

Lange eines Vektors

Das Skalarprodukt kann zur Berechnung der Lange eines Vektors

benutzt werden: |~v | =√~v • ~v =

√~v2x + ~v2y + ~v2z

Beispiel

~v =

296

, |~v | =

√√√√√ 2

96

• 2

96

=

√(2 · 2) + (9 · 9) + (6 · 6) =

√22 + 92 + 62 =

√121 = 11

Diana, Dominik und Gerrit Arbeitsgruppe Computergrafik

Ubungsstunde 2 zu Computergrafik 1

Page 32: Diana, Dominik und Gerrit - userpages.uni-koblenz.decg/ws1213/cg1/uebung/folien/Uebung_1.pdf · Fr., 22.02.2013, 8 bis 12 Uhr Dieser Termin ist aufgrund des Planungsaufwandes fu r

pgflastimage

Organisatorisches Mathematik C++ und Vector-Klasse OpenGL

Skalarprodukt

Was besagt das Ergebnis des Skalarprodukts?

Lange eines Vektors

Das Skalarprodukt kann zur Berechnung der Lange eines Vektors

benutzt werden: |~v | =√~v • ~v =

√~v2x + ~v2y + ~v2z

Beispiel

~v =

296

, |~v | =

√√√√√ 2

96

• 2

96

=

√(2 · 2) + (9 · 9) + (6 · 6) =

√22 + 92 + 62 =

√121 = 11

Diana, Dominik und Gerrit Arbeitsgruppe Computergrafik

Ubungsstunde 2 zu Computergrafik 1

Page 33: Diana, Dominik und Gerrit - userpages.uni-koblenz.decg/ws1213/cg1/uebung/folien/Uebung_1.pdf · Fr., 22.02.2013, 8 bis 12 Uhr Dieser Termin ist aufgrund des Planungsaufwandes fu r

pgflastimage

Organisatorisches Mathematik C++ und Vector-Klasse OpenGL

Skalarprodukt

Was besagt das Ergebnis des Skalarprodukts?

Lange eines Vektors

Das Skalarprodukt kann zur Berechnung der Lange eines Vektors

benutzt werden: |~v | =√~v • ~v =

√~v2x + ~v2y + ~v2z

Beispiel

~v =

296

, |~v | =

√√√√√ 2

96

• 2

96

=

√(2 · 2) + (9 · 9) + (6 · 6) =

√22 + 92 + 62 =

√121 = 11

Diana, Dominik und Gerrit Arbeitsgruppe Computergrafik

Ubungsstunde 2 zu Computergrafik 1

Page 34: Diana, Dominik und Gerrit - userpages.uni-koblenz.decg/ws1213/cg1/uebung/folien/Uebung_1.pdf · Fr., 22.02.2013, 8 bis 12 Uhr Dieser Termin ist aufgrund des Planungsaufwandes fu r

pgflastimage

Organisatorisches Mathematik C++ und Vector-Klasse OpenGL

Skalarprodukt

Was besagt das Ergebnis des Skalarprodukts?

Lange eines Vektors

Das Skalarprodukt kann zur Berechnung der Lange eines Vektors

benutzt werden: |~v | =√~v • ~v =

√~v2x + ~v2y + ~v2z

Beispiel

~v =

296

, |~v | =

√√√√√ 2

96

• 2

96

=

√(2 · 2) + (9 · 9) + (6 · 6) =

√22 + 92 + 62 =

√121 = 11

Diana, Dominik und Gerrit Arbeitsgruppe Computergrafik

Ubungsstunde 2 zu Computergrafik 1

Page 35: Diana, Dominik und Gerrit - userpages.uni-koblenz.decg/ws1213/cg1/uebung/folien/Uebung_1.pdf · Fr., 22.02.2013, 8 bis 12 Uhr Dieser Termin ist aufgrund des Planungsaufwandes fu r

pgflastimage

Organisatorisches Mathematik C++ und Vector-Klasse OpenGL

Kreuzprodukt

Kreuzprodukt

Allgemein abc

× x

yz

=

(b · z)− (c · y)(c · x)− (a · z)(a · y)− (b · x)

Beispiel 2

5−1

× 3

94

=

(5 · 4)− (−1 · 9)(−1 · 3)− (2 · 4)(2 · 9)− (5 · 3)

=

20− (−9)−3− 818− 15

=

29−11

3

Diana, Dominik und Gerrit Arbeitsgruppe Computergrafik

Ubungsstunde 2 zu Computergrafik 1

Page 36: Diana, Dominik und Gerrit - userpages.uni-koblenz.decg/ws1213/cg1/uebung/folien/Uebung_1.pdf · Fr., 22.02.2013, 8 bis 12 Uhr Dieser Termin ist aufgrund des Planungsaufwandes fu r

pgflastimage

Organisatorisches Mathematik C++ und Vector-Klasse OpenGL

Kreuzprodukt

Kreuzprodukt

Allgemein abc

× x

yz

=

(b · z)− (c · y)(c · x)− (a · z)(a · y)− (b · x)

Beispiel 2

5−1

× 3

94

=

(5 · 4)− (−1 · 9)(−1 · 3)− (2 · 4)(2 · 9)− (5 · 3)

=

20− (−9)−3− 818− 15

=

29−11

3

Diana, Dominik und Gerrit Arbeitsgruppe Computergrafik

Ubungsstunde 2 zu Computergrafik 1

Page 37: Diana, Dominik und Gerrit - userpages.uni-koblenz.decg/ws1213/cg1/uebung/folien/Uebung_1.pdf · Fr., 22.02.2013, 8 bis 12 Uhr Dieser Termin ist aufgrund des Planungsaufwandes fu r

pgflastimage

Organisatorisches Mathematik C++ und Vector-Klasse OpenGL

Kreuzprodukt

Kreuzprodukt

Allgemein abc

× x

yz

=

(b · z)− (c · y)(c · x)− (a · z)(a · y)− (b · x)

Beispiel 2

5−1

× 3

94

=

(5 · 4)− (−1 · 9)(−1 · 3)− (2 · 4)(2 · 9)− (5 · 3)

=

20− (−9)−3− 818− 15

=

29−11

3

Diana, Dominik und Gerrit Arbeitsgruppe Computergrafik

Ubungsstunde 2 zu Computergrafik 1

Page 38: Diana, Dominik und Gerrit - userpages.uni-koblenz.decg/ws1213/cg1/uebung/folien/Uebung_1.pdf · Fr., 22.02.2013, 8 bis 12 Uhr Dieser Termin ist aufgrund des Planungsaufwandes fu r

pgflastimage

Organisatorisches Mathematik C++ und Vector-Klasse OpenGL

Kreuzprodukt

Kreuzprodukt

Allgemein abc

× x

yz

=

(b · z)− (c · y)(c · x)− (a · z)(a · y)− (b · x)

Beispiel 2

5−1

× 3

94

=

(5 · 4)− (−1 · 9)(−1 · 3)− (2 · 4)(2 · 9)− (5 · 3)

=

20− (−9)−3− 818− 15

=

29−11

3

Diana, Dominik und Gerrit Arbeitsgruppe Computergrafik

Ubungsstunde 2 zu Computergrafik 1

Page 39: Diana, Dominik und Gerrit - userpages.uni-koblenz.decg/ws1213/cg1/uebung/folien/Uebung_1.pdf · Fr., 22.02.2013, 8 bis 12 Uhr Dieser Termin ist aufgrund des Planungsaufwandes fu r

pgflastimage

Organisatorisches Mathematik C++ und Vector-Klasse OpenGL

Kreuzprodukt

Kreuzprodukt

Allgemein abc

× x

yz

=

(b · z)− (c · y)(c · x)− (a · z)(a · y)− (b · x)

Beispiel 2

5−1

× 3

94

=

(5 · 4)− (−1 · 9)(−1 · 3)− (2 · 4)(2 · 9)− (5 · 3)

=

20− (−9)−3− 818− 15

=

29−11

3

Diana, Dominik und Gerrit Arbeitsgruppe Computergrafik

Ubungsstunde 2 zu Computergrafik 1

Page 40: Diana, Dominik und Gerrit - userpages.uni-koblenz.decg/ws1213/cg1/uebung/folien/Uebung_1.pdf · Fr., 22.02.2013, 8 bis 12 Uhr Dieser Termin ist aufgrund des Planungsaufwandes fu r

pgflastimage

Organisatorisches Mathematik C++ und Vector-Klasse OpenGL

Kreuzprodukt

Was besagt das Ergebnis des Kreuzprodukts?

Was hat man nun vom Kreuzprodukt?

Es entsteht ein Vektor, der orthogonal zu den beiden Vektoren ist,zwischen denen das Kreuzprodukt gebildet worden ist.

Wofur ist das wichtig?

Die Normalen von Flachen konnen so zum Beispiel berechnetwerden. Normalen benotigt man, damit man weiß, welche Seiteeiner Flache die Vorderseite ist (wichtig z. B. fur Beleuchtung).

Diana, Dominik und Gerrit Arbeitsgruppe Computergrafik

Ubungsstunde 2 zu Computergrafik 1

Page 41: Diana, Dominik und Gerrit - userpages.uni-koblenz.decg/ws1213/cg1/uebung/folien/Uebung_1.pdf · Fr., 22.02.2013, 8 bis 12 Uhr Dieser Termin ist aufgrund des Planungsaufwandes fu r

pgflastimage

Organisatorisches Mathematik C++ und Vector-Klasse OpenGL

Kreuzprodukt

Wofur ist es wichtig, die Vorderseite von Flachen zukennen?

Der Winkel zwischen dem Vektor von Lichtquelle zu einer Flacheund der Normalen ist wichtig fur die Beleuchtung!

Diana, Dominik und Gerrit Arbeitsgruppe Computergrafik

Ubungsstunde 2 zu Computergrafik 1

Page 42: Diana, Dominik und Gerrit - userpages.uni-koblenz.decg/ws1213/cg1/uebung/folien/Uebung_1.pdf · Fr., 22.02.2013, 8 bis 12 Uhr Dieser Termin ist aufgrund des Planungsaufwandes fu r

pgflastimage

Organisatorisches Mathematik C++ und Vector-Klasse OpenGL

Kreuzprodukt

Wofur ist es wichtig, die Vorderseite von Flachen zukennen?

Der Winkel zwischen dem Vektor von Lichtquelle zu einer Flacheund der Normalen ist wichtig fur die Beleuchtung!

Diana, Dominik und Gerrit Arbeitsgruppe Computergrafik

Ubungsstunde 2 zu Computergrafik 1

Page 43: Diana, Dominik und Gerrit - userpages.uni-koblenz.decg/ws1213/cg1/uebung/folien/Uebung_1.pdf · Fr., 22.02.2013, 8 bis 12 Uhr Dieser Termin ist aufgrund des Planungsaufwandes fu r

pgflastimage

Organisatorisches Mathematik C++ und Vector-Klasse OpenGL

Kreuzprodukt

Kreuzprodukt und Skalarprodukt

Beispiel: Kollisionserkennung in einem Computerspiel

1 Berechne fur jede Flache mit dem Kreuzprodukt die Normale

2 Normalisiere die Normalen (das sind sie nicht automatisch!),um sie auch fur Beleuchtung nehmen zu konnen

3 Teste mit Skalarprodukt, ob zwei Korper schon ineinandersind: Vektor von einem Eckpunkt eines Korpers auf beliebigenPunkt auf Flache des zweiten Korpers.

4 Sind sie ineinander: Korper nicht weiterbewegen

5 Sind sie nicht ineinander: Korper durfen sich weiterbewegen

Aber: Das ist sehr rechenintensiv

Diana, Dominik und Gerrit Arbeitsgruppe Computergrafik

Ubungsstunde 2 zu Computergrafik 1

Page 44: Diana, Dominik und Gerrit - userpages.uni-koblenz.decg/ws1213/cg1/uebung/folien/Uebung_1.pdf · Fr., 22.02.2013, 8 bis 12 Uhr Dieser Termin ist aufgrund des Planungsaufwandes fu r

pgflastimage

Organisatorisches Mathematik C++ und Vector-Klasse OpenGL

Normalisierung von Vektoren

Wie normalisiert man einen Vektor?

Einheitsvektoren

Ein normalisierter Vektor (Einheitsvektor) ~v hat die Lange 1.Man schreibt: |~v | = 1.

Zu jedem Vektor ~a kann ein Einheitsvektor ~v berechnetwerden, der in die selbe Richtung wie ~a zeigt und fur den gilt:|~v | = 1.

Viele Berechnungen werden durch die Verwendung vonEinheitsvektoren einfacher.

Diana, Dominik und Gerrit Arbeitsgruppe Computergrafik

Ubungsstunde 2 zu Computergrafik 1

Page 45: Diana, Dominik und Gerrit - userpages.uni-koblenz.decg/ws1213/cg1/uebung/folien/Uebung_1.pdf · Fr., 22.02.2013, 8 bis 12 Uhr Dieser Termin ist aufgrund des Planungsaufwandes fu r

pgflastimage

Organisatorisches Mathematik C++ und Vector-Klasse OpenGL

Normalisierung von Vektoren

Wie normalisiert man einen Vektor?

Einheitsvektoren

Ein normalisierter Vektor (Einheitsvektor) ~v hat die Lange 1.Man schreibt: |~v | = 1.

Zu jedem Vektor ~a kann ein Einheitsvektor ~v berechnetwerden, der in die selbe Richtung wie ~a zeigt und fur den gilt:|~v | = 1.

Viele Berechnungen werden durch die Verwendung vonEinheitsvektoren einfacher.

Diana, Dominik und Gerrit Arbeitsgruppe Computergrafik

Ubungsstunde 2 zu Computergrafik 1

Page 46: Diana, Dominik und Gerrit - userpages.uni-koblenz.decg/ws1213/cg1/uebung/folien/Uebung_1.pdf · Fr., 22.02.2013, 8 bis 12 Uhr Dieser Termin ist aufgrund des Planungsaufwandes fu r

pgflastimage

Organisatorisches Mathematik C++ und Vector-Klasse OpenGL

Normalisierung von Vektoren

Wie normalisiert man einen Vektor?

Einheitsvektoren

Ein normalisierter Vektor (Einheitsvektor) ~v hat die Lange 1.Man schreibt: |~v | = 1.

Zu jedem Vektor ~a kann ein Einheitsvektor ~v berechnetwerden, der in die selbe Richtung wie ~a zeigt und fur den gilt:|~v | = 1.

Viele Berechnungen werden durch die Verwendung vonEinheitsvektoren einfacher.

Diana, Dominik und Gerrit Arbeitsgruppe Computergrafik

Ubungsstunde 2 zu Computergrafik 1

Page 47: Diana, Dominik und Gerrit - userpages.uni-koblenz.decg/ws1213/cg1/uebung/folien/Uebung_1.pdf · Fr., 22.02.2013, 8 bis 12 Uhr Dieser Termin ist aufgrund des Planungsaufwandes fu r

pgflastimage

Organisatorisches Mathematik C++ und Vector-Klasse OpenGL

Normalisierung von Vektoren

Berechnung von Einheitsvektoren

Allgemein

Der Einheitsvektor ~v zum Vektor ~a berechnet wie folgt:

~v = 1|~a| ·~a = 1√

~a•~a·~a

Beispiel

~a =

978

, ~v = 1√√√√√√√

978

978

·

978

= 1√92+72+82

·

978

= 0, 071 ·

978

=

0, 6390, 4970, 568

Diana, Dominik und Gerrit Arbeitsgruppe Computergrafik

Ubungsstunde 2 zu Computergrafik 1

Page 48: Diana, Dominik und Gerrit - userpages.uni-koblenz.decg/ws1213/cg1/uebung/folien/Uebung_1.pdf · Fr., 22.02.2013, 8 bis 12 Uhr Dieser Termin ist aufgrund des Planungsaufwandes fu r

pgflastimage

Organisatorisches Mathematik C++ und Vector-Klasse OpenGL

Normalisierung von Vektoren

Berechnung von Einheitsvektoren

Allgemein

Der Einheitsvektor ~v zum Vektor ~a berechnet wie folgt:

~v = 1|~a| ·~a = 1√

~a•~a·~a

Beispiel

~a =

978

, ~v = 1√√√√√√√

978

978

·

978

= 1√92+72+82

·

978

= 0, 071 ·

978

=

0, 6390, 4970, 568

Diana, Dominik und Gerrit Arbeitsgruppe Computergrafik

Ubungsstunde 2 zu Computergrafik 1

Page 49: Diana, Dominik und Gerrit - userpages.uni-koblenz.decg/ws1213/cg1/uebung/folien/Uebung_1.pdf · Fr., 22.02.2013, 8 bis 12 Uhr Dieser Termin ist aufgrund des Planungsaufwandes fu r

pgflastimage

Organisatorisches Mathematik C++ und Vector-Klasse OpenGL

Normalisierung von Vektoren

Berechnung von Einheitsvektoren

Allgemein

Der Einheitsvektor ~v zum Vektor ~a berechnet wie folgt:

~v = 1|~a| ·~a = 1√

~a•~a·~a

Beispiel

~a =

978

, ~v = 1√√√√√√√

978

978

·

978

= 1√92+72+82

·

978

= 0, 071 ·

978

=

0, 6390, 4970, 568

Diana, Dominik und Gerrit Arbeitsgruppe Computergrafik

Ubungsstunde 2 zu Computergrafik 1

Page 50: Diana, Dominik und Gerrit - userpages.uni-koblenz.decg/ws1213/cg1/uebung/folien/Uebung_1.pdf · Fr., 22.02.2013, 8 bis 12 Uhr Dieser Termin ist aufgrund des Planungsaufwandes fu r

pgflastimage

Organisatorisches Mathematik C++ und Vector-Klasse OpenGL

Normalisierung von Vektoren

Berechnung von Einheitsvektoren

Allgemein

Der Einheitsvektor ~v zum Vektor ~a berechnet wie folgt:

~v = 1|~a| ·~a = 1√

~a•~a·~a

Beispiel

~a =

978

, ~v = 1√√√√√√√

978

978

·

978

= 1√92+72+82

·

978

= 0, 071 ·

978

=

0, 6390, 4970, 568

Diana, Dominik und Gerrit Arbeitsgruppe Computergrafik

Ubungsstunde 2 zu Computergrafik 1

Page 51: Diana, Dominik und Gerrit - userpages.uni-koblenz.decg/ws1213/cg1/uebung/folien/Uebung_1.pdf · Fr., 22.02.2013, 8 bis 12 Uhr Dieser Termin ist aufgrund des Planungsaufwandes fu r

pgflastimage

Organisatorisches Mathematik C++ und Vector-Klasse OpenGL

Normalisierung von Vektoren

Berechnung von Einheitsvektoren

Allgemein

Der Einheitsvektor ~v zum Vektor ~a berechnet wie folgt:

~v = 1|~a| ·~a = 1√

~a•~a·~a

Beispiel

~a =

978

, ~v = 1√√√√√√√

978

978

·

978

= 1√92+72+82

·

978

= 0, 071 ·

978

=

0, 6390, 4970, 568

Diana, Dominik und Gerrit Arbeitsgruppe Computergrafik

Ubungsstunde 2 zu Computergrafik 1

Page 52: Diana, Dominik und Gerrit - userpages.uni-koblenz.decg/ws1213/cg1/uebung/folien/Uebung_1.pdf · Fr., 22.02.2013, 8 bis 12 Uhr Dieser Termin ist aufgrund des Planungsaufwandes fu r

pgflastimage

Organisatorisches Mathematik C++ und Vector-Klasse OpenGL

Normalisierung von Vektoren

Berechnung von Einheitsvektoren

Allgemein

Der Einheitsvektor ~v zum Vektor ~a berechnet wie folgt:

~v = 1|~a| ·~a = 1√

~a•~a·~a

Beispiel

~a =

978

, ~v = 1√√√√√√√

978

978

·

978

= 1√92+72+82

·

978

= 0, 071 ·

978

=

0, 6390, 4970, 568

Diana, Dominik und Gerrit Arbeitsgruppe Computergrafik

Ubungsstunde 2 zu Computergrafik 1

Page 53: Diana, Dominik und Gerrit - userpages.uni-koblenz.decg/ws1213/cg1/uebung/folien/Uebung_1.pdf · Fr., 22.02.2013, 8 bis 12 Uhr Dieser Termin ist aufgrund des Planungsaufwandes fu r

pgflastimage

Organisatorisches Mathematik C++ und Vector-Klasse OpenGL

Normalisierung von Vektoren

Berechnung von Einheitsvektoren

Warum Skalarprodukt des Vektors mit sich selbst und dannWurzel? Was steckt dahinter?

Diana, Dominik und Gerrit Arbeitsgruppe Computergrafik

Ubungsstunde 2 zu Computergrafik 1

Page 54: Diana, Dominik und Gerrit - userpages.uni-koblenz.decg/ws1213/cg1/uebung/folien/Uebung_1.pdf · Fr., 22.02.2013, 8 bis 12 Uhr Dieser Termin ist aufgrund des Planungsaufwandes fu r

pgflastimage

Organisatorisches Mathematik C++ und Vector-Klasse OpenGL

Hello World in C++

Erste Schritte mit C++

Allgemeines zu C++

C++ ist objektorientiert

Anders als in Java besteht eine Klasse aus 2 Dateien:

.h-Datei: Spezifikation einer Klasse mit Methodensignaturen

.cpp-Datei: Die Implementation einer Klasse

Diana, Dominik und Gerrit Arbeitsgruppe Computergrafik

Ubungsstunde 2 zu Computergrafik 1

Page 55: Diana, Dominik und Gerrit - userpages.uni-koblenz.decg/ws1213/cg1/uebung/folien/Uebung_1.pdf · Fr., 22.02.2013, 8 bis 12 Uhr Dieser Termin ist aufgrund des Planungsaufwandes fu r

pgflastimage

Organisatorisches Mathematik C++ und Vector-Klasse OpenGL

Hello World in C++

Erste Schritte mit C++

Allgemeines zu C++

C++ ist objektorientiert

Anders als in Java besteht eine Klasse aus 2 Dateien:

.h-Datei: Spezifikation einer Klasse mit Methodensignaturen

.cpp-Datei: Die Implementation einer Klasse

Diana, Dominik und Gerrit Arbeitsgruppe Computergrafik

Ubungsstunde 2 zu Computergrafik 1

Page 56: Diana, Dominik und Gerrit - userpages.uni-koblenz.decg/ws1213/cg1/uebung/folien/Uebung_1.pdf · Fr., 22.02.2013, 8 bis 12 Uhr Dieser Termin ist aufgrund des Planungsaufwandes fu r

pgflastimage

Organisatorisches Mathematik C++ und Vector-Klasse OpenGL

Hello World in C++

Erste Schritte mit C++

Allgemeines zu C++

C++ ist objektorientiert

Anders als in Java besteht eine Klasse aus 2 Dateien:

.h-Datei: Spezifikation einer Klasse mit Methodensignaturen

.cpp-Datei: Die Implementation einer Klasse

Diana, Dominik und Gerrit Arbeitsgruppe Computergrafik

Ubungsstunde 2 zu Computergrafik 1

Page 57: Diana, Dominik und Gerrit - userpages.uni-koblenz.decg/ws1213/cg1/uebung/folien/Uebung_1.pdf · Fr., 22.02.2013, 8 bis 12 Uhr Dieser Termin ist aufgrund des Planungsaufwandes fu r

pgflastimage

Organisatorisches Mathematik C++ und Vector-Klasse OpenGL

Hello World in C++

Erste Schritte mit C++

Allgemeines zu C++

C++ ist objektorientiert

Anders als in Java besteht eine Klasse aus 2 Dateien:

.h-Datei: Spezifikation einer Klasse mit Methodensignaturen

.cpp-Datei: Die Implementation einer Klasse

Diana, Dominik und Gerrit Arbeitsgruppe Computergrafik

Ubungsstunde 2 zu Computergrafik 1

Page 58: Diana, Dominik und Gerrit - userpages.uni-koblenz.decg/ws1213/cg1/uebung/folien/Uebung_1.pdf · Fr., 22.02.2013, 8 bis 12 Uhr Dieser Termin ist aufgrund des Planungsaufwandes fu r

pgflastimage

Organisatorisches Mathematik C++ und Vector-Klasse OpenGL

Hello World in C++

Hello World in C++

Erste Schritte in C++

Fur einfache Programme benotigen wir keineObjektorientiertheit.

Es reicht eine cpp-Datei, da wir keine Klasse spezifizieren.

Diana, Dominik und Gerrit Arbeitsgruppe Computergrafik

Ubungsstunde 2 zu Computergrafik 1

Page 59: Diana, Dominik und Gerrit - userpages.uni-koblenz.decg/ws1213/cg1/uebung/folien/Uebung_1.pdf · Fr., 22.02.2013, 8 bis 12 Uhr Dieser Termin ist aufgrund des Planungsaufwandes fu r

pgflastimage

Organisatorisches Mathematik C++ und Vector-Klasse OpenGL

Hello World in C++

Hello World in C++

Erste Schritte in C++

Fur einfache Programme benotigen wir keineObjektorientiertheit.

Es reicht eine cpp-Datei, da wir keine Klasse spezifizieren.

Diana, Dominik und Gerrit Arbeitsgruppe Computergrafik

Ubungsstunde 2 zu Computergrafik 1

Page 60: Diana, Dominik und Gerrit - userpages.uni-koblenz.decg/ws1213/cg1/uebung/folien/Uebung_1.pdf · Fr., 22.02.2013, 8 bis 12 Uhr Dieser Termin ist aufgrund des Planungsaufwandes fu r

pgflastimage

Organisatorisches Mathematik C++ und Vector-Klasse OpenGL

Hello World in C++

HelloWorld in C++

#include <iostream >

using namespace std;

int main() {

cout << "Hello World!" << endl;

return 0;

}

Diana, Dominik und Gerrit Arbeitsgruppe Computergrafik

Ubungsstunde 2 zu Computergrafik 1

Page 61: Diana, Dominik und Gerrit - userpages.uni-koblenz.decg/ws1213/cg1/uebung/folien/Uebung_1.pdf · Fr., 22.02.2013, 8 bis 12 Uhr Dieser Termin ist aufgrund des Planungsaufwandes fu r

pgflastimage

Organisatorisches Mathematik C++ und Vector-Klasse OpenGL

Kurze Einfuhrung in C++

Die Header

.h-Datei

Enthalt nur die Methodensignaturen (Ruckgabewert,Methodenname und Ubergabeparameter) undMembervariablen

Beispiel fur Methodensignatur: void set(int index, float value);

Achtung: Nach der letzten } muß noch ein ; eingefugt werden!

class Vector3D {

public: //Uberall sichtbare Methoden

protected: //Nur hier und hiervon abgel. Klassen

private: //Nur in dieser Klasse verfugbar

};

Diana, Dominik und Gerrit Arbeitsgruppe Computergrafik

Ubungsstunde 2 zu Computergrafik 1

Page 62: Diana, Dominik und Gerrit - userpages.uni-koblenz.decg/ws1213/cg1/uebung/folien/Uebung_1.pdf · Fr., 22.02.2013, 8 bis 12 Uhr Dieser Termin ist aufgrund des Planungsaufwandes fu r

pgflastimage

Organisatorisches Mathematik C++ und Vector-Klasse OpenGL

Kurze Einfuhrung in C++

Die Header

.h-Datei

Enthalt nur die Methodensignaturen (Ruckgabewert,Methodenname und Ubergabeparameter) undMembervariablen

Beispiel fur Methodensignatur: void set(int index, float value);

Achtung: Nach der letzten } muß noch ein ; eingefugt werden!

class Vector3D {

public: //Uberall sichtbare Methoden

protected: //Nur hier und hiervon abgel. Klassen

private: //Nur in dieser Klasse verfugbar

};

Diana, Dominik und Gerrit Arbeitsgruppe Computergrafik

Ubungsstunde 2 zu Computergrafik 1

Page 63: Diana, Dominik und Gerrit - userpages.uni-koblenz.decg/ws1213/cg1/uebung/folien/Uebung_1.pdf · Fr., 22.02.2013, 8 bis 12 Uhr Dieser Termin ist aufgrund des Planungsaufwandes fu r

pgflastimage

Organisatorisches Mathematik C++ und Vector-Klasse OpenGL

Kurze Einfuhrung in C++

Die Header

.h-Datei

Enthalt nur die Methodensignaturen (Ruckgabewert,Methodenname und Ubergabeparameter) undMembervariablen

Beispiel fur Methodensignatur: void set(int index, float value);

Achtung: Nach der letzten } muß noch ein ; eingefugt werden!

class Vector3D {

public: //Uberall sichtbare Methoden

protected: //Nur hier und hiervon abgel. Klassen

private: //Nur in dieser Klasse verfugbar

};

Diana, Dominik und Gerrit Arbeitsgruppe Computergrafik

Ubungsstunde 2 zu Computergrafik 1

Page 64: Diana, Dominik und Gerrit - userpages.uni-koblenz.decg/ws1213/cg1/uebung/folien/Uebung_1.pdf · Fr., 22.02.2013, 8 bis 12 Uhr Dieser Termin ist aufgrund des Planungsaufwandes fu r

pgflastimage

Organisatorisches Mathematik C++ und Vector-Klasse OpenGL

Kurze Einfuhrung in C++

Beispiel: Auto.h

class Auto {

public:

int leistung;

float vMax;

Auto ();

Auto(int l, float v);

private:

void calcVMax ();

};

Diana, Dominik und Gerrit Arbeitsgruppe Computergrafik

Ubungsstunde 2 zu Computergrafik 1

Page 65: Diana, Dominik und Gerrit - userpages.uni-koblenz.decg/ws1213/cg1/uebung/folien/Uebung_1.pdf · Fr., 22.02.2013, 8 bis 12 Uhr Dieser Termin ist aufgrund des Planungsaufwandes fu r

pgflastimage

Organisatorisches Mathematik C++ und Vector-Klasse OpenGL

Kurze Einfuhrung in C++

Die CPP-Dateien

.cpp-Datei

Hier befindet sich die eigentliche Implementation.

Jede .cpp-Datei hat eine .h-Datei.

Die in der .h-Datei spezifizierten Methodensignaturen mussenexakt ubernommen werden.

Methoden werden in der cpp-Datei vor Ihrem Namen noch mitdem Klassennamen markiert:

void Auto:: calcVMax () {

vMax = (float )(1.5f * leistung );

}

Diana, Dominik und Gerrit Arbeitsgruppe Computergrafik

Ubungsstunde 2 zu Computergrafik 1

Page 66: Diana, Dominik und Gerrit - userpages.uni-koblenz.decg/ws1213/cg1/uebung/folien/Uebung_1.pdf · Fr., 22.02.2013, 8 bis 12 Uhr Dieser Termin ist aufgrund des Planungsaufwandes fu r

pgflastimage

Organisatorisches Mathematik C++ und Vector-Klasse OpenGL

Kurze Einfuhrung in C++

Die CPP-Dateien

.cpp-Datei

Hier befindet sich die eigentliche Implementation.

Jede .cpp-Datei hat eine .h-Datei.

Die in der .h-Datei spezifizierten Methodensignaturen mussenexakt ubernommen werden.

Methoden werden in der cpp-Datei vor Ihrem Namen noch mitdem Klassennamen markiert:

void Auto:: calcVMax () {

vMax = (float )(1.5f * leistung );

}

Diana, Dominik und Gerrit Arbeitsgruppe Computergrafik

Ubungsstunde 2 zu Computergrafik 1

Page 67: Diana, Dominik und Gerrit - userpages.uni-koblenz.decg/ws1213/cg1/uebung/folien/Uebung_1.pdf · Fr., 22.02.2013, 8 bis 12 Uhr Dieser Termin ist aufgrund des Planungsaufwandes fu r

pgflastimage

Organisatorisches Mathematik C++ und Vector-Klasse OpenGL

Kurze Einfuhrung in C++

Die CPP-Dateien

.cpp-Datei

Hier befindet sich die eigentliche Implementation.

Jede .cpp-Datei hat eine .h-Datei.

Die in der .h-Datei spezifizierten Methodensignaturen mussenexakt ubernommen werden.

Methoden werden in der cpp-Datei vor Ihrem Namen noch mitdem Klassennamen markiert:

void Auto:: calcVMax () {

vMax = (float )(1.5f * leistung );

}

Diana, Dominik und Gerrit Arbeitsgruppe Computergrafik

Ubungsstunde 2 zu Computergrafik 1

Page 68: Diana, Dominik und Gerrit - userpages.uni-koblenz.decg/ws1213/cg1/uebung/folien/Uebung_1.pdf · Fr., 22.02.2013, 8 bis 12 Uhr Dieser Termin ist aufgrund des Planungsaufwandes fu r

pgflastimage

Organisatorisches Mathematik C++ und Vector-Klasse OpenGL

Kurze Einfuhrung in C++

Die CPP-Dateien

.cpp-Datei

Hier befindet sich die eigentliche Implementation.

Jede .cpp-Datei hat eine .h-Datei.

Die in der .h-Datei spezifizierten Methodensignaturen mussenexakt ubernommen werden.

Methoden werden in der cpp-Datei vor Ihrem Namen noch mitdem Klassennamen markiert:

void Auto:: calcVMax () {

vMax = (float )(1.5f * leistung );

}

Diana, Dominik und Gerrit Arbeitsgruppe Computergrafik

Ubungsstunde 2 zu Computergrafik 1

Page 69: Diana, Dominik und Gerrit - userpages.uni-koblenz.decg/ws1213/cg1/uebung/folien/Uebung_1.pdf · Fr., 22.02.2013, 8 bis 12 Uhr Dieser Termin ist aufgrund des Planungsaufwandes fu r

pgflastimage

Organisatorisches Mathematik C++ und Vector-Klasse OpenGL

Kurze Einfuhrung in C++

Beispiel: Auto.cpp

#include "Auto.h"

Auto::Auto() {

leistung = 0;

vMax = 0.f;

}

Auto::Auto(int l, float v) {

leistung = l;

vMax = v;

}

void Auto:: calcVMax () {

vMax = (float )(1.5f * leistung );

}

Diana, Dominik und Gerrit Arbeitsgruppe Computergrafik

Ubungsstunde 2 zu Computergrafik 1

Page 70: Diana, Dominik und Gerrit - userpages.uni-koblenz.decg/ws1213/cg1/uebung/folien/Uebung_1.pdf · Fr., 22.02.2013, 8 bis 12 Uhr Dieser Termin ist aufgrund des Planungsaufwandes fu r

pgflastimage

Organisatorisches Mathematik C++ und Vector-Klasse OpenGL

Die Klasse Vector3D

Allgemeines

Reprasentation eines Vektors

Die Werte des Vektors werden in einem Array gespeichert mitder Lange 3.

Die Klasse enthalt uberladene Operatoren (z. B. +=) undnormale Methoden, die Vektoroperationen ermoglichen.

protected:

float mElement [3];

Diana, Dominik und Gerrit Arbeitsgruppe Computergrafik

Ubungsstunde 2 zu Computergrafik 1

Page 71: Diana, Dominik und Gerrit - userpages.uni-koblenz.decg/ws1213/cg1/uebung/folien/Uebung_1.pdf · Fr., 22.02.2013, 8 bis 12 Uhr Dieser Termin ist aufgrund des Planungsaufwandes fu r

pgflastimage

Organisatorisches Mathematik C++ und Vector-Klasse OpenGL

Die Klasse Vector3D

Allgemeines

Reprasentation eines Vektors

Die Werte des Vektors werden in einem Array gespeichert mitder Lange 3.

Die Klasse enthalt uberladene Operatoren (z. B. +=) undnormale Methoden, die Vektoroperationen ermoglichen.

protected:

float mElement [3];

Diana, Dominik und Gerrit Arbeitsgruppe Computergrafik

Ubungsstunde 2 zu Computergrafik 1

Page 72: Diana, Dominik und Gerrit - userpages.uni-koblenz.decg/ws1213/cg1/uebung/folien/Uebung_1.pdf · Fr., 22.02.2013, 8 bis 12 Uhr Dieser Termin ist aufgrund des Planungsaufwandes fu r

pgflastimage

Organisatorisches Mathematik C++ und Vector-Klasse OpenGL

Die Klasse Vector3D

length und normalize in Vector

Ziel: Zwei Methoden zur Berechnung der Lange und zurNormalisierung eines Vektors implementieren.

Erste Uberlegungen

normalize-Methode benotigt length-Methode

Also zuerst length implementieren, dann normalize

Uberlegungen zur length-Methode

Die Wurzel aus dem Skalarprodukt des Vektors mit sich selbstmuß berechnet und zuruckgegeben werden.

Uberlegungen zur normalize-Methode

Der Skalierungsfaktor muß berechnet und die Koordinaten desVektors mit diesem Faktor multipliziert werden.

Diana, Dominik und Gerrit Arbeitsgruppe Computergrafik

Ubungsstunde 2 zu Computergrafik 1

Page 73: Diana, Dominik und Gerrit - userpages.uni-koblenz.decg/ws1213/cg1/uebung/folien/Uebung_1.pdf · Fr., 22.02.2013, 8 bis 12 Uhr Dieser Termin ist aufgrund des Planungsaufwandes fu r

pgflastimage

Organisatorisches Mathematik C++ und Vector-Klasse OpenGL

Die Klasse Vector3D

length und normalize in Vector

Ziel: Zwei Methoden zur Berechnung der Lange und zurNormalisierung eines Vektors implementieren.

Erste Uberlegungen

normalize-Methode benotigt length-Methode

Also zuerst length implementieren, dann normalize

Uberlegungen zur length-Methode

Die Wurzel aus dem Skalarprodukt des Vektors mit sich selbstmuß berechnet und zuruckgegeben werden.

Uberlegungen zur normalize-Methode

Der Skalierungsfaktor muß berechnet und die Koordinaten desVektors mit diesem Faktor multipliziert werden.

Diana, Dominik und Gerrit Arbeitsgruppe Computergrafik

Ubungsstunde 2 zu Computergrafik 1

Page 74: Diana, Dominik und Gerrit - userpages.uni-koblenz.decg/ws1213/cg1/uebung/folien/Uebung_1.pdf · Fr., 22.02.2013, 8 bis 12 Uhr Dieser Termin ist aufgrund des Planungsaufwandes fu r

pgflastimage

Organisatorisches Mathematik C++ und Vector-Klasse OpenGL

Die Klasse Vector3D

length und normalize in Vector

Ziel: Zwei Methoden zur Berechnung der Lange und zurNormalisierung eines Vektors implementieren.

Erste Uberlegungen

normalize-Methode benotigt length-Methode

Also zuerst length implementieren, dann normalize

Uberlegungen zur length-Methode

Die Wurzel aus dem Skalarprodukt des Vektors mit sich selbstmuß berechnet und zuruckgegeben werden.

Uberlegungen zur normalize-Methode

Der Skalierungsfaktor muß berechnet und die Koordinaten desVektors mit diesem Faktor multipliziert werden.

Diana, Dominik und Gerrit Arbeitsgruppe Computergrafik

Ubungsstunde 2 zu Computergrafik 1

Page 75: Diana, Dominik und Gerrit - userpages.uni-koblenz.decg/ws1213/cg1/uebung/folien/Uebung_1.pdf · Fr., 22.02.2013, 8 bis 12 Uhr Dieser Termin ist aufgrund des Planungsaufwandes fu r

pgflastimage

Organisatorisches Mathematik C++ und Vector-Klasse OpenGL

Die Klasse Vector3D

length und normalize in Vector

Ziel: Zwei Methoden zur Berechnung der Lange und zurNormalisierung eines Vektors implementieren.

Erste Uberlegungen

normalize-Methode benotigt length-Methode

Also zuerst length implementieren, dann normalize

Uberlegungen zur length-Methode

Die Wurzel aus dem Skalarprodukt des Vektors mit sich selbstmuß berechnet und zuruckgegeben werden.

Uberlegungen zur normalize-Methode

Der Skalierungsfaktor muß berechnet und die Koordinaten desVektors mit diesem Faktor multipliziert werden.

Diana, Dominik und Gerrit Arbeitsgruppe Computergrafik

Ubungsstunde 2 zu Computergrafik 1

Page 76: Diana, Dominik und Gerrit - userpages.uni-koblenz.decg/ws1213/cg1/uebung/folien/Uebung_1.pdf · Fr., 22.02.2013, 8 bis 12 Uhr Dieser Termin ist aufgrund des Planungsaufwandes fu r

pgflastimage

Organisatorisches Mathematik C++ und Vector-Klasse OpenGL

Die Klasse Vector3D

Implementierung...

Diana, Dominik und Gerrit Arbeitsgruppe Computergrafik

Ubungsstunde 2 zu Computergrafik 1

Page 77: Diana, Dominik und Gerrit - userpages.uni-koblenz.decg/ws1213/cg1/uebung/folien/Uebung_1.pdf · Fr., 22.02.2013, 8 bis 12 Uhr Dieser Termin ist aufgrund des Planungsaufwandes fu r

pgflastimage

Organisatorisches Mathematik C++ und Vector-Klasse OpenGL

Einfuhrung

Allgemeines

GLUT & OpenGL

Wir benutzen als Fenstermanager und spater furEingabebehandlung GLUT.

GLUT baut auf OpenGL auf und bietet einige Funktionen, dieden Umgangmit OpenGL komfortabler machen.

Also:

#include <GL/glut.h>

Diana, Dominik und Gerrit Arbeitsgruppe Computergrafik

Ubungsstunde 2 zu Computergrafik 1

Page 78: Diana, Dominik und Gerrit - userpages.uni-koblenz.decg/ws1213/cg1/uebung/folien/Uebung_1.pdf · Fr., 22.02.2013, 8 bis 12 Uhr Dieser Termin ist aufgrund des Planungsaufwandes fu r

pgflastimage

Organisatorisches Mathematik C++ und Vector-Klasse OpenGL

Einfuhrung

Allgemeines

GLUT & OpenGL

Wir benutzen als Fenstermanager und spater furEingabebehandlung GLUT.

GLUT baut auf OpenGL auf und bietet einige Funktionen, dieden Umgangmit OpenGL komfortabler machen.

Also:

#include <GL/glut.h>

Diana, Dominik und Gerrit Arbeitsgruppe Computergrafik

Ubungsstunde 2 zu Computergrafik 1

Page 79: Diana, Dominik und Gerrit - userpages.uni-koblenz.decg/ws1213/cg1/uebung/folien/Uebung_1.pdf · Fr., 22.02.2013, 8 bis 12 Uhr Dieser Termin ist aufgrund des Planungsaufwandes fu r

pgflastimage

Organisatorisches Mathematik C++ und Vector-Klasse OpenGL

Einfuhrung

Allgemeines

GLUT & OpenGL

Wir benutzen als Fenstermanager und spater furEingabebehandlung GLUT.

GLUT baut auf OpenGL auf und bietet einige Funktionen, dieden Umgangmit OpenGL komfortabler machen.

Also:

#include <GL/glut.h>

Diana, Dominik und Gerrit Arbeitsgruppe Computergrafik

Ubungsstunde 2 zu Computergrafik 1

Page 80: Diana, Dominik und Gerrit - userpages.uni-koblenz.decg/ws1213/cg1/uebung/folien/Uebung_1.pdf · Fr., 22.02.2013, 8 bis 12 Uhr Dieser Termin ist aufgrund des Planungsaufwandes fu r

pgflastimage

Organisatorisches Mathematik C++ und Vector-Klasse OpenGL

Einfuhrung

Allgemeines

Aufbau eines Programms mit GLUT

void display(void) {

//Alles, was gezeichnet werden soll

}

void init(void) {

//Initialisierung, z. B.

//Hintergrundfarbe und

//Projektionsmodell

}

int main(int argc , char** argv) {

//Aufrufe der einzelnen Methoden

}

Diana, Dominik und Gerrit Arbeitsgruppe Computergrafik

Ubungsstunde 2 zu Computergrafik 1

Page 81: Diana, Dominik und Gerrit - userpages.uni-koblenz.decg/ws1213/cg1/uebung/folien/Uebung_1.pdf · Fr., 22.02.2013, 8 bis 12 Uhr Dieser Termin ist aufgrund des Planungsaufwandes fu r

pgflastimage

Organisatorisches Mathematik C++ und Vector-Klasse OpenGL

Einfuhrung

main-Methode

int main(int argc , char** argv) {

glutInit (&argc , argv);

glutInitDisplayMode (GLUT_SINGLE | GLUT_RGB );

glutInitWindowSize (500, 500);

glutInitWindowPosition (100, 100);

glutCreateWindow ("circle");

init ();

glutDisplayFunc(display );

glutMainLoop ();

return 0;

}

Diana, Dominik und Gerrit Arbeitsgruppe Computergrafik

Ubungsstunde 2 zu Computergrafik 1

Page 82: Diana, Dominik und Gerrit - userpages.uni-koblenz.decg/ws1213/cg1/uebung/folien/Uebung_1.pdf · Fr., 22.02.2013, 8 bis 12 Uhr Dieser Termin ist aufgrund des Planungsaufwandes fu r

pgflastimage

Organisatorisches Mathematik C++ und Vector-Klasse OpenGL

Einen Kreis malen

Eine einfache OpenGL-Aufgabe

Aufgabe

Male mit OpenGL einen Kreis. Berechne dazu mit Hilfe einerSchleife x- und y-Position eines jeden Punktes auf dem Kreis undzeichne diese Punkte.

Parameterdarstellung eines Einheitskreises

x- und y-Positionen der Punkte auf dem Kreis werden einenParameter φ ausgedruckt, der die Werte 0 ≤ φ < 2 ∗ πannimmt.

x = cosφ

y = sinφ

Wenn man 0 ≤ φ < 2 ∗ π in diskreten Schritten per Schleifeablauft, kann man das sehr gut programmieren.

Diana, Dominik und Gerrit Arbeitsgruppe Computergrafik

Ubungsstunde 2 zu Computergrafik 1

Page 83: Diana, Dominik und Gerrit - userpages.uni-koblenz.decg/ws1213/cg1/uebung/folien/Uebung_1.pdf · Fr., 22.02.2013, 8 bis 12 Uhr Dieser Termin ist aufgrund des Planungsaufwandes fu r

pgflastimage

Organisatorisches Mathematik C++ und Vector-Klasse OpenGL

Einen Kreis malen

Eine einfache OpenGL-Aufgabe

Aufgabe

Male mit OpenGL einen Kreis. Berechne dazu mit Hilfe einerSchleife x- und y-Position eines jeden Punktes auf dem Kreis undzeichne diese Punkte.

Parameterdarstellung eines Einheitskreises

x- und y-Positionen der Punkte auf dem Kreis werden einenParameter φ ausgedruckt, der die Werte 0 ≤ φ < 2 ∗ πannimmt.

x = cosφ

y = sinφ

Wenn man 0 ≤ φ < 2 ∗ π in diskreten Schritten per Schleifeablauft, kann man das sehr gut programmieren.

Diana, Dominik und Gerrit Arbeitsgruppe Computergrafik

Ubungsstunde 2 zu Computergrafik 1

Page 84: Diana, Dominik und Gerrit - userpages.uni-koblenz.decg/ws1213/cg1/uebung/folien/Uebung_1.pdf · Fr., 22.02.2013, 8 bis 12 Uhr Dieser Termin ist aufgrund des Planungsaufwandes fu r

pgflastimage

Organisatorisches Mathematik C++ und Vector-Klasse OpenGL

Einen Kreis malen

Eine einfache OpenGL-Aufgabe

Aufgabe

Male mit OpenGL einen Kreis. Berechne dazu mit Hilfe einerSchleife x- und y-Position eines jeden Punktes auf dem Kreis undzeichne diese Punkte.

Parameterdarstellung eines Einheitskreises

x- und y-Positionen der Punkte auf dem Kreis werden einenParameter φ ausgedruckt, der die Werte 0 ≤ φ < 2 ∗ πannimmt.

x = cosφ

y = sinφ

Wenn man 0 ≤ φ < 2 ∗ π in diskreten Schritten per Schleifeablauft, kann man das sehr gut programmieren.

Diana, Dominik und Gerrit Arbeitsgruppe Computergrafik

Ubungsstunde 2 zu Computergrafik 1

Page 85: Diana, Dominik und Gerrit - userpages.uni-koblenz.decg/ws1213/cg1/uebung/folien/Uebung_1.pdf · Fr., 22.02.2013, 8 bis 12 Uhr Dieser Termin ist aufgrund des Planungsaufwandes fu r

pgflastimage

Organisatorisches Mathematik C++ und Vector-Klasse OpenGL

Einen Kreis malen

Eine einfache OpenGL-Aufgabe

Aufgabe

Male mit OpenGL einen Kreis. Berechne dazu mit Hilfe einerSchleife x- und y-Position eines jeden Punktes auf dem Kreis undzeichne diese Punkte.

Parameterdarstellung eines Einheitskreises

x- und y-Positionen der Punkte auf dem Kreis werden einenParameter φ ausgedruckt, der die Werte 0 ≤ φ < 2 ∗ πannimmt.

x = cosφ

y = sinφ

Wenn man 0 ≤ φ < 2 ∗ π in diskreten Schritten per Schleifeablauft, kann man das sehr gut programmieren.

Diana, Dominik und Gerrit Arbeitsgruppe Computergrafik

Ubungsstunde 2 zu Computergrafik 1