SlideShare ist ein Scribd-Unternehmen logo
FIGURE 4.39
The ve non-degenerate real quadrics. Top left: ellipsoid. Top right: hyperboloid of two
sheets (one facing up and one facing down). Bottom left: elliptic paraboloid. Bottom middle:
hyperboloid of one sheet. Bottom right: hyperbolic paraboloid.
Conversely, an equation of the form
Ü
¾
· Ý
¾
· Þ
¾
· ¾ Ü · ¾ Ý · ¾ Þ · ¼ (4.18.7)
defines a sphere if ¾ · ¾ · ¾ ; the center is ´      µ and the radius isÔ ¾ · ¾ · ¾   .
1. Four points not in the same plane determine a unique sphere. If the points
have coordinates ´Ü½ ݽ Þ½µ, ´Ü¾ ݾ Þ¾µ, ´Ü¿ Ý¿ Þ¿µ, and ´Ü Ü Þ µ, the
© 2003 by CRC Press LLC
Studiengang: Informatik, Modul BZG1310 Objektorientiere Geometrie
Autor: Roland Bruggmann, brugr9@bfh.ch
Dozent: Marx Stampfli, marx.stampfli@bfh.ch
Datum: 15. Februar 2015
Berner Fachhochschule | Haute ´ecole sp´ecialis´ee bernoise | Bern University of Applied Sciences
Quadriken im Raum
und ihre Schnittbilder an ebenen Fl¨achen
Geometrische Algebra in der Computergrafik
Semesterarbeit
Versionen
Version Datum Status Bemerkungen
0.1 18. Oktober 2014 Entwurf Themenwahl, Arbeitstitel, Quellen
0.2 11. November 2014 Entwurf Zeitplan, Einleitung
0.3 24. November 2014 Entwurf Grundlagen, Konzept
0.4 15. Dezember 2014 Review Grundlagen, Konzept, Umsetzung
1.0 12. Januar 2015 Schlussfassung Umsetzung, Produkt, Schlussfolgerungen, Zusammenfassung
1.1 15. Februar 2015 Aktualisierte Ausgabe Umsetzung
Management Summary
Um Quadriken im Raum und ihre Schnittbilder an ebenen Fl¨achen verstehen zu lernen, ist ein computergest¨utztes
Lernwerkzeug eine willkommene Hilfe. Sowohl Quadriken als auch ihre Schnittbilder werden mit Methoden der
Geometrischen Algebra formuliert und mittels Computergrafik auf den Bildschirm gebracht. Die Programmierung
der Software erfolgt in C/C++, die Komponenten f¨ur die Visualisierung werden mit Bibliotheken rund um die Open
Graphic Library OpenGL implementiert.
Ausgehend von geometrischen Normalformen visualisiert das erarbeitete Produkt m¨ogliche Auspr¨agungen von Qua-
driken. Mit Zoom und Rotation k¨onnen diese erkundet werden. Die r¨aumliche Wahrnehmung wird durch verschiede-
ne Projektionen und einer animierten Bildwiedergabe massgebend unterst¨utzt. Der 3D-Effekt mittels Stereoskopie
bietet dem Benutzer ein positives Lernerlebnis.
Die Geometrische Algebra erm¨oglicht mit ihren Methoden eine elegante Umsetzung diverser Transformationen.
Eine Zentrale Rolle kommt dabei der Formulierung mit Matrizen und Matrizenmultiplikationen im projektiven
Raum zu.
Quadriken im Raum und ihre Schnittbilder an ebenen Fl¨achen, Version 1.1, 15. Februar 2015 i
Inhaltsverzeichnis
Management Summary i
1. Einleitung 1
2. Grundlagen 2
2.1. Quadriken und Kegelschnitte . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2
2.2. Geometrische Transformation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5
2.3. Kollineation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7
3. Konzept 8
3.1. Vision . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8
3.2. Anwendungsf¨alle . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8
3.3. Erg¨anzende Anforderungen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9
3.4. Dom¨anenmodell . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9
4. Umsetzung 10
4.1. Grafische Benutzerschnittstelle . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10
4.2. Implementation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13
5. Schlussfolgerungen und Ausblick 15
Literaturverzeichnis 16
Bildnachweis 16
Abbildungsverzeichnis 17
Tabellenverzeichnis 17
Quellcodeverzeichnis 17
A. Produkt 18
A.1. Datentr¨ager . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18
A.2. Anaglyphenbrille . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19
Quadriken im Raum und ihre Schnittbilder an ebenen Fl¨achen, Version 1.1, 15. Februar 2015 ii
1. Einleitung
Die Euklidische Geometrie – den Meisten von uns ist sie bekannt aus dem Mathematikunterricht. Wir lernten mit
Bleistift, Lineal und Zirkel geometrische Elemente und Figuren zeichnen: Punkte und Linien, Winkel und Dreiecke,
Kreise u.v.m. Diese wurden ¨ublicherweise auf einem Blatt Papier konstruiert, auf einer ebenen Fl¨ache also. Was
passiert jedoch, wenn man das Blatt vom Zeichentisch nimmt und zu einem Kegel formt? Die ebene Fl¨ache wird zur
gekr¨ummten Fl¨ache im Raum. Soll nun eine solche gekr¨ummte Fl¨ache auf einem Computerbildschirm dargestellt
werden, stellen sich einige Fragen zur Berechnung der Bildpunkte. In der Computergrafik wird vorallem mit linearer
Algebra gearbeitet, mit Vektoren und Matrizen. Um geometrisch definierte Strukturen als algebraisch verarbeitbare
Einheiten zu formulieren, kommen hier Methoden der Geometrischen Algebra zum Einsatz. Unser Kegel geh¨ort zu
jenen geometrischen Strukturen, welche mit quadratischen Gleichungen beschreibar sind: Zu den Quadriken. Werden
Quadriken im Raum mit einer ebenen Fl¨ache geschnitten, entstehen als Schnittbilder sogenannte Kegelschnitte. In
Falle unseres Kegels sind dies vorallem Ellipsen. Diese Kegelschnitte k¨onnen ebenfalls mit quadratischen Gleichungen
beschrieben werden – sie sind ihrerseits Quadriken.
Um Quadriken und Kegelschnitte zu visualisieren, ist ein computergest¨utztes Werkzeug eine willkommene Hilfe.
Im Rahmen dieser Semesterarbeit soll deshalb eine didaktische Software implementiert werden. Eine gekr¨ummte
Fl¨ache soll unter Anwendung der Geometrischen Algebra formuliert und mittels Computergrafik dargestellt werden.
Die Quadrik soll zudem mit einer ebenen Fl¨ache geschnitten, das Schnittbild akzentuiert dargestellt werden. Die
Figur soll mittels Benutzerinteraktion erkundet werden k¨onnen.
Der vorliegende Bericht ist in f¨unf Kapitel geteilt: Auf diese Einleitung folgt eine Erl¨auterung der Grundlagen
(Kapitel 2). Im Anschluss wird das Konzept vorgestellt (Kapitel 3) und die Umsetzung pr¨asentiert (Kapitel 4). In
den Schlussfolgerungen werden die wichtigsten Ergebnisse rekapituliert und hinsichtlich der Ausgangslage reflektiert
(Kapitel 5). Im Anhang zu finden ist das erarbeitete Produkt (Anhang A: Datentr¨ager und Anaglyphenbrille).
Quadriken im Raum und ihre Schnittbilder an ebenen Fl¨achen, Version 1.1, 15. Februar 2015 1
2. Grundlagen
Eine Recherche zu den Schlagworten ’Quadriken’ (engl. quadrics) resp. ’Kegelschnitte’ (engl. conics) und ’OpenGL’
resultierte in folgenden relevanten Publikationen:
ˆ Zwillinger, Daniel: Standard Mathematical Tables and Formulae, Boca Raton, FL: Chapman & Hall/CRC,
2003.
ˆ Shreiner, Dave et al.: OpenGL programming guide: The official guide to learning OpenGL, Version 4.3, Upper
Saddle River, N.J.: Addison-Wesley, 2013.
2.1. Quadriken und Kegelschnitte
Geometrische Strukturen im dreidimensionalen Raum R3
, welche mit quadratischen Gleichungen beschreibar sind,
werden Quadriken genannt. Schneidet man Quadriken an einer ebenen Fl¨ache, entstehen als Schnittbilder sogenann-
te Kegelschnitte. Diese k¨onnen ebenfalls mit quadratischen Gleichungen beschrieben werden – sie sind ihrerseits
Quadriken.
2.1.1. Quadriken im Raum
Eine Quadrik im Raum kann gem¨ass Zwillinger [Zwi03, S. 578] definiert werden als gemischt-quadratische Gleichung
der allgemeinen Form
ax2
+ by2
+ cz2
+ 2f yz + 2gzx + 2hxy + 2px + 2qy + 2rz + d = 0 (2.1)
Die drei Variablen x, y, z der Gleichung zweiten Grades entsprechen dabei den kartesischen Koordinaten eines
Punktes auf der Quadrik, die Koeffizienten a, b, c (f¨ur die quadratischen Glieder), f , g, h (f¨ur die gemischt linearen
Glieder), p, q, r (f¨ur die einfach linearen Glieder) und d (als konstantes Glied) sind reelle Zahlen. Diese Koordina-
tengleichung determiniert insgesamt 17 m¨ogliche Auspr¨agungen von imagin¨ar- und reellwertigen Quadriken (siehe
Tabelle Zwillinger [Zwi03, S. 578]).
Um Quadriken in der Computergrafik zu implementieren, wird eine Matrizenschreibweise bevorzugt. Die Glei-
chung 2.1 kann als Matrizenmultiplikation geschrieben werden. Die Punkte der Quadrik werden dabei durch ihre
Ortsvektoren v (vertex) mit homogenen Koordinaten (w = 1) repr¨asentiert. Mit einer symmetrischen 4x4-Matrize
Q (quadric), welche die Koeffizienten enth¨alt und damit die Quadrik charakterisiert, gestaltet sich die Gleichung
wie folgt:
vT
· Q · v = 0 (2.2)
mit
v =




x
y
z
1



 und Q =




a h g p
h b f q
g f c r
p q r d




In den Grundlagen dieses Berichtes werden ausschliesslich reellwertige Quadriken behandelt, im Besonderen die
f¨unf nicht ausgearteten reellen Quadriken im Raum: Das Ellipsoid, das ein- und das zweischalige Hyperboloid sowie
das elliptische und das hyperbolische Paraboloid. Basierend auf der Koordinatengleichung 2.1 wird jeweils eine
Koeffizientenmatrize Q gem¨ass Gleichung 2.2 erl¨autert.
Quadriken im Raum und ihre Schnittbilder an ebenen Fl¨achen, Version 1.1, 15. Februar 2015 2
Ellipsoid
Ein Ellipsoid (siehe Abbildung 2.1) ist definiert als ax2
+ by2
+ cz2
− d = 0. Diese Gleichung legt mit den
Koeffizienten a, b, c > 0, f , g, h = 0, p, q, r = 0 und d < 0 die Matrize f¨ur das Ellipsoid fest:
QEllipsoid =




+a 0 0 0
0 +b 0 0
0 0 +c 0
0 0 0 −d




Spezialf¨alle des Ellipsoids sind das Spheroid mit a = b oder a = c oder b = c und die Kugel mit a = b = c.
FIGURE 4.39
The ve non-degenerate real quadrics. Top left: ellipsoid. Top right: hyperboloid of two
sheets (one facing up and one facing down). Bottom left: elliptic paraboloid. Bottom middle:
hyperboloid of one sheet. Bottom right: hyperbolic paraboloid.
Conversely, an equation of the form
Ü
¾
· Ý
¾
· Þ
¾
· ¾ Ü · ¾ Ý · ¾ Þ · ¼ (4.18.7)
defines a sphere if ¾ · ¾ · ¾ ; the center is ´      µ and the radius isÔ ¾ · ¾ · ¾   .
1. Four points not in the same plane determine a unique sphere. If the points
have coordinates ´Ü½ ݽ Þ½µ, ´Ü¾ ݾ Þ¾µ, ´Ü¿ Ý¿ Þ¿µ, and ´Ü Ü Þ µ, the
© 2003 by CRC Press LLC
Abbildung 2.1.: Ellipsoid.
Hyperboloide
Es gibt zwei Typen von Hyperboloiden: Das ein- und das zweischalige Hyperboloid (siehe Abbildung 2.2). Die
Gleichung ax2
− by2
+ cz2
± d = 0 legt mit den Koeffizienten a > 0, b < 0, c > 0, f , g, h = 0, p, q, r = 0 und
d = 0 die Matrize
QHyperboloid =




+a 0 0 0
0 −b 0 0
0 0 +c 0
0 0 0 ±d




fest (einschalig: d < 0, zweischalig: d > 0). Ein Grenzfall ist der Kegel mit d = 0 (sog. ausgeartet).
FIGURE 4.39
The ve non-degenerate real quadrics. Top left: ellipsoid. Top right: hyperboloid of two
sheets (one facing up and one facing down). Bottom left: elliptic paraboloid. Bottom middle:
hyperboloid of one sheet. Bottom right: hyperbolic paraboloid.
Conversely, an equation of the form
Ü
¾
· Ý
¾
· Þ
¾
· ¾ Ü · ¾ Ý · ¾ Þ · ¼ (4.18.7)
defines a sphere if ¾ · ¾ · ¾ ; the center is ´      µ and the radius isÔ ¾ · ¾ · ¾   .
1. Four points not in the same plane determine a unique sphere. If the points
have coordinates ´Ü½ ݽ Þ½µ, ´Ü¾ ݾ Þ¾µ, ´Ü¿ Ý¿ Þ¿µ, and ´Ü Ü Þ µ, the
© 2003 by CRC Press LLC
FIGURE 4.39
The ve non-degenerate real quadrics. Top left: ellipsoid. Top right: hyperboloid of two
sheets (one facing up and one facing down). Bottom left: elliptic paraboloid. Bottom middle:
hyperboloid of one sheet. Bottom right: hyperbolic paraboloid.
Conversely, an equation of the form
Ü
¾
· Ý
¾
· Þ
¾
· ¾ Ü · ¾ Ý · ¾ Þ · ¼ (4.18.7)
defines a sphere if ¾ · ¾ · ¾ ; the center is ´      µ and the radius isÔ ¾ · ¾ · ¾   .
1. Four points not in the same plane determine a unique sphere. If the points
have coordinates ´Ü½ ݽ Þ½µ, ´Ü¾ ݾ Þ¾µ, ´Ü¿ Ý¿ Þ¿µ, and ´Ü Ü Þ µ, the
© 2003 by CRC Press LLC
Abbildung 2.2.: Hyperboloide, einschalig und zweischalig.
Paraboloide
Man unterscheidet zwei Typen von Paraboloiden: Das elliptische und das hyperbolische Paraboloid (siehe Abbil-
dung 2.3). Die Gleichung ax2
± by2
− 2rz = 0 legt mit den Koeffizienten a > 0, b = 0, c = 0, f , g, h = 0,
p, q = 0, r = 0 und d (beliebig) die Matrize
QP araboloid =




+a 0 0 0
0 ±b 0 0
0 0 0 ±r
0 0 ±r d




fest (elliptisch: b > 0, hyperbolisch: b < 0).
Quadriken im Raum und ihre Schnittbilder an ebenen Fl¨achen, Version 1.1, 15. Februar 2015 3
Conversely, an equation of the form
Ü
¾
· Ý
¾
· Þ
¾
· ¾ Ü · ¾ Ý · ¾ Þ · ¼ (4.18.7)
defines a sphere if ¾ · ¾ · ¾ ; the center is ´      µ and the radius isÔ ¾ · ¾ · ¾   .
1. Four points not in the same plane determine a unique sphere. If the points
have coordinates ´Ü½ ݽ Þ½µ, ´Ü¾ ݾ Þ¾µ, ´Ü¿ Ý¿ Þ¿µ, and ´Ü Ü Þ µ, the
© 2003 by CRC Press LLC
Conversely, an equation of the form
Ü
¾
· Ý
¾
· Þ
¾
· ¾ Ü · ¾ Ý · ¾ Þ · ¼ (4.18.7)
defines a sphere if ¾ · ¾ · ¾ ; the center is ´      µ and the radius isÔ ¾ · ¾ · ¾   .
1. Four points not in the same plane determine a unique sphere. If the points
have coordinates ´Ü½ ݽ Þ½µ, ´Ü¾ ݾ Þ¾µ, ´Ü¿ Ý¿ Þ¿µ, and ´Ü Ü Þ µ, the
© 2003 by CRC Press LLC
Abbildung 2.3.: Paraboloide, elliptisch und hyperbolisch.
2.1.2. Kegelschnitte
Die Schnittbilder der f¨unf nicht ausgearteten reellen Quadriken im Raum an ebenen Fl¨achen sind die sogenannten
Kegelschnitte Ellipse, Hyperbel und Parabel. Diese sind gem¨ass Zwillinger [Zwi03, S. 542] definiert in R2
als
gemischt-quadratische Gleichung der allgemeinen Form
ax2
+ by2
+ 2hxy + 2px + 2qy + d = 0 (2.3)
Auch hier kann die Gleichung 2.3 als Matrizenmultiplikation geschrieben werden mit einem Vektor v (vertex) f¨ur
die kartesischen Koordinaten unter Verwendung von homogenen Koordinaten (w = 1) und einer symmetrischen
3x3-Matrize C (conic), welche die Koeffizienten enth¨alt und damit den Kegelschnitt charakterisiert. F¨ur die fol-
genden Kegelschnitte werden sowohl eine Translation als auch eine projektive Transformation ausgeschaltet, indem
grunds¨atzlich die Parameter p und q auf Null gesetzt werden.
vT
· C · v = 0 (2.4)
mit
v =


x
y
1

 und C =


a h p
h b q
p q d


Ellipse
Die Gleichung ax2
+ by2
− d = 0 legt mit den Koeffizienten a, b > 0, h = 0 und d < 0 die Matrize f¨ur die Ellipse
fest. Ein Spezialfall der Ellipse ist der Kreis mit a = b.
CEllipse =


a 0 0
0 b 0
0 0 −d


Hyperbel
Die Gleichung ax2
− by2
± d = 0 legt mit den Koeffizienten a > 0, b < 0, h = 0 und d = 0 die Matrize f¨ur die
Hyperbel fest.
CHyperbel =


a 0 0
0 −b 0
0 0 ±d


Parabel
Die Gleichung ±x2
+ d = 0 legt mit den Koeffizienten a = 0 und b = 0 die Matrize f¨ur die Parabel fest – das
konstante Glied d kann beliebige Werte in R annehmen.
CP arabel =


±a 0 0
0 0 0
0 0 d


Quadriken im Raum und ihre Schnittbilder an ebenen Fl¨achen, Version 1.1, 15. Februar 2015 4
2.2. Geometrische Transformation
In der Computergrafik werden lineare Abbildungen, die z.B. durch Drehen oder Zoom entstehen sollen, unter
Anwendung von geometrischen Transformationen realisiert. Diese erfolgen im projektiven Raum mit homogenen
Koordinaten. Die Grundlagen dazu sind der Publikation Shreiner [Shr+13, S. 205 – 258] (Kapitel 5) und [Shr+13,
S. 829 – 834] (Appendix E) entnommen. Eine Abbildung wird demnach mit einer ihr assoziierten Matrize M
formuliert. Die geometrische Transformation eines Punktes als Ortsvektor v mit homogenen Koordinaten (w = 1)
in ein Abbild v gestaltet sich als Multiplikation mit der Transformationsmatrize M:
v = M · v (2.5)
mit
v =




x
y
z
1



 und M =
L t
pT
1
, wobei L =


l11 l12 l13
l21 l22 l23
l31 l32 l33

 , t =


tx
ty
tz

 und p =


px
py
pz

 .
Dabei repr¨asentiert die 3x3-Matrize L eine lineare Abbildung, der Spaltenvektor t eine Translation und der Zei-
lenvektor pT
eine projektive Transformation. In der Folge werden die assoziierten Matrizen sowohl von affinen
Transformationen als auch von verschiedenen Projektionen erl¨autert.
2.2.1. Affine Transformationen
Als affine Transformationen werden hier die Skalierung, die Scherung und die Rotationen gezeigt. Die Umkehrung
der Transformationen werden durch ihre Inversen M−1
realisiert.
Eine Translation T um den Vektor t = (tx , ty , tz )T
erfolgt mit der Matrize
T(tx , ty , tz ) =




1 0 0 tx
0 1 0 ty
0 0 1 tz
0 0 0 1



 .
Eine Streckung resp. Skalierung K mit kx in x-Richtung, ky in y-Richtung und kz in z-Richtung gestaltet sich wie
folgt:
K(kx , ky , kz ) =




kx 0 0 0
0 ky 0 0
0 0 kz 0
0 0 0 1



 .
Eine Scherung S realisiert die Transformationsmatrize
S(sxy , sxz , syx , syz , szx , szy ) =




1 sxy sxz 0
syx 1 syz 0
szx szy 1 0
0 0 0 1



 .
Die Rotationsmatrizen Raxis f¨ur Rotationen mit Winkel θ um die x-, y- oder z-Achse eines kartesischen Koordina-
tensystems sind gegebenen mit
Rx (θ) =




1 0 0 0
0 cos θ − sin θ 0
0 sin θ cos θ 0
0 0 0 1



 , Ry (θ) =




cos θ 0 sin θ 0
0 1 0 0
− sin θ 0 cos θ 0
0 0 0 1



 , Rz (θ) =




cos θ − sin θ 0 0
sin θ cos θ 0 0
0 0 1 0
0 0 0 1



 .
Quadriken im Raum und ihre Schnittbilder an ebenen Fl¨achen, Version 1.1, 15. Februar 2015 5
2.2.2. Projektionen
Es werden hier eine orthographische, eine perspektivische und eine stereoskopische Projektion gezeigt. Diese werden
mit den Variablen l, r, t, b, n, f ∈ R (l: left, r: right, t: top, b: bottom, n: near, f: far) als Grenzen eines in der
Computergrafik ¨ublichen Sichtvolumen (engl. view frustum) formuliert, wobei l = r, t = b und n = f sowie
n, f = 0 sei.
Orthographische Projektion
Eine orthographische Projektion O ist eine Parallelprojektion und definiert als Komposition von Translation und
Skalierung:
O(l, r, t, b, n, f ) =




2
r−l 0 0 −r+l
r−l
0 2
t−b 0 −t+b
t−b
0 0 − 2
f −n −f +n
f −n
0 0 0 1



 .
Perspektivische Projektion
Die hier formulierte Projektion ist eine 3-Punkt-Zentralprojektion und als solche eine nicht-affine Transformation.
Eine perspektivische Projektion P ist definiert als Komposition aus Skalierung, Scherung und projektiver Transfor-
mation:
P(l, r, t, b, n, f ) =




2n
r−l 0 r+l
r−l 0
0 2n
t−b
t+b
t−b 0
0 0 −f +n
f −n − 2f n
f −n
0 0 −1 0



 .
Stereoskopische Projektion
Eine Stereobildwiedergabe durch spektrales Multiplexing1
mit Anaglyphen2
kann z.B. mit den perspektivischen
Projektionen Plef t und Pright zweier asymmetrischer Sichtvolumen in dasselbe Bild realisiert werden:
Plef t =




2n
r−l+2d 0 r+l
r−l+2d 0
0 2n
t−b
t+b
t−b 0
0 0 −f +n
f −n − 2f n
f −n
0 0 −1 0



 und Pright =




2n
r−l−2d 0 r+l
r−l−2d 0
0 2n
t−b
t+b
t−b 0
0 0 −f +n
f −n − 2f n
f −n
0 0 −1 0




mit
d =
1
2
× eyeSep ×
n
f ocalDist
Dabei steht die Variable eyeSep (eye separation) f¨ur den Abstand der Augen des menschlichen Binokular, die
Variable f ocalDist (focal distance) ist die Distanz des Binokulars zur sog. ’near clipping plane’ n. F¨ur diese
Gr¨ossen werden oft idealisierte Annahmen getroffen.
1Multiplexverfahren: Gleichzeitige ¨Ubertragung von mehreren Nachrichten ¨uber denselben Sender. Duden Online, Zugriff: 9.01.2015.
2Anaglyphe, die; griechisch-lateinisch,
”
reliefartig ziseliert, erhaben“: in Komplement¨arfarben etwas seitlich verschoben ¨ubereinander
gedrucktes und projiziertes Bild, das beim Betrachten durch eine Farbfilterbrille mit gleichen Komplement¨arfarben r¨aumlich erscheint.
Duden Online, Zugriff: 8.12.2014.
Quadriken im Raum und ihre Schnittbilder an ebenen Fl¨achen, Version 1.1, 15. Februar 2015 6
2.3. Kollineation
Quadriken k¨onnen durch Kollineation in ¨aquivalente Quadriken abgebildet werden. Dies soll hier durch eine projektive
Transformation erfolgen. Danach wird das Vorgehen zur Bestimmung der Koeffizienten des Abbildes erl¨autert.
2.3.1. Projektive Transformation
Als Ausgangslage dient hier eine gegebene Quadrik in einer der drei Normalformen von Mittelpunktsquadrik, ke-
geliger oder parabolischer Typ (siehe Tabelle 2.1). Innerhalb dieser Typen k¨onnen Quadirken durch eine projektive
Transformation bijektiv in ¨aquivalente Quadriken abgebildet werden.
Tabelle 2.1.: Typen, Normalformen und ¨aquivalente Quadriken.
Typ Normalform ¨Aquivalente Quadriken
Mittelpunktsquadrik Kugel Ellipsoid
Kegeliger Typ Zylinder Einschaliges und zweischaliges Hyperboloid
Parabolischer Typ Scheibe Elliptisches und hyperbolisches Paraboloid
Durch eine linksseitige Multiplikation aller Punkte v einer Quadrik im projektiven Raum (Ortsvektoren mit homo-
genen Koordinaten, w = 1) mit einer projektiven Transformationsmatrize H (homography) werden die Punkte v
einer ¨aquivalenten Quadrik berechnet. Um die 15 Freiheitsgrade der 4x4-Matrize H auf deren zw¨olf zu reduzieren,
werden die Elemente h14, h24 und h34 auf Null gesetzt, womit eine Translation ausgeschlossen ist:
v = H · v (2.6)
mit
v =




x
y
z
1



 und H =




h11 h12 h13 0
h21 h22 h23 0
h31 h32 h33 0
h41 h42 h43 h44




2.3.2. Koordinatengleichung des Abbildes
Ist die Transformation H regul¨ar (detH = 0), kann die Koeffizientenmatrize des Abbildes Q durch eine weitere
Matirzenmultiplikation berechnet werden. Dabei wird die Koeffizientenmatrize Q linksseitig mit der Transponierten
und rechtsseitig mit der Inversen der Kollineationsmatrize H multipliziert:
Q = HT
· Q · H−1
(2.7)
Die so erhaltene Koeffizientenmatrize des Abbildes Q kann nun in die Gleichung 2.2 eingesetzt werden:
vT
· Q · v = 0
Durch Ausmultiplizieren erhalten wir schliesslich die Koordinatengleichung des Abbildes gem¨ass Gleichung 2.1:
a x2
+ b y2
+ c z2
+ 2f yz + 2g zx + 2h xy + 2p x + 2q y + 2r z + d = 0
Quadriken im Raum und ihre Schnittbilder an ebenen Fl¨achen, Version 1.1, 15. Februar 2015 7
3. Konzept
Das Konzept wird als objektorientierte Analyse und Design formuliert. In der Vision werden die Problemstellung
und sonstige Anforderungen erfasst. Die darauf folgenden Anwendungsf¨alle sind in der Kurzform gehalten. In den
erg¨anzenden Anforderungen ist n¨aheres zum Setup aufgelistet. Die Dom¨anen werden grafisch modelliert.
3.1. Vision
Problemstellung
ˆ Es soll eine didaktische Applikation erstellt werden,
mit welcher die f¨unf nicht degenerierten reellen
Quadriken im Raum basierend auf ihren Normal-
formen als geometrische Objekte visualisiert wer-
den k¨onnen.
ˆ Die Schnittbilder an einer ebenen Fl¨ache – die Ke-
gelschnitte Ellipse, Hyperbel und Parabel – sollen
akzentuiert dargestellt werden.
ˆ Die Kollineation soll parametrisierbar sein.
Sonstige Anforderungen
ˆ Die Visualisierung der Quadrik soll mit Zoomen
und Drehen erkundet werden k¨onnen.
ˆ Um die optische Lesbarkeit zu erh¨ohen, soll zwi-
schen orthographischer oder perspektivischer Dar-
stellung umgeschaltet werden k¨onnen.
ˆ Zudem soll eine stereoskopische Darstellung ge-
w¨ahlt werden k¨onnen.
3.2. Anwendungsf¨alle
Quadriken-Normalform w¨ahlen: ¨Uber ein Men¨u im
GUI k¨onnen die Normalformen der drei Typen von
Quadriken im Raum ausw¨ahlt werden. Eine ge-
w¨ahlte Quadrik und ihr Schnittbild an einer ebenen
Fl¨ache wird im GUI visualisiert. Alle Komponenten
der Transformationsmatrize H werden auf Null ge-
stellt.
Nicht degenerierte reelle Quadrik w¨ahlen: ¨Uber ein
Men¨u im GUI k¨onnen die f¨unf nicht degenerier-
ten reellen Quadriken im Raum ausw¨ahlt werden.
Eine gew¨ahlte Quadrik und ihr Schnittbild an ei-
ner ebenen Fl¨ache werden im GUI visualisiert. Die
Quadrik basiert auf einer der Normalformen, die
Komponenten der Transformationsmatrize H wer-
den vom System entsprechend parametrisiert.
Kollineation editieren: Die projektive Transformati-
onsmatrize H kann im GUI mit Drehfeldern f¨ur die
einzelnen Parameter editiert werden. Mit dem ¨An-
dern der Matrize wird eine Kollineation der Qua-
drik und des Kegelschnittes vorgenommen. Ansch-
liessend wird die Visualisierung der Quadrik und
des Kegelschnittes neu gezeichnet.
Visualisierung zoomen: Per Tastatur, Maus und ¨uber
einen Schieberegler im GUI kann die Visualisierung
skaliert werden.
Visualisierung rotieren: Per Tastatur, Maus und ¨uber
Druckkn¨opfe im GUI kann die Visualisierung ge-
dreht werden.
Visualisierung animieren: Per Tastatur kann ein ani-
miertes Drehen der Visualisierung ein- resp. aus-
geschaltet werden.
Projektion der Visualisierung w¨ahlen: ¨Uber ein Op-
tionsfeld im GUI kann zwischen orthographischer
oder perspektivischer Projektion der Visualisierung
umgeschaltet werden. Zudem kann ¨uber ein Kon-
trollk¨astchen die Stereobildwiedergabe ein- resp.
ausgeschaltet werden.
Quadriken im Raum und ihre Schnittbilder an ebenen Fl¨achen, Version 1.1, 15. Februar 2015 8
3.3. Erg¨anzende Anforderungen
ˆ Die Applikation wird in C/C++ implementiert.
ˆ Die Visualisierung erfolgt mit dem C-API von
OpenGL1
sowie mit der OpenGL Utility Library
GLU2
, der zum OpenGL Utility Toolkit GLUT
kompatiblen Bibliothek freeglut3
und der OpenGL
Extension Wrangler Library GLEW.4
F¨ur die Aus-
programmierung linearer Algebra (Matrizen, Vek-
toren, Matrizen-Operationen etc.) wird die Biblio-
thek OpenGL Mathematics GLM5
verwendet.
ˆ Die Software wird als C++-Projekt mit Qt-
Creator, die grafische Benutzeroberfl¨ache mit Qt-
Designer objektorientiert programmiert.6
ˆ Das Debuggen der Shader erfolgt mit der Nsight
Eclipse Edition aus dem CUDA-Toolkit von nVi-
dia7
.
ˆ Die Versionsverwaltung der Arbeiten erfolgt mit
der Software git.8
ˆ Der Quellcode erh¨alt Kommentare, mit Doxygen9
wird eine Dokumentation als html-Version erstellt.
ˆ Die Applikation wird f¨ur GNU/Linux Debian (64-
bit) kompiliert und gelinkt.
ˆ Der Quellcode, dessen Dokumentation und die
ausf¨uhrbare Applikation werden auf einem Daten-
tr¨ager abgegeben.
3.4. Dom¨anenmodell
Auswahl Quadrik
Liste mit Normalformen
Liste reeller Quadriken
Quadrik
NF: v
Koeffizienten
NF: Q
1
1
auswählen
Benutzer-
schnittstelle
1 1
erzeugen
Kollineation
H
Abb. Quadrik
v'=Hv
(Objekt-Koodinaten)
Normalengleichung
ax^2+...+d=0
Abb. Koeffizienten
Q'=H^TQH^-1
1 1
editieren
1
1
auswählen
1
1
parametrisieren
1
1
abbilden
1
1
visualisieren
1 1
parametrisieren
1
1
visualisieren
Auswahl Projektion
Orthografische P.
Perspektivische P.
Stereoskopische P.
Auswahl Affine Transf.
Zoom
Rotation
Animierte Transf.
1
1
auswählen
1
1
abbilden
1
1
transformieren
1
1projzieren
Visualisierung Quadrik
(Welt-Koordinaten)
Abbildung 3.1.: Dom¨anenmodell-Diagramm.
1OpenGL, Online: http://www.opengl.org/, Zugriff: 18.11.2014.
2GLUT and OpenGL Utility Libraries, Online: https://www.opengl.org/resources/libraries/, Zugriff: 18.11.2014.
3freeglut, Online: http://freeglut.sourceforge.net/, Zugriff: 13.11.2014.
4GLEW, Online: http://glew.sourceforge.net/, Zugriff: 13.11.2014.
5OpenGL Mathematics GLM, Online: http://glm.g-truc.net/, Zugriff: 28.11.2014.
6Qt Project, Online: https://qt-project.org/, Zugriff: 11.12.2014.
7nVidia: CUDA Toolkit v6.5, Online: https://developer.nvidia.com/cuda-toolkit, Zugriff: 10.11.2014.
8git – the stupid content tracker, Online: http://git-scm.com/, Zugriff: 13.11.2014.
9Doxygen documentation system, Online: http://www.doxygen.org/, Zugriff: 30.12.2014.
Quadriken im Raum und ihre Schnittbilder an ebenen Fl¨achen, Version 1.1, 15. Februar 2015 9
4. Umsetzung
Es folgt eine Beschreibung der grafischen Benutzerschnittstelle, formuliert nach benutzerorientiertem Ansatz sowie
eine produktorientierte Erl¨auterung der Implementation.
4.1. Grafische Benutzerschnittstelle
Die grafische Benutzerschnittstelle der Applikation (siehe Abbildung 4.1) hat zwei Fensterbereiche. Der linke Fens-
terbereich zeigt die Visualisierung der Quadrik inklusive x-, y- und z-Achsen und einem Grundraster als Orientie-
rungshilfen. Im rechten Fensterbereich befinden sich drei Gruppenboxen mit Elementen f¨ur die Benutzerinteraktion:
’Kollineation’, ’Navigation’ und ’Projektion’. In der Men¨uleiste sind diverse Eintr¨age verf¨ugbar. Des Weiteren sind
die Maustasten mit Funktionalit¨at belegt.
Abbildung 4.1.: Grafische Benutzerschnittstelle
Quadriken im Raum und ihre Schnittbilder an ebenen Fl¨achen, Version 1.1, 15. Februar 2015 10
4.1.1. Kollineation
Die Gruppenbox ’Kollineation’ (siehe Abbildung 4.2) enth¨alt einen Block mit Drehfeldern. Er repr¨asentiert die
4x4-Matrize der projektiven Transformation H. Drei Drehfelder in der vierten Spalte sind deaktiviert, womit eine
Translation ausgeschlossen wird (vgl. Abschnitt 2.3.1). Mit dem ¨Andern eines Wertes in einem editierbaren Drehfeld
werden die Quadrik und der Kegelschnitt neu berechnet und wiederum gezeichnet. Zudem wird die Koordinaten-
gleichung ¨uber der Visualisierung aktualisiert.
Abbildung 4.2.: Gruppenbox ’Kollineation’
4.1.2. Navigation
Die Gruppenbox ’Navigation’ (siehe Abbildung 4.3) enth¨alt einen Schieberegler mit Zoom-Stufen von 1 bis 9
(Tastaturbelegung: Page-up resp. Page-down). Mit den Pfeile-Druckkn¨opfen kann die Visualisierung gedreht werden:
Nach links und rechts um die rote X-Achse sowie auf und ab um die gr¨une Y-Achse (Tastaturbelegung: Pfeiltasten).
Mit der Leertaste kann eine animierte Rotation um die blaue Z-Achse ein- bzw. ausgeschaltet werden.
Abbildung 4.3.: Gruppenbox ’Navigation’
4.1.3. Projektion
In der Gruppenbox ’Projektion’ (siehe Abbildung 4.4) kann von einer orthografischen in eine perspektivische Projekti-
on gewechselt werden. Mit dem Setzen des H¨ackchens wird die Stereobildwiedergabe aktviert (siehe Abbildung 4.5).
Das Stereobild kann durch eine Anaglyphenbrille mit roter Folie f¨ur das linke und gr¨uner Folie f¨ur das rechte Auge
betrachtet werden. Eine solche 3D-Brille ist im Anhang A.2 zu finden.
Abbildung 4.4.: Gruppenbox ’Projektion’
Quadriken im Raum und ihre Schnittbilder an ebenen Fl¨achen, Version 1.1, 15. Februar 2015 11
Abbildung 4.5.: Orthografische Projektion und
perspektivische Projektion mit Stereobildwiedergabe
4.1.4. Men¨u
¨Uber den Men¨ueintrag ’Quadrik > Normalform’ kann eine der drei Normalformen Mittelpunksquadrik, kegeliger oder
parabolischer Typ ausgew¨ahlt werden (siehe Abbildung 4.6). Im Men¨ueintrag ’Quadrik > Parametrisiert’ k¨onnen
die f¨unf nicht degenerierten reellen Quadriken im Raum aufgerufen werden (siehe Abbildung 4.7). Dabei wird eine
der Normalformen gesetzt und durch eine entsprechend parametrisierte Kollineation transformiert.
Abbildung 4.6.: Men¨ueintrag ’Quadrik > Normalform’
Abbildung 4.7.: Men¨ueintrag ’Quadrik > Parametrisiert’
4.1.5. Maus
Befindet sich der Mauszeiger im Bereich der Visualisierung, kann die Quadrik auch direkt mit der Maus erkundet
werden. Zudem ist dann ein Kontexmen¨u erreichbar (siehe Abbildung 4.8). Die drei Maustasten sind wie folgt
belegt:
ˆ Linke Maustaste: Freies Drehen (Rotation).
ˆ Mittlere Maustaste (gedr¨uckt): Zoom hinein (vor) resp. heraus (zur¨uck).
ˆ Rechte Maustaste: Kontextmen¨u.
Abbildung 4.8.: Kontexmen¨u der rechten Maustaste
Quadriken im Raum und ihre Schnittbilder an ebenen Fl¨achen, Version 1.1, 15. Februar 2015 12
4.2. Implementation
Da sowohl OpenGL als auch GLU und GLUT an sich C-APIs der Zustandsmaschine ’Grafikkarte’ sind, wurden
Methoden mit Callbacks wie z.B. f¨ur Maus und Tastatur in C ausprogrammiert. Ansonsten wurden die Elemente
in C++ und objektorientert umgesetzt, so auch die grafische Benutzerschnittstelle.
4.2.1. Quadrik und Kegelschnitt
Beim Aufstarten der Applikation werden mit Methoden aus GLU Quadriken als 3D-Modelle instanziert. Dabei wird
zuerst mit gluNewQuadric ein Pointer auf ein Quadriken-Objekt erstellt, danach wird eine Liste von Objekten f¨ur
jede der Quadrik-Typen erstellt (vgl. Tabelle 2.1 in den Grundlagen):
ˆ Mittelpunksquadrik: Normalform Kugel mit gluSphere
ˆ Kegeliger Typ: Normalform Zylinder mit gluCylinder
ˆ Parabolischer Typ: Normalform Scheibe mit gluDisk
Diese sind aus sogenannten Primitven1
als tesselierte2
Drahtk¨orper (Mesh3
aus Punkten und Linien) modelliert.
F¨ur den Kegelschnitt wird die Quadrik an der yz-Ebene geschnitten. Da das Schnittbild eine gewisse Tiefe haben
soll, wird dazu ebenfalls die Quadrik verwendet: Sie wird ein zweites mal in anderer Farbe gezeichnet. Von dieser
ist jedoch nur eine Bildtiefe von wenigen Einheiten sichtbar und erscheint deshalb als Kegelschnitt.
Die Quadrik und der Kegelschnitt werden schliesslich in ein QGLWidget aus der Qt-Bibliothek gezeichnet.
4.2.2. Kollineation
Mit dem Editieren der Kollineationsmatrize H erf¨ahrt die Quadrik Punkt f¨ur Punkt eine projektive Transformation
in ihr Abbild: Das Mesh der Quadrik wird mit einer Matrizenmultiplikation Vertex f¨ur Vertex transformiert. Dies
erfolgt mit einem Vertex-Shader auf der Grafikkarte (siehe Listing 4.1).
Listing 4.1: Vertex-Shader mit projektiver Transformation
1 #version 420 core
3 layout (location = 0) in vec4 vecPosition;
4 layout (location = 1) in vec4 vecColor;
6 uniform mat4 matModelView;
7 uniform mat4 matCollineation ; // projective transformation
8 uniform mat4 matProjection ;
9 uniform float floatOffset;
11 out vec4 color;
13 void main ()
14 {
15 color = vecColor;
16 vec4 position = vecPosition + vec4(vec3 (0.0f, 0.0f, gl_InstanceID * floatOffset ), 1.0f);
17 gl_Position = matProjection * matCollineation * matModelView * position;
18 }
1Primitive: Grundelemente in der Computergrafik, z.B. Punkt, Linie, Dreieck; siehe OpenGL Wiki, https://www.opengl.org/wiki/
Primitive. Zugriff: 17.12.2014
2Tesselierung: Unterschiedliche Techniken zur Zerlegung von Polygonen, hier z.B. die Triangulation; siehe DGL Wiki, http://wiki.
delphigl.com/index.php/Tesselierung. Zugriff: 17.12.2014
3Mesh (engl. f¨ur Netz): Die Menge an Ecken (vertices) und Kanten (edges), welche ein Objekt formen; siehe DGL Wiki, http:
//wiki.delphigl.com/index.php/Mesh. Zugriff: 17.12.2014
Quadriken im Raum und ihre Schnittbilder an ebenen Fl¨achen, Version 1.1, 15. Februar 2015 13
4.2.3. Navigation
Die Transformationsmethoden f¨ur den Zoom-Schieberegler und die Rotations-Druckkn¨opfe der Gruppenbox ’Navi-
gation’ wurden in C ausprogrammiert. Die animierte Rotation ist mit der GLUT-Timer-Funktion glutTimerFunc,
die Rotation an sich mit der OpenGL-Funktion glRotatef implementiert. F¨ur die Benutzerinteraktion per Maus
direkt im QGLWidget wurde das Zoom-pan-rotate mouse manipulation module for GLUT4
eingebunden.
4.2.4. Projektion
Die orthografische und die perspektivische Projektion sind mit den GLM-Matrix-Transformationen ortho und
perspective implementiert.
Das Graustufen-Stereobild wird durch eine zweifache Projektion in dasselbe Bild realisiert. Als Anaglyphe werden die
Komplement¨arfarben Rot und Gr¨un verwendet. Dazu wird jeweils vor dem Zeichnen der Quadrik mit OpenGL eine
entsprechende glColorMask gesetzt. Die Trennung der Kan¨ale zur Perzeption wird durch Filterung des Stereobildes
mit einer Anaglyphenbrille erreicht. Diese hat eine rote Folie f¨ur das linke und eine gr¨une Folie f¨ur das rechte Auge.
Eine solche 3D-Brille ist im Anhang A.2 zu finden.
4Nigel Stewart: GLT ZPR – Zoom-pan-rotate mouse manipulation module for GLUT. Online: http://www.nigels.com/glt/gltzpr/,
Zugriff: 1.12.2014
Quadriken im Raum und ihre Schnittbilder an ebenen Fl¨achen, Version 1.1, 15. Februar 2015 14
5. Schlussfolgerungen und Ausblick
Ausgehend von geometrischen Normalformen visualisiert das erarbeitete Produkt m¨ogliche Auspr¨agungen von Qua-
driken und ihre Schnittbilder an ebenen Fl¨achen. Mit Zoom und Rotation kann eine Quadrik im Raum erkundet
werden. Die grafische Benutzerschnittstelle erm¨oglicht dabei eine intuitive Interaktion per Maus und Tastatur. Die
r¨aumliche Wahrnehmung wird durch den m¨oglichen Wechsel von orthographischer zu perspektivischer Projekti-
on und einer animierten Bildwiedergabe massgebend unterst¨utzt. Der 3D-Effekt mittels Stereoskopie kann dem
Benutzer ein positives Lernerlebnis bieten.
Mit diesem Projekt konnte ich die wichtigsten Grundlagen der Geometrischen Algebra f¨ur die Computergrafik auf
anschauliche Weise umsetzen. Dabei kamen auch Lerninhalte aus den Modulen Software Engineering and Design
(objektorientierte Analyse und Design) und der Vertiefungsrichtung Computer Perception and Virtual Reality CPVR
(Programmierung in C/C++, Computergrafik mit OpenGL, Stereoskopie) zur Anwendung. Des Weiteren lernte ich
mit der Entwicklungsumgebung Qt-Creator resp. Qt-Designer die Klassenbibliothek von Qt kennen.
Spannend w¨are eine Implementation mittels f¨unfdimensionaler Konformer Geometrischer Algebra (engl. Conformal
Geometric Algebra CGA). Die Definition der Quadriken und deren Transformation w¨urde um einiges vereinfacht.
Da die Methoden der CGA bisher auf Grafikkarten nicht Einzug gehalten haben, w¨are f¨ur die Visualisierung zum
jetzigen Zeitpunkt jedoch kaum ein Performancegewinn zu erwarten.
Die Geometrische Algebra erm¨oglicht mit ihren Methoden eine elegante Umsetzung diverser Transformationen,
im Speziellen zur Implementation in der Computergrafik. Eine Zentrale Rolle kommt dabei der Formulierung von
geometrischen Objekten und Transformationen als Matrizen im projektiven Raum zu sowie der Durchf¨uhrung der
Transformationen als Matrizenmultiplikation.
Quadriken im Raum und ihre Schnittbilder an ebenen Fl¨achen, Version 1.1, 15. Februar 2015 15
Literaturverzeichnis
[Shr+13] Dave Shreiner u. a. OpenGL Programming Guide: The Official Guide to Learning OpenGL, Version 4.3.
8. Aufl. Upper Saddle River, N.J.: Addison-Wesley, 2013.
[Zwi03] Daniel Zwillinger. Standard Mathematical Tables and Formulae. 31. Aufl. Boca Raton, FL: Chapman
& Hall/CRC, 2003.
Bildnachweis
Titelseite
Figure 4.39:
The five non-degenerated real quadrics. Top left: ellipsoid. Top right: hyperboloid of two sheets (one facing up
and one facing down). Bottom left: elliptic paraboloid. Bottom middle: hyperboloid of one sheet. Bottom right:
hyperbolic paraboloid.
(Die f¨unf nicht-degenerierten reellen Quadriken. Oben links: Ellipsoid. Oben rechts: zweischaliges Hyperboloid (eine
Schale nach oben und eine nach unten gerichtet). Unten links: elliptisches Paraboloid. Unten Mitte: einschalges
Hyperboloid. Unten rechts: hyperolisches Paraboloid.)
In: Standard Mathematical Tables and Formulae, Zwillinger [Zwi03, S. 580].
Abbildungen
Die Abbildungen 2.1, 2.2, und 2.3 stammen aus Zwillinger [Zwi03, S. 580].
Quadriken im Raum und ihre Schnittbilder an ebenen Fl¨achen, Version 1.1, 15. Februar 2015 16
Abbildungsverzeichnis
2.1. Ellipsoid. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3
2.2. Hyperboloide, einschalig und zweischalig. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3
2.3. Paraboloide, elliptisch und hyperbolisch. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4
3.1. Dom¨anenmodell-Diagramm. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9
4.1. Grafische Benutzerschnittstelle . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10
4.2. Gruppenbox ’Kollineation’ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11
4.3. Gruppenbox ’Navigation’ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11
4.4. Gruppenbox ’Projektion’ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11
4.5. Orthografische Projektion und perspektivische Projektion mit Stereobildwiedergabe . . . . . . . . . 12
4.6. Men¨ueintrag ’Quadrik > Normalform’ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12
4.7. Men¨ueintrag ’Quadrik > Parametrisiert’ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12
4.8. Kontexmen¨u der rechten Maustaste . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12
Tabellenverzeichnis
2.1. Typen, Normalformen und ¨aquivalente Quadriken. . . . . . . . . . . . . . . . . . . . . . . . . . . . 7
Quellcodeverzeichnis
4.1. Vertex-Shader mit projektiver Transformation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13
Quadriken im Raum und ihre Schnittbilder an ebenen Fl¨achen, Version 1.1, 15. Februar 2015 17
A. Produkt
A.1. Datentr¨ager
Auf dem Datentr¨ager vorzufinden sind sowohl der Quellcode des Qt-Projektes als auch die Applikation als ausf¨uhr-
bare Bin¨ardatei. Das Produkt wurde mit dem GNU project C/C++ Compiler gcc als 64-Bit-Version f¨ur GNU/Linux
Debian kompiliert und gelinkt. Um die Installation auf einem Debian-basierten System zu erleichtern, ist die Appli-
kation zus¨atzlich im *.deb-Bin¨arpaketformat1
archiviert worden.
1Linux-Handbuch ’Dateiformate und Konventionen’, deb – Debian-Bin¨arpaketformat (man 5 deb).
Quadriken im Raum und ihre Schnittbilder an ebenen Fl¨achen, Version 1.1, 15. Februar 2015 18
A.2. Anaglyphenbrille
Quadriken im Raum und ihre Schnittbilder an ebenen Fl¨achen, Version 1.1, 15. Februar 2015 19
Selbst¨andigkeitserkl¨arung
Ich best¨atige, dass ich die vorliegende Arbeit selbstst¨andig und ohne Benutzung anderer als der im Literaturver-
zeichnis angegebenen Quellen und Hilfsmittel angefertigt habe. S¨amtliche Textstellen, die nicht von mir stammen,
sind als Zitate gekennzeichnet und mit dem genauen Hinweis auf ihre Herkunft versehen.
Ort, Datum: Biel/Bienne, 15. Februar 2015
Vorname, Name: Roland Bruggmann
Unterschrift: ......................................
Quadriken im Raum und ihre Schnittbilder an ebenen Fl¨achen, Version 1.1, 15. Februar 2015 20

Weitere ähnliche Inhalte

Ähnlich wie Quadriken im Raum

OSG Volume Rendering
OSG Volume RenderingOSG Volume Rendering
OSG Volume Rendering
Roland Bruggmann
 
Komplexe Zahlen
Komplexe ZahlenKomplexe Zahlen
Komplexe Zahlen
Heinrich Hartmann
 
Mathprof - Analysis 2
Mathprof - Analysis 2Mathprof - Analysis 2
Mathprof - Analysis 2
ReduSoft Ltd
 
Numerische Methoden: Approximation und Integration
Numerische Methoden: Approximation und IntegrationNumerische Methoden: Approximation und Integration
Numerische Methoden: Approximation und Integration
Roland Bruggmann
 
Visualisierung von Algorithmen und Datenstrukturen
Visualisierung von Algorithmen und DatenstrukturenVisualisierung von Algorithmen und Datenstrukturen
Visualisierung von Algorithmen und Datenstrukturen
Roland Bruggmann
 
Beleg der Vorlesung "Simulation Dynamischer Systeme"
Beleg der Vorlesung "Simulation Dynamischer Systeme"Beleg der Vorlesung "Simulation Dynamischer Systeme"
Beleg der Vorlesung "Simulation Dynamischer Systeme"
Karla Carballo Valderrábano
 

Ähnlich wie Quadriken im Raum (9)

OSG Volume Rendering
OSG Volume RenderingOSG Volume Rendering
OSG Volume Rendering
 
Komplexe Zahlen
Komplexe ZahlenKomplexe Zahlen
Komplexe Zahlen
 
Diploma_Thomas_Heinemann
Diploma_Thomas_HeinemannDiploma_Thomas_Heinemann
Diploma_Thomas_Heinemann
 
Mathprof - Analysis 2
Mathprof - Analysis 2Mathprof - Analysis 2
Mathprof - Analysis 2
 
Numerische Methoden: Approximation und Integration
Numerische Methoden: Approximation und IntegrationNumerische Methoden: Approximation und Integration
Numerische Methoden: Approximation und Integration
 
J3dboolop
J3dboolopJ3dboolop
J3dboolop
 
mabio
mabiomabio
mabio
 
Visualisierung von Algorithmen und Datenstrukturen
Visualisierung von Algorithmen und DatenstrukturenVisualisierung von Algorithmen und Datenstrukturen
Visualisierung von Algorithmen und Datenstrukturen
 
Beleg der Vorlesung "Simulation Dynamischer Systeme"
Beleg der Vorlesung "Simulation Dynamischer Systeme"Beleg der Vorlesung "Simulation Dynamischer Systeme"
Beleg der Vorlesung "Simulation Dynamischer Systeme"
 

Mehr von Roland Bruggmann

Fingerprint Analysis – Preprocessing and Feature Extraction
Fingerprint Analysis – Preprocessing and Feature ExtractionFingerprint Analysis – Preprocessing and Feature Extraction
Fingerprint Analysis – Preprocessing and Feature Extraction
Roland Bruggmann
 
Unreal Engine IoT Project: Heartbeat
Unreal Engine IoT Project: HeartbeatUnreal Engine IoT Project: Heartbeat
Unreal Engine IoT Project: Heartbeat
Roland Bruggmann
 
3D Content for Dream-like VR
3D Content for Dream-like VR3D Content for Dream-like VR
3D Content for Dream-like VR
Roland Bruggmann
 
OSG Volume Rendering - Presentation
OSG Volume Rendering - PresentationOSG Volume Rendering - Presentation
OSG Volume Rendering - Presentation
Roland Bruggmann
 
Swiss National Supercomputing Centre CSCS
Swiss National Supercomputing Centre CSCSSwiss National Supercomputing Centre CSCS
Swiss National Supercomputing Centre CSCS
Roland Bruggmann
 
Sprechen als Handeln
Sprechen als HandelnSprechen als Handeln
Sprechen als Handeln
Roland Bruggmann
 
Multicore and GPU Programming
Multicore and GPU ProgrammingMulticore and GPU Programming
Multicore and GPU Programming
Roland Bruggmann
 
Unity® Volume Rendering - Abstract
Unity® Volume Rendering - AbstractUnity® Volume Rendering - Abstract
Unity® Volume Rendering - Abstract
Roland Bruggmann
 
Unity® Volume Rendering - Benutzerhandbuch
Unity® Volume Rendering - BenutzerhandbuchUnity® Volume Rendering - Benutzerhandbuch
Unity® Volume Rendering - Benutzerhandbuch
Roland Bruggmann
 
Serious Game "Virtual Surgery" - Game Design Document
Serious Game "Virtual Surgery" - Game Design DocumentSerious Game "Virtual Surgery" - Game Design Document
Serious Game "Virtual Surgery" - Game Design Document
Roland Bruggmann
 
Digitale Kamera und Modulationstransferfunktion
Digitale Kamera und ModulationstransferfunktionDigitale Kamera und Modulationstransferfunktion
Digitale Kamera und Modulationstransferfunktion
Roland Bruggmann
 
User-centered Design für Telemedizin-App
User-centered Design für Telemedizin-AppUser-centered Design für Telemedizin-App
User-centered Design für Telemedizin-App
Roland Bruggmann
 
Ondes stationnaires
Ondes stationnairesOndes stationnaires
Ondes stationnaires
Roland Bruggmann
 
Passwords Safe
Passwords SafePasswords Safe
Passwords Safe
Roland Bruggmann
 
Stehende Wellen
Stehende WellenStehende Wellen
Stehende Wellen
Roland Bruggmann
 
TOGAF Architecture Content Framework
TOGAF Architecture Content FrameworkTOGAF Architecture Content Framework
TOGAF Architecture Content Framework
Roland Bruggmann
 
Cultural Dimensions
Cultural DimensionsCultural Dimensions
Cultural Dimensions
Roland Bruggmann
 
Hinderniserkennung mit LiDAR
Hinderniserkennung mit LiDARHinderniserkennung mit LiDAR
Hinderniserkennung mit LiDAR
Roland Bruggmann
 
Quadriken im Raum
Quadriken im RaumQuadriken im Raum
Quadriken im Raum
Roland Bruggmann
 
TOGAF Architecture Content Framework
TOGAF Architecture Content FrameworkTOGAF Architecture Content Framework
TOGAF Architecture Content Framework
Roland Bruggmann
 

Mehr von Roland Bruggmann (20)

Fingerprint Analysis – Preprocessing and Feature Extraction
Fingerprint Analysis – Preprocessing and Feature ExtractionFingerprint Analysis – Preprocessing and Feature Extraction
Fingerprint Analysis – Preprocessing and Feature Extraction
 
Unreal Engine IoT Project: Heartbeat
Unreal Engine IoT Project: HeartbeatUnreal Engine IoT Project: Heartbeat
Unreal Engine IoT Project: Heartbeat
 
3D Content for Dream-like VR
3D Content for Dream-like VR3D Content for Dream-like VR
3D Content for Dream-like VR
 
OSG Volume Rendering - Presentation
OSG Volume Rendering - PresentationOSG Volume Rendering - Presentation
OSG Volume Rendering - Presentation
 
Swiss National Supercomputing Centre CSCS
Swiss National Supercomputing Centre CSCSSwiss National Supercomputing Centre CSCS
Swiss National Supercomputing Centre CSCS
 
Sprechen als Handeln
Sprechen als HandelnSprechen als Handeln
Sprechen als Handeln
 
Multicore and GPU Programming
Multicore and GPU ProgrammingMulticore and GPU Programming
Multicore and GPU Programming
 
Unity® Volume Rendering - Abstract
Unity® Volume Rendering - AbstractUnity® Volume Rendering - Abstract
Unity® Volume Rendering - Abstract
 
Unity® Volume Rendering - Benutzerhandbuch
Unity® Volume Rendering - BenutzerhandbuchUnity® Volume Rendering - Benutzerhandbuch
Unity® Volume Rendering - Benutzerhandbuch
 
Serious Game "Virtual Surgery" - Game Design Document
Serious Game "Virtual Surgery" - Game Design DocumentSerious Game "Virtual Surgery" - Game Design Document
Serious Game "Virtual Surgery" - Game Design Document
 
Digitale Kamera und Modulationstransferfunktion
Digitale Kamera und ModulationstransferfunktionDigitale Kamera und Modulationstransferfunktion
Digitale Kamera und Modulationstransferfunktion
 
User-centered Design für Telemedizin-App
User-centered Design für Telemedizin-AppUser-centered Design für Telemedizin-App
User-centered Design für Telemedizin-App
 
Ondes stationnaires
Ondes stationnairesOndes stationnaires
Ondes stationnaires
 
Passwords Safe
Passwords SafePasswords Safe
Passwords Safe
 
Stehende Wellen
Stehende WellenStehende Wellen
Stehende Wellen
 
TOGAF Architecture Content Framework
TOGAF Architecture Content FrameworkTOGAF Architecture Content Framework
TOGAF Architecture Content Framework
 
Cultural Dimensions
Cultural DimensionsCultural Dimensions
Cultural Dimensions
 
Hinderniserkennung mit LiDAR
Hinderniserkennung mit LiDARHinderniserkennung mit LiDAR
Hinderniserkennung mit LiDAR
 
Quadriken im Raum
Quadriken im RaumQuadriken im Raum
Quadriken im Raum
 
TOGAF Architecture Content Framework
TOGAF Architecture Content FrameworkTOGAF Architecture Content Framework
TOGAF Architecture Content Framework
 

Quadriken im Raum

  • 1. FIGURE 4.39 The ve non-degenerate real quadrics. Top left: ellipsoid. Top right: hyperboloid of two sheets (one facing up and one facing down). Bottom left: elliptic paraboloid. Bottom middle: hyperboloid of one sheet. Bottom right: hyperbolic paraboloid. Conversely, an equation of the form Ü ¾ · Ý ¾ · Þ ¾ · ¾ Ü · ¾ Ý · ¾ Þ · ¼ (4.18.7) defines a sphere if ¾ · ¾ · ¾ ; the center is ´      µ and the radius isÔ ¾ · ¾ · ¾   . 1. Four points not in the same plane determine a unique sphere. If the points have coordinates ´Ü½ ݽ Þ½µ, ´Ü¾ ݾ Þ¾µ, ´Ü¿ Ý¿ Þ¿µ, and ´Ü Ü Þ µ, the © 2003 by CRC Press LLC Studiengang: Informatik, Modul BZG1310 Objektorientiere Geometrie Autor: Roland Bruggmann, brugr9@bfh.ch Dozent: Marx Stampfli, marx.stampfli@bfh.ch Datum: 15. Februar 2015 Berner Fachhochschule | Haute ´ecole sp´ecialis´ee bernoise | Bern University of Applied Sciences Quadriken im Raum und ihre Schnittbilder an ebenen Fl¨achen Geometrische Algebra in der Computergrafik Semesterarbeit
  • 2. Versionen Version Datum Status Bemerkungen 0.1 18. Oktober 2014 Entwurf Themenwahl, Arbeitstitel, Quellen 0.2 11. November 2014 Entwurf Zeitplan, Einleitung 0.3 24. November 2014 Entwurf Grundlagen, Konzept 0.4 15. Dezember 2014 Review Grundlagen, Konzept, Umsetzung 1.0 12. Januar 2015 Schlussfassung Umsetzung, Produkt, Schlussfolgerungen, Zusammenfassung 1.1 15. Februar 2015 Aktualisierte Ausgabe Umsetzung Management Summary Um Quadriken im Raum und ihre Schnittbilder an ebenen Fl¨achen verstehen zu lernen, ist ein computergest¨utztes Lernwerkzeug eine willkommene Hilfe. Sowohl Quadriken als auch ihre Schnittbilder werden mit Methoden der Geometrischen Algebra formuliert und mittels Computergrafik auf den Bildschirm gebracht. Die Programmierung der Software erfolgt in C/C++, die Komponenten f¨ur die Visualisierung werden mit Bibliotheken rund um die Open Graphic Library OpenGL implementiert. Ausgehend von geometrischen Normalformen visualisiert das erarbeitete Produkt m¨ogliche Auspr¨agungen von Qua- driken. Mit Zoom und Rotation k¨onnen diese erkundet werden. Die r¨aumliche Wahrnehmung wird durch verschiede- ne Projektionen und einer animierten Bildwiedergabe massgebend unterst¨utzt. Der 3D-Effekt mittels Stereoskopie bietet dem Benutzer ein positives Lernerlebnis. Die Geometrische Algebra erm¨oglicht mit ihren Methoden eine elegante Umsetzung diverser Transformationen. Eine Zentrale Rolle kommt dabei der Formulierung mit Matrizen und Matrizenmultiplikationen im projektiven Raum zu. Quadriken im Raum und ihre Schnittbilder an ebenen Fl¨achen, Version 1.1, 15. Februar 2015 i
  • 3. Inhaltsverzeichnis Management Summary i 1. Einleitung 1 2. Grundlagen 2 2.1. Quadriken und Kegelschnitte . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2 2.2. Geometrische Transformation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5 2.3. Kollineation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7 3. Konzept 8 3.1. Vision . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8 3.2. Anwendungsf¨alle . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8 3.3. Erg¨anzende Anforderungen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9 3.4. Dom¨anenmodell . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9 4. Umsetzung 10 4.1. Grafische Benutzerschnittstelle . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10 4.2. Implementation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13 5. Schlussfolgerungen und Ausblick 15 Literaturverzeichnis 16 Bildnachweis 16 Abbildungsverzeichnis 17 Tabellenverzeichnis 17 Quellcodeverzeichnis 17 A. Produkt 18 A.1. Datentr¨ager . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18 A.2. Anaglyphenbrille . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19 Quadriken im Raum und ihre Schnittbilder an ebenen Fl¨achen, Version 1.1, 15. Februar 2015 ii
  • 4. 1. Einleitung Die Euklidische Geometrie – den Meisten von uns ist sie bekannt aus dem Mathematikunterricht. Wir lernten mit Bleistift, Lineal und Zirkel geometrische Elemente und Figuren zeichnen: Punkte und Linien, Winkel und Dreiecke, Kreise u.v.m. Diese wurden ¨ublicherweise auf einem Blatt Papier konstruiert, auf einer ebenen Fl¨ache also. Was passiert jedoch, wenn man das Blatt vom Zeichentisch nimmt und zu einem Kegel formt? Die ebene Fl¨ache wird zur gekr¨ummten Fl¨ache im Raum. Soll nun eine solche gekr¨ummte Fl¨ache auf einem Computerbildschirm dargestellt werden, stellen sich einige Fragen zur Berechnung der Bildpunkte. In der Computergrafik wird vorallem mit linearer Algebra gearbeitet, mit Vektoren und Matrizen. Um geometrisch definierte Strukturen als algebraisch verarbeitbare Einheiten zu formulieren, kommen hier Methoden der Geometrischen Algebra zum Einsatz. Unser Kegel geh¨ort zu jenen geometrischen Strukturen, welche mit quadratischen Gleichungen beschreibar sind: Zu den Quadriken. Werden Quadriken im Raum mit einer ebenen Fl¨ache geschnitten, entstehen als Schnittbilder sogenannte Kegelschnitte. In Falle unseres Kegels sind dies vorallem Ellipsen. Diese Kegelschnitte k¨onnen ebenfalls mit quadratischen Gleichungen beschrieben werden – sie sind ihrerseits Quadriken. Um Quadriken und Kegelschnitte zu visualisieren, ist ein computergest¨utztes Werkzeug eine willkommene Hilfe. Im Rahmen dieser Semesterarbeit soll deshalb eine didaktische Software implementiert werden. Eine gekr¨ummte Fl¨ache soll unter Anwendung der Geometrischen Algebra formuliert und mittels Computergrafik dargestellt werden. Die Quadrik soll zudem mit einer ebenen Fl¨ache geschnitten, das Schnittbild akzentuiert dargestellt werden. Die Figur soll mittels Benutzerinteraktion erkundet werden k¨onnen. Der vorliegende Bericht ist in f¨unf Kapitel geteilt: Auf diese Einleitung folgt eine Erl¨auterung der Grundlagen (Kapitel 2). Im Anschluss wird das Konzept vorgestellt (Kapitel 3) und die Umsetzung pr¨asentiert (Kapitel 4). In den Schlussfolgerungen werden die wichtigsten Ergebnisse rekapituliert und hinsichtlich der Ausgangslage reflektiert (Kapitel 5). Im Anhang zu finden ist das erarbeitete Produkt (Anhang A: Datentr¨ager und Anaglyphenbrille). Quadriken im Raum und ihre Schnittbilder an ebenen Fl¨achen, Version 1.1, 15. Februar 2015 1
  • 5. 2. Grundlagen Eine Recherche zu den Schlagworten ’Quadriken’ (engl. quadrics) resp. ’Kegelschnitte’ (engl. conics) und ’OpenGL’ resultierte in folgenden relevanten Publikationen: ˆ Zwillinger, Daniel: Standard Mathematical Tables and Formulae, Boca Raton, FL: Chapman & Hall/CRC, 2003. ˆ Shreiner, Dave et al.: OpenGL programming guide: The official guide to learning OpenGL, Version 4.3, Upper Saddle River, N.J.: Addison-Wesley, 2013. 2.1. Quadriken und Kegelschnitte Geometrische Strukturen im dreidimensionalen Raum R3 , welche mit quadratischen Gleichungen beschreibar sind, werden Quadriken genannt. Schneidet man Quadriken an einer ebenen Fl¨ache, entstehen als Schnittbilder sogenann- te Kegelschnitte. Diese k¨onnen ebenfalls mit quadratischen Gleichungen beschrieben werden – sie sind ihrerseits Quadriken. 2.1.1. Quadriken im Raum Eine Quadrik im Raum kann gem¨ass Zwillinger [Zwi03, S. 578] definiert werden als gemischt-quadratische Gleichung der allgemeinen Form ax2 + by2 + cz2 + 2f yz + 2gzx + 2hxy + 2px + 2qy + 2rz + d = 0 (2.1) Die drei Variablen x, y, z der Gleichung zweiten Grades entsprechen dabei den kartesischen Koordinaten eines Punktes auf der Quadrik, die Koeffizienten a, b, c (f¨ur die quadratischen Glieder), f , g, h (f¨ur die gemischt linearen Glieder), p, q, r (f¨ur die einfach linearen Glieder) und d (als konstantes Glied) sind reelle Zahlen. Diese Koordina- tengleichung determiniert insgesamt 17 m¨ogliche Auspr¨agungen von imagin¨ar- und reellwertigen Quadriken (siehe Tabelle Zwillinger [Zwi03, S. 578]). Um Quadriken in der Computergrafik zu implementieren, wird eine Matrizenschreibweise bevorzugt. Die Glei- chung 2.1 kann als Matrizenmultiplikation geschrieben werden. Die Punkte der Quadrik werden dabei durch ihre Ortsvektoren v (vertex) mit homogenen Koordinaten (w = 1) repr¨asentiert. Mit einer symmetrischen 4x4-Matrize Q (quadric), welche die Koeffizienten enth¨alt und damit die Quadrik charakterisiert, gestaltet sich die Gleichung wie folgt: vT · Q · v = 0 (2.2) mit v =     x y z 1     und Q =     a h g p h b f q g f c r p q r d     In den Grundlagen dieses Berichtes werden ausschliesslich reellwertige Quadriken behandelt, im Besonderen die f¨unf nicht ausgearteten reellen Quadriken im Raum: Das Ellipsoid, das ein- und das zweischalige Hyperboloid sowie das elliptische und das hyperbolische Paraboloid. Basierend auf der Koordinatengleichung 2.1 wird jeweils eine Koeffizientenmatrize Q gem¨ass Gleichung 2.2 erl¨autert. Quadriken im Raum und ihre Schnittbilder an ebenen Fl¨achen, Version 1.1, 15. Februar 2015 2
  • 6. Ellipsoid Ein Ellipsoid (siehe Abbildung 2.1) ist definiert als ax2 + by2 + cz2 − d = 0. Diese Gleichung legt mit den Koeffizienten a, b, c > 0, f , g, h = 0, p, q, r = 0 und d < 0 die Matrize f¨ur das Ellipsoid fest: QEllipsoid =     +a 0 0 0 0 +b 0 0 0 0 +c 0 0 0 0 −d     Spezialf¨alle des Ellipsoids sind das Spheroid mit a = b oder a = c oder b = c und die Kugel mit a = b = c. FIGURE 4.39 The ve non-degenerate real quadrics. Top left: ellipsoid. Top right: hyperboloid of two sheets (one facing up and one facing down). Bottom left: elliptic paraboloid. Bottom middle: hyperboloid of one sheet. Bottom right: hyperbolic paraboloid. Conversely, an equation of the form Ü ¾ · Ý ¾ · Þ ¾ · ¾ Ü · ¾ Ý · ¾ Þ · ¼ (4.18.7) defines a sphere if ¾ · ¾ · ¾ ; the center is ´      µ and the radius isÔ ¾ · ¾ · ¾   . 1. Four points not in the same plane determine a unique sphere. If the points have coordinates ´Ü½ ݽ Þ½µ, ´Ü¾ ݾ Þ¾µ, ´Ü¿ Ý¿ Þ¿µ, and ´Ü Ü Þ µ, the © 2003 by CRC Press LLC Abbildung 2.1.: Ellipsoid. Hyperboloide Es gibt zwei Typen von Hyperboloiden: Das ein- und das zweischalige Hyperboloid (siehe Abbildung 2.2). Die Gleichung ax2 − by2 + cz2 ± d = 0 legt mit den Koeffizienten a > 0, b < 0, c > 0, f , g, h = 0, p, q, r = 0 und d = 0 die Matrize QHyperboloid =     +a 0 0 0 0 −b 0 0 0 0 +c 0 0 0 0 ±d     fest (einschalig: d < 0, zweischalig: d > 0). Ein Grenzfall ist der Kegel mit d = 0 (sog. ausgeartet). FIGURE 4.39 The ve non-degenerate real quadrics. Top left: ellipsoid. Top right: hyperboloid of two sheets (one facing up and one facing down). Bottom left: elliptic paraboloid. Bottom middle: hyperboloid of one sheet. Bottom right: hyperbolic paraboloid. Conversely, an equation of the form Ü ¾ · Ý ¾ · Þ ¾ · ¾ Ü · ¾ Ý · ¾ Þ · ¼ (4.18.7) defines a sphere if ¾ · ¾ · ¾ ; the center is ´      µ and the radius isÔ ¾ · ¾ · ¾   . 1. Four points not in the same plane determine a unique sphere. If the points have coordinates ´Ü½ ݽ Þ½µ, ´Ü¾ ݾ Þ¾µ, ´Ü¿ Ý¿ Þ¿µ, and ´Ü Ü Þ µ, the © 2003 by CRC Press LLC FIGURE 4.39 The ve non-degenerate real quadrics. Top left: ellipsoid. Top right: hyperboloid of two sheets (one facing up and one facing down). Bottom left: elliptic paraboloid. Bottom middle: hyperboloid of one sheet. Bottom right: hyperbolic paraboloid. Conversely, an equation of the form Ü ¾ · Ý ¾ · Þ ¾ · ¾ Ü · ¾ Ý · ¾ Þ · ¼ (4.18.7) defines a sphere if ¾ · ¾ · ¾ ; the center is ´      µ and the radius isÔ ¾ · ¾ · ¾   . 1. Four points not in the same plane determine a unique sphere. If the points have coordinates ´Ü½ ݽ Þ½µ, ´Ü¾ ݾ Þ¾µ, ´Ü¿ Ý¿ Þ¿µ, and ´Ü Ü Þ µ, the © 2003 by CRC Press LLC Abbildung 2.2.: Hyperboloide, einschalig und zweischalig. Paraboloide Man unterscheidet zwei Typen von Paraboloiden: Das elliptische und das hyperbolische Paraboloid (siehe Abbil- dung 2.3). Die Gleichung ax2 ± by2 − 2rz = 0 legt mit den Koeffizienten a > 0, b = 0, c = 0, f , g, h = 0, p, q = 0, r = 0 und d (beliebig) die Matrize QP araboloid =     +a 0 0 0 0 ±b 0 0 0 0 0 ±r 0 0 ±r d     fest (elliptisch: b > 0, hyperbolisch: b < 0). Quadriken im Raum und ihre Schnittbilder an ebenen Fl¨achen, Version 1.1, 15. Februar 2015 3
  • 7. Conversely, an equation of the form Ü ¾ · Ý ¾ · Þ ¾ · ¾ Ü · ¾ Ý · ¾ Þ · ¼ (4.18.7) defines a sphere if ¾ · ¾ · ¾ ; the center is ´      µ and the radius isÔ ¾ · ¾ · ¾   . 1. Four points not in the same plane determine a unique sphere. If the points have coordinates ´Ü½ ݽ Þ½µ, ´Ü¾ ݾ Þ¾µ, ´Ü¿ Ý¿ Þ¿µ, and ´Ü Ü Þ µ, the © 2003 by CRC Press LLC Conversely, an equation of the form Ü ¾ · Ý ¾ · Þ ¾ · ¾ Ü · ¾ Ý · ¾ Þ · ¼ (4.18.7) defines a sphere if ¾ · ¾ · ¾ ; the center is ´      µ and the radius isÔ ¾ · ¾ · ¾   . 1. Four points not in the same plane determine a unique sphere. If the points have coordinates ´Ü½ ݽ Þ½µ, ´Ü¾ ݾ Þ¾µ, ´Ü¿ Ý¿ Þ¿µ, and ´Ü Ü Þ µ, the © 2003 by CRC Press LLC Abbildung 2.3.: Paraboloide, elliptisch und hyperbolisch. 2.1.2. Kegelschnitte Die Schnittbilder der f¨unf nicht ausgearteten reellen Quadriken im Raum an ebenen Fl¨achen sind die sogenannten Kegelschnitte Ellipse, Hyperbel und Parabel. Diese sind gem¨ass Zwillinger [Zwi03, S. 542] definiert in R2 als gemischt-quadratische Gleichung der allgemeinen Form ax2 + by2 + 2hxy + 2px + 2qy + d = 0 (2.3) Auch hier kann die Gleichung 2.3 als Matrizenmultiplikation geschrieben werden mit einem Vektor v (vertex) f¨ur die kartesischen Koordinaten unter Verwendung von homogenen Koordinaten (w = 1) und einer symmetrischen 3x3-Matrize C (conic), welche die Koeffizienten enth¨alt und damit den Kegelschnitt charakterisiert. F¨ur die fol- genden Kegelschnitte werden sowohl eine Translation als auch eine projektive Transformation ausgeschaltet, indem grunds¨atzlich die Parameter p und q auf Null gesetzt werden. vT · C · v = 0 (2.4) mit v =   x y 1   und C =   a h p h b q p q d   Ellipse Die Gleichung ax2 + by2 − d = 0 legt mit den Koeffizienten a, b > 0, h = 0 und d < 0 die Matrize f¨ur die Ellipse fest. Ein Spezialfall der Ellipse ist der Kreis mit a = b. CEllipse =   a 0 0 0 b 0 0 0 −d   Hyperbel Die Gleichung ax2 − by2 ± d = 0 legt mit den Koeffizienten a > 0, b < 0, h = 0 und d = 0 die Matrize f¨ur die Hyperbel fest. CHyperbel =   a 0 0 0 −b 0 0 0 ±d   Parabel Die Gleichung ±x2 + d = 0 legt mit den Koeffizienten a = 0 und b = 0 die Matrize f¨ur die Parabel fest – das konstante Glied d kann beliebige Werte in R annehmen. CP arabel =   ±a 0 0 0 0 0 0 0 d   Quadriken im Raum und ihre Schnittbilder an ebenen Fl¨achen, Version 1.1, 15. Februar 2015 4
  • 8. 2.2. Geometrische Transformation In der Computergrafik werden lineare Abbildungen, die z.B. durch Drehen oder Zoom entstehen sollen, unter Anwendung von geometrischen Transformationen realisiert. Diese erfolgen im projektiven Raum mit homogenen Koordinaten. Die Grundlagen dazu sind der Publikation Shreiner [Shr+13, S. 205 – 258] (Kapitel 5) und [Shr+13, S. 829 – 834] (Appendix E) entnommen. Eine Abbildung wird demnach mit einer ihr assoziierten Matrize M formuliert. Die geometrische Transformation eines Punktes als Ortsvektor v mit homogenen Koordinaten (w = 1) in ein Abbild v gestaltet sich als Multiplikation mit der Transformationsmatrize M: v = M · v (2.5) mit v =     x y z 1     und M = L t pT 1 , wobei L =   l11 l12 l13 l21 l22 l23 l31 l32 l33   , t =   tx ty tz   und p =   px py pz   . Dabei repr¨asentiert die 3x3-Matrize L eine lineare Abbildung, der Spaltenvektor t eine Translation und der Zei- lenvektor pT eine projektive Transformation. In der Folge werden die assoziierten Matrizen sowohl von affinen Transformationen als auch von verschiedenen Projektionen erl¨autert. 2.2.1. Affine Transformationen Als affine Transformationen werden hier die Skalierung, die Scherung und die Rotationen gezeigt. Die Umkehrung der Transformationen werden durch ihre Inversen M−1 realisiert. Eine Translation T um den Vektor t = (tx , ty , tz )T erfolgt mit der Matrize T(tx , ty , tz ) =     1 0 0 tx 0 1 0 ty 0 0 1 tz 0 0 0 1     . Eine Streckung resp. Skalierung K mit kx in x-Richtung, ky in y-Richtung und kz in z-Richtung gestaltet sich wie folgt: K(kx , ky , kz ) =     kx 0 0 0 0 ky 0 0 0 0 kz 0 0 0 0 1     . Eine Scherung S realisiert die Transformationsmatrize S(sxy , sxz , syx , syz , szx , szy ) =     1 sxy sxz 0 syx 1 syz 0 szx szy 1 0 0 0 0 1     . Die Rotationsmatrizen Raxis f¨ur Rotationen mit Winkel θ um die x-, y- oder z-Achse eines kartesischen Koordina- tensystems sind gegebenen mit Rx (θ) =     1 0 0 0 0 cos θ − sin θ 0 0 sin θ cos θ 0 0 0 0 1     , Ry (θ) =     cos θ 0 sin θ 0 0 1 0 0 − sin θ 0 cos θ 0 0 0 0 1     , Rz (θ) =     cos θ − sin θ 0 0 sin θ cos θ 0 0 0 0 1 0 0 0 0 1     . Quadriken im Raum und ihre Schnittbilder an ebenen Fl¨achen, Version 1.1, 15. Februar 2015 5
  • 9. 2.2.2. Projektionen Es werden hier eine orthographische, eine perspektivische und eine stereoskopische Projektion gezeigt. Diese werden mit den Variablen l, r, t, b, n, f ∈ R (l: left, r: right, t: top, b: bottom, n: near, f: far) als Grenzen eines in der Computergrafik ¨ublichen Sichtvolumen (engl. view frustum) formuliert, wobei l = r, t = b und n = f sowie n, f = 0 sei. Orthographische Projektion Eine orthographische Projektion O ist eine Parallelprojektion und definiert als Komposition von Translation und Skalierung: O(l, r, t, b, n, f ) =     2 r−l 0 0 −r+l r−l 0 2 t−b 0 −t+b t−b 0 0 − 2 f −n −f +n f −n 0 0 0 1     . Perspektivische Projektion Die hier formulierte Projektion ist eine 3-Punkt-Zentralprojektion und als solche eine nicht-affine Transformation. Eine perspektivische Projektion P ist definiert als Komposition aus Skalierung, Scherung und projektiver Transfor- mation: P(l, r, t, b, n, f ) =     2n r−l 0 r+l r−l 0 0 2n t−b t+b t−b 0 0 0 −f +n f −n − 2f n f −n 0 0 −1 0     . Stereoskopische Projektion Eine Stereobildwiedergabe durch spektrales Multiplexing1 mit Anaglyphen2 kann z.B. mit den perspektivischen Projektionen Plef t und Pright zweier asymmetrischer Sichtvolumen in dasselbe Bild realisiert werden: Plef t =     2n r−l+2d 0 r+l r−l+2d 0 0 2n t−b t+b t−b 0 0 0 −f +n f −n − 2f n f −n 0 0 −1 0     und Pright =     2n r−l−2d 0 r+l r−l−2d 0 0 2n t−b t+b t−b 0 0 0 −f +n f −n − 2f n f −n 0 0 −1 0     mit d = 1 2 × eyeSep × n f ocalDist Dabei steht die Variable eyeSep (eye separation) f¨ur den Abstand der Augen des menschlichen Binokular, die Variable f ocalDist (focal distance) ist die Distanz des Binokulars zur sog. ’near clipping plane’ n. F¨ur diese Gr¨ossen werden oft idealisierte Annahmen getroffen. 1Multiplexverfahren: Gleichzeitige ¨Ubertragung von mehreren Nachrichten ¨uber denselben Sender. Duden Online, Zugriff: 9.01.2015. 2Anaglyphe, die; griechisch-lateinisch, ” reliefartig ziseliert, erhaben“: in Komplement¨arfarben etwas seitlich verschoben ¨ubereinander gedrucktes und projiziertes Bild, das beim Betrachten durch eine Farbfilterbrille mit gleichen Komplement¨arfarben r¨aumlich erscheint. Duden Online, Zugriff: 8.12.2014. Quadriken im Raum und ihre Schnittbilder an ebenen Fl¨achen, Version 1.1, 15. Februar 2015 6
  • 10. 2.3. Kollineation Quadriken k¨onnen durch Kollineation in ¨aquivalente Quadriken abgebildet werden. Dies soll hier durch eine projektive Transformation erfolgen. Danach wird das Vorgehen zur Bestimmung der Koeffizienten des Abbildes erl¨autert. 2.3.1. Projektive Transformation Als Ausgangslage dient hier eine gegebene Quadrik in einer der drei Normalformen von Mittelpunktsquadrik, ke- geliger oder parabolischer Typ (siehe Tabelle 2.1). Innerhalb dieser Typen k¨onnen Quadirken durch eine projektive Transformation bijektiv in ¨aquivalente Quadriken abgebildet werden. Tabelle 2.1.: Typen, Normalformen und ¨aquivalente Quadriken. Typ Normalform ¨Aquivalente Quadriken Mittelpunktsquadrik Kugel Ellipsoid Kegeliger Typ Zylinder Einschaliges und zweischaliges Hyperboloid Parabolischer Typ Scheibe Elliptisches und hyperbolisches Paraboloid Durch eine linksseitige Multiplikation aller Punkte v einer Quadrik im projektiven Raum (Ortsvektoren mit homo- genen Koordinaten, w = 1) mit einer projektiven Transformationsmatrize H (homography) werden die Punkte v einer ¨aquivalenten Quadrik berechnet. Um die 15 Freiheitsgrade der 4x4-Matrize H auf deren zw¨olf zu reduzieren, werden die Elemente h14, h24 und h34 auf Null gesetzt, womit eine Translation ausgeschlossen ist: v = H · v (2.6) mit v =     x y z 1     und H =     h11 h12 h13 0 h21 h22 h23 0 h31 h32 h33 0 h41 h42 h43 h44     2.3.2. Koordinatengleichung des Abbildes Ist die Transformation H regul¨ar (detH = 0), kann die Koeffizientenmatrize des Abbildes Q durch eine weitere Matirzenmultiplikation berechnet werden. Dabei wird die Koeffizientenmatrize Q linksseitig mit der Transponierten und rechtsseitig mit der Inversen der Kollineationsmatrize H multipliziert: Q = HT · Q · H−1 (2.7) Die so erhaltene Koeffizientenmatrize des Abbildes Q kann nun in die Gleichung 2.2 eingesetzt werden: vT · Q · v = 0 Durch Ausmultiplizieren erhalten wir schliesslich die Koordinatengleichung des Abbildes gem¨ass Gleichung 2.1: a x2 + b y2 + c z2 + 2f yz + 2g zx + 2h xy + 2p x + 2q y + 2r z + d = 0 Quadriken im Raum und ihre Schnittbilder an ebenen Fl¨achen, Version 1.1, 15. Februar 2015 7
  • 11. 3. Konzept Das Konzept wird als objektorientierte Analyse und Design formuliert. In der Vision werden die Problemstellung und sonstige Anforderungen erfasst. Die darauf folgenden Anwendungsf¨alle sind in der Kurzform gehalten. In den erg¨anzenden Anforderungen ist n¨aheres zum Setup aufgelistet. Die Dom¨anen werden grafisch modelliert. 3.1. Vision Problemstellung ˆ Es soll eine didaktische Applikation erstellt werden, mit welcher die f¨unf nicht degenerierten reellen Quadriken im Raum basierend auf ihren Normal- formen als geometrische Objekte visualisiert wer- den k¨onnen. ˆ Die Schnittbilder an einer ebenen Fl¨ache – die Ke- gelschnitte Ellipse, Hyperbel und Parabel – sollen akzentuiert dargestellt werden. ˆ Die Kollineation soll parametrisierbar sein. Sonstige Anforderungen ˆ Die Visualisierung der Quadrik soll mit Zoomen und Drehen erkundet werden k¨onnen. ˆ Um die optische Lesbarkeit zu erh¨ohen, soll zwi- schen orthographischer oder perspektivischer Dar- stellung umgeschaltet werden k¨onnen. ˆ Zudem soll eine stereoskopische Darstellung ge- w¨ahlt werden k¨onnen. 3.2. Anwendungsf¨alle Quadriken-Normalform w¨ahlen: ¨Uber ein Men¨u im GUI k¨onnen die Normalformen der drei Typen von Quadriken im Raum ausw¨ahlt werden. Eine ge- w¨ahlte Quadrik und ihr Schnittbild an einer ebenen Fl¨ache wird im GUI visualisiert. Alle Komponenten der Transformationsmatrize H werden auf Null ge- stellt. Nicht degenerierte reelle Quadrik w¨ahlen: ¨Uber ein Men¨u im GUI k¨onnen die f¨unf nicht degenerier- ten reellen Quadriken im Raum ausw¨ahlt werden. Eine gew¨ahlte Quadrik und ihr Schnittbild an ei- ner ebenen Fl¨ache werden im GUI visualisiert. Die Quadrik basiert auf einer der Normalformen, die Komponenten der Transformationsmatrize H wer- den vom System entsprechend parametrisiert. Kollineation editieren: Die projektive Transformati- onsmatrize H kann im GUI mit Drehfeldern f¨ur die einzelnen Parameter editiert werden. Mit dem ¨An- dern der Matrize wird eine Kollineation der Qua- drik und des Kegelschnittes vorgenommen. Ansch- liessend wird die Visualisierung der Quadrik und des Kegelschnittes neu gezeichnet. Visualisierung zoomen: Per Tastatur, Maus und ¨uber einen Schieberegler im GUI kann die Visualisierung skaliert werden. Visualisierung rotieren: Per Tastatur, Maus und ¨uber Druckkn¨opfe im GUI kann die Visualisierung ge- dreht werden. Visualisierung animieren: Per Tastatur kann ein ani- miertes Drehen der Visualisierung ein- resp. aus- geschaltet werden. Projektion der Visualisierung w¨ahlen: ¨Uber ein Op- tionsfeld im GUI kann zwischen orthographischer oder perspektivischer Projektion der Visualisierung umgeschaltet werden. Zudem kann ¨uber ein Kon- trollk¨astchen die Stereobildwiedergabe ein- resp. ausgeschaltet werden. Quadriken im Raum und ihre Schnittbilder an ebenen Fl¨achen, Version 1.1, 15. Februar 2015 8
  • 12. 3.3. Erg¨anzende Anforderungen ˆ Die Applikation wird in C/C++ implementiert. ˆ Die Visualisierung erfolgt mit dem C-API von OpenGL1 sowie mit der OpenGL Utility Library GLU2 , der zum OpenGL Utility Toolkit GLUT kompatiblen Bibliothek freeglut3 und der OpenGL Extension Wrangler Library GLEW.4 F¨ur die Aus- programmierung linearer Algebra (Matrizen, Vek- toren, Matrizen-Operationen etc.) wird die Biblio- thek OpenGL Mathematics GLM5 verwendet. ˆ Die Software wird als C++-Projekt mit Qt- Creator, die grafische Benutzeroberfl¨ache mit Qt- Designer objektorientiert programmiert.6 ˆ Das Debuggen der Shader erfolgt mit der Nsight Eclipse Edition aus dem CUDA-Toolkit von nVi- dia7 . ˆ Die Versionsverwaltung der Arbeiten erfolgt mit der Software git.8 ˆ Der Quellcode erh¨alt Kommentare, mit Doxygen9 wird eine Dokumentation als html-Version erstellt. ˆ Die Applikation wird f¨ur GNU/Linux Debian (64- bit) kompiliert und gelinkt. ˆ Der Quellcode, dessen Dokumentation und die ausf¨uhrbare Applikation werden auf einem Daten- tr¨ager abgegeben. 3.4. Dom¨anenmodell Auswahl Quadrik Liste mit Normalformen Liste reeller Quadriken Quadrik NF: v Koeffizienten NF: Q 1 1 auswählen Benutzer- schnittstelle 1 1 erzeugen Kollineation H Abb. Quadrik v'=Hv (Objekt-Koodinaten) Normalengleichung ax^2+...+d=0 Abb. Koeffizienten Q'=H^TQH^-1 1 1 editieren 1 1 auswählen 1 1 parametrisieren 1 1 abbilden 1 1 visualisieren 1 1 parametrisieren 1 1 visualisieren Auswahl Projektion Orthografische P. Perspektivische P. Stereoskopische P. Auswahl Affine Transf. Zoom Rotation Animierte Transf. 1 1 auswählen 1 1 abbilden 1 1 transformieren 1 1projzieren Visualisierung Quadrik (Welt-Koordinaten) Abbildung 3.1.: Dom¨anenmodell-Diagramm. 1OpenGL, Online: http://www.opengl.org/, Zugriff: 18.11.2014. 2GLUT and OpenGL Utility Libraries, Online: https://www.opengl.org/resources/libraries/, Zugriff: 18.11.2014. 3freeglut, Online: http://freeglut.sourceforge.net/, Zugriff: 13.11.2014. 4GLEW, Online: http://glew.sourceforge.net/, Zugriff: 13.11.2014. 5OpenGL Mathematics GLM, Online: http://glm.g-truc.net/, Zugriff: 28.11.2014. 6Qt Project, Online: https://qt-project.org/, Zugriff: 11.12.2014. 7nVidia: CUDA Toolkit v6.5, Online: https://developer.nvidia.com/cuda-toolkit, Zugriff: 10.11.2014. 8git – the stupid content tracker, Online: http://git-scm.com/, Zugriff: 13.11.2014. 9Doxygen documentation system, Online: http://www.doxygen.org/, Zugriff: 30.12.2014. Quadriken im Raum und ihre Schnittbilder an ebenen Fl¨achen, Version 1.1, 15. Februar 2015 9
  • 13. 4. Umsetzung Es folgt eine Beschreibung der grafischen Benutzerschnittstelle, formuliert nach benutzerorientiertem Ansatz sowie eine produktorientierte Erl¨auterung der Implementation. 4.1. Grafische Benutzerschnittstelle Die grafische Benutzerschnittstelle der Applikation (siehe Abbildung 4.1) hat zwei Fensterbereiche. Der linke Fens- terbereich zeigt die Visualisierung der Quadrik inklusive x-, y- und z-Achsen und einem Grundraster als Orientie- rungshilfen. Im rechten Fensterbereich befinden sich drei Gruppenboxen mit Elementen f¨ur die Benutzerinteraktion: ’Kollineation’, ’Navigation’ und ’Projektion’. In der Men¨uleiste sind diverse Eintr¨age verf¨ugbar. Des Weiteren sind die Maustasten mit Funktionalit¨at belegt. Abbildung 4.1.: Grafische Benutzerschnittstelle Quadriken im Raum und ihre Schnittbilder an ebenen Fl¨achen, Version 1.1, 15. Februar 2015 10
  • 14. 4.1.1. Kollineation Die Gruppenbox ’Kollineation’ (siehe Abbildung 4.2) enth¨alt einen Block mit Drehfeldern. Er repr¨asentiert die 4x4-Matrize der projektiven Transformation H. Drei Drehfelder in der vierten Spalte sind deaktiviert, womit eine Translation ausgeschlossen wird (vgl. Abschnitt 2.3.1). Mit dem ¨Andern eines Wertes in einem editierbaren Drehfeld werden die Quadrik und der Kegelschnitt neu berechnet und wiederum gezeichnet. Zudem wird die Koordinaten- gleichung ¨uber der Visualisierung aktualisiert. Abbildung 4.2.: Gruppenbox ’Kollineation’ 4.1.2. Navigation Die Gruppenbox ’Navigation’ (siehe Abbildung 4.3) enth¨alt einen Schieberegler mit Zoom-Stufen von 1 bis 9 (Tastaturbelegung: Page-up resp. Page-down). Mit den Pfeile-Druckkn¨opfen kann die Visualisierung gedreht werden: Nach links und rechts um die rote X-Achse sowie auf und ab um die gr¨une Y-Achse (Tastaturbelegung: Pfeiltasten). Mit der Leertaste kann eine animierte Rotation um die blaue Z-Achse ein- bzw. ausgeschaltet werden. Abbildung 4.3.: Gruppenbox ’Navigation’ 4.1.3. Projektion In der Gruppenbox ’Projektion’ (siehe Abbildung 4.4) kann von einer orthografischen in eine perspektivische Projekti- on gewechselt werden. Mit dem Setzen des H¨ackchens wird die Stereobildwiedergabe aktviert (siehe Abbildung 4.5). Das Stereobild kann durch eine Anaglyphenbrille mit roter Folie f¨ur das linke und gr¨uner Folie f¨ur das rechte Auge betrachtet werden. Eine solche 3D-Brille ist im Anhang A.2 zu finden. Abbildung 4.4.: Gruppenbox ’Projektion’ Quadriken im Raum und ihre Schnittbilder an ebenen Fl¨achen, Version 1.1, 15. Februar 2015 11
  • 15. Abbildung 4.5.: Orthografische Projektion und perspektivische Projektion mit Stereobildwiedergabe 4.1.4. Men¨u ¨Uber den Men¨ueintrag ’Quadrik > Normalform’ kann eine der drei Normalformen Mittelpunksquadrik, kegeliger oder parabolischer Typ ausgew¨ahlt werden (siehe Abbildung 4.6). Im Men¨ueintrag ’Quadrik > Parametrisiert’ k¨onnen die f¨unf nicht degenerierten reellen Quadriken im Raum aufgerufen werden (siehe Abbildung 4.7). Dabei wird eine der Normalformen gesetzt und durch eine entsprechend parametrisierte Kollineation transformiert. Abbildung 4.6.: Men¨ueintrag ’Quadrik > Normalform’ Abbildung 4.7.: Men¨ueintrag ’Quadrik > Parametrisiert’ 4.1.5. Maus Befindet sich der Mauszeiger im Bereich der Visualisierung, kann die Quadrik auch direkt mit der Maus erkundet werden. Zudem ist dann ein Kontexmen¨u erreichbar (siehe Abbildung 4.8). Die drei Maustasten sind wie folgt belegt: ˆ Linke Maustaste: Freies Drehen (Rotation). ˆ Mittlere Maustaste (gedr¨uckt): Zoom hinein (vor) resp. heraus (zur¨uck). ˆ Rechte Maustaste: Kontextmen¨u. Abbildung 4.8.: Kontexmen¨u der rechten Maustaste Quadriken im Raum und ihre Schnittbilder an ebenen Fl¨achen, Version 1.1, 15. Februar 2015 12
  • 16. 4.2. Implementation Da sowohl OpenGL als auch GLU und GLUT an sich C-APIs der Zustandsmaschine ’Grafikkarte’ sind, wurden Methoden mit Callbacks wie z.B. f¨ur Maus und Tastatur in C ausprogrammiert. Ansonsten wurden die Elemente in C++ und objektorientert umgesetzt, so auch die grafische Benutzerschnittstelle. 4.2.1. Quadrik und Kegelschnitt Beim Aufstarten der Applikation werden mit Methoden aus GLU Quadriken als 3D-Modelle instanziert. Dabei wird zuerst mit gluNewQuadric ein Pointer auf ein Quadriken-Objekt erstellt, danach wird eine Liste von Objekten f¨ur jede der Quadrik-Typen erstellt (vgl. Tabelle 2.1 in den Grundlagen): ˆ Mittelpunksquadrik: Normalform Kugel mit gluSphere ˆ Kegeliger Typ: Normalform Zylinder mit gluCylinder ˆ Parabolischer Typ: Normalform Scheibe mit gluDisk Diese sind aus sogenannten Primitven1 als tesselierte2 Drahtk¨orper (Mesh3 aus Punkten und Linien) modelliert. F¨ur den Kegelschnitt wird die Quadrik an der yz-Ebene geschnitten. Da das Schnittbild eine gewisse Tiefe haben soll, wird dazu ebenfalls die Quadrik verwendet: Sie wird ein zweites mal in anderer Farbe gezeichnet. Von dieser ist jedoch nur eine Bildtiefe von wenigen Einheiten sichtbar und erscheint deshalb als Kegelschnitt. Die Quadrik und der Kegelschnitt werden schliesslich in ein QGLWidget aus der Qt-Bibliothek gezeichnet. 4.2.2. Kollineation Mit dem Editieren der Kollineationsmatrize H erf¨ahrt die Quadrik Punkt f¨ur Punkt eine projektive Transformation in ihr Abbild: Das Mesh der Quadrik wird mit einer Matrizenmultiplikation Vertex f¨ur Vertex transformiert. Dies erfolgt mit einem Vertex-Shader auf der Grafikkarte (siehe Listing 4.1). Listing 4.1: Vertex-Shader mit projektiver Transformation 1 #version 420 core 3 layout (location = 0) in vec4 vecPosition; 4 layout (location = 1) in vec4 vecColor; 6 uniform mat4 matModelView; 7 uniform mat4 matCollineation ; // projective transformation 8 uniform mat4 matProjection ; 9 uniform float floatOffset; 11 out vec4 color; 13 void main () 14 { 15 color = vecColor; 16 vec4 position = vecPosition + vec4(vec3 (0.0f, 0.0f, gl_InstanceID * floatOffset ), 1.0f); 17 gl_Position = matProjection * matCollineation * matModelView * position; 18 } 1Primitive: Grundelemente in der Computergrafik, z.B. Punkt, Linie, Dreieck; siehe OpenGL Wiki, https://www.opengl.org/wiki/ Primitive. Zugriff: 17.12.2014 2Tesselierung: Unterschiedliche Techniken zur Zerlegung von Polygonen, hier z.B. die Triangulation; siehe DGL Wiki, http://wiki. delphigl.com/index.php/Tesselierung. Zugriff: 17.12.2014 3Mesh (engl. f¨ur Netz): Die Menge an Ecken (vertices) und Kanten (edges), welche ein Objekt formen; siehe DGL Wiki, http: //wiki.delphigl.com/index.php/Mesh. Zugriff: 17.12.2014 Quadriken im Raum und ihre Schnittbilder an ebenen Fl¨achen, Version 1.1, 15. Februar 2015 13
  • 17. 4.2.3. Navigation Die Transformationsmethoden f¨ur den Zoom-Schieberegler und die Rotations-Druckkn¨opfe der Gruppenbox ’Navi- gation’ wurden in C ausprogrammiert. Die animierte Rotation ist mit der GLUT-Timer-Funktion glutTimerFunc, die Rotation an sich mit der OpenGL-Funktion glRotatef implementiert. F¨ur die Benutzerinteraktion per Maus direkt im QGLWidget wurde das Zoom-pan-rotate mouse manipulation module for GLUT4 eingebunden. 4.2.4. Projektion Die orthografische und die perspektivische Projektion sind mit den GLM-Matrix-Transformationen ortho und perspective implementiert. Das Graustufen-Stereobild wird durch eine zweifache Projektion in dasselbe Bild realisiert. Als Anaglyphe werden die Komplement¨arfarben Rot und Gr¨un verwendet. Dazu wird jeweils vor dem Zeichnen der Quadrik mit OpenGL eine entsprechende glColorMask gesetzt. Die Trennung der Kan¨ale zur Perzeption wird durch Filterung des Stereobildes mit einer Anaglyphenbrille erreicht. Diese hat eine rote Folie f¨ur das linke und eine gr¨une Folie f¨ur das rechte Auge. Eine solche 3D-Brille ist im Anhang A.2 zu finden. 4Nigel Stewart: GLT ZPR – Zoom-pan-rotate mouse manipulation module for GLUT. Online: http://www.nigels.com/glt/gltzpr/, Zugriff: 1.12.2014 Quadriken im Raum und ihre Schnittbilder an ebenen Fl¨achen, Version 1.1, 15. Februar 2015 14
  • 18. 5. Schlussfolgerungen und Ausblick Ausgehend von geometrischen Normalformen visualisiert das erarbeitete Produkt m¨ogliche Auspr¨agungen von Qua- driken und ihre Schnittbilder an ebenen Fl¨achen. Mit Zoom und Rotation kann eine Quadrik im Raum erkundet werden. Die grafische Benutzerschnittstelle erm¨oglicht dabei eine intuitive Interaktion per Maus und Tastatur. Die r¨aumliche Wahrnehmung wird durch den m¨oglichen Wechsel von orthographischer zu perspektivischer Projekti- on und einer animierten Bildwiedergabe massgebend unterst¨utzt. Der 3D-Effekt mittels Stereoskopie kann dem Benutzer ein positives Lernerlebnis bieten. Mit diesem Projekt konnte ich die wichtigsten Grundlagen der Geometrischen Algebra f¨ur die Computergrafik auf anschauliche Weise umsetzen. Dabei kamen auch Lerninhalte aus den Modulen Software Engineering and Design (objektorientierte Analyse und Design) und der Vertiefungsrichtung Computer Perception and Virtual Reality CPVR (Programmierung in C/C++, Computergrafik mit OpenGL, Stereoskopie) zur Anwendung. Des Weiteren lernte ich mit der Entwicklungsumgebung Qt-Creator resp. Qt-Designer die Klassenbibliothek von Qt kennen. Spannend w¨are eine Implementation mittels f¨unfdimensionaler Konformer Geometrischer Algebra (engl. Conformal Geometric Algebra CGA). Die Definition der Quadriken und deren Transformation w¨urde um einiges vereinfacht. Da die Methoden der CGA bisher auf Grafikkarten nicht Einzug gehalten haben, w¨are f¨ur die Visualisierung zum jetzigen Zeitpunkt jedoch kaum ein Performancegewinn zu erwarten. Die Geometrische Algebra erm¨oglicht mit ihren Methoden eine elegante Umsetzung diverser Transformationen, im Speziellen zur Implementation in der Computergrafik. Eine Zentrale Rolle kommt dabei der Formulierung von geometrischen Objekten und Transformationen als Matrizen im projektiven Raum zu sowie der Durchf¨uhrung der Transformationen als Matrizenmultiplikation. Quadriken im Raum und ihre Schnittbilder an ebenen Fl¨achen, Version 1.1, 15. Februar 2015 15
  • 19. Literaturverzeichnis [Shr+13] Dave Shreiner u. a. OpenGL Programming Guide: The Official Guide to Learning OpenGL, Version 4.3. 8. Aufl. Upper Saddle River, N.J.: Addison-Wesley, 2013. [Zwi03] Daniel Zwillinger. Standard Mathematical Tables and Formulae. 31. Aufl. Boca Raton, FL: Chapman & Hall/CRC, 2003. Bildnachweis Titelseite Figure 4.39: The five non-degenerated real quadrics. Top left: ellipsoid. Top right: hyperboloid of two sheets (one facing up and one facing down). Bottom left: elliptic paraboloid. Bottom middle: hyperboloid of one sheet. Bottom right: hyperbolic paraboloid. (Die f¨unf nicht-degenerierten reellen Quadriken. Oben links: Ellipsoid. Oben rechts: zweischaliges Hyperboloid (eine Schale nach oben und eine nach unten gerichtet). Unten links: elliptisches Paraboloid. Unten Mitte: einschalges Hyperboloid. Unten rechts: hyperolisches Paraboloid.) In: Standard Mathematical Tables and Formulae, Zwillinger [Zwi03, S. 580]. Abbildungen Die Abbildungen 2.1, 2.2, und 2.3 stammen aus Zwillinger [Zwi03, S. 580]. Quadriken im Raum und ihre Schnittbilder an ebenen Fl¨achen, Version 1.1, 15. Februar 2015 16
  • 20. Abbildungsverzeichnis 2.1. Ellipsoid. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3 2.2. Hyperboloide, einschalig und zweischalig. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3 2.3. Paraboloide, elliptisch und hyperbolisch. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4 3.1. Dom¨anenmodell-Diagramm. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9 4.1. Grafische Benutzerschnittstelle . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10 4.2. Gruppenbox ’Kollineation’ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11 4.3. Gruppenbox ’Navigation’ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11 4.4. Gruppenbox ’Projektion’ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11 4.5. Orthografische Projektion und perspektivische Projektion mit Stereobildwiedergabe . . . . . . . . . 12 4.6. Men¨ueintrag ’Quadrik > Normalform’ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12 4.7. Men¨ueintrag ’Quadrik > Parametrisiert’ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12 4.8. Kontexmen¨u der rechten Maustaste . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12 Tabellenverzeichnis 2.1. Typen, Normalformen und ¨aquivalente Quadriken. . . . . . . . . . . . . . . . . . . . . . . . . . . . 7 Quellcodeverzeichnis 4.1. Vertex-Shader mit projektiver Transformation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13 Quadriken im Raum und ihre Schnittbilder an ebenen Fl¨achen, Version 1.1, 15. Februar 2015 17
  • 21. A. Produkt A.1. Datentr¨ager Auf dem Datentr¨ager vorzufinden sind sowohl der Quellcode des Qt-Projektes als auch die Applikation als ausf¨uhr- bare Bin¨ardatei. Das Produkt wurde mit dem GNU project C/C++ Compiler gcc als 64-Bit-Version f¨ur GNU/Linux Debian kompiliert und gelinkt. Um die Installation auf einem Debian-basierten System zu erleichtern, ist die Appli- kation zus¨atzlich im *.deb-Bin¨arpaketformat1 archiviert worden. 1Linux-Handbuch ’Dateiformate und Konventionen’, deb – Debian-Bin¨arpaketformat (man 5 deb). Quadriken im Raum und ihre Schnittbilder an ebenen Fl¨achen, Version 1.1, 15. Februar 2015 18
  • 22. A.2. Anaglyphenbrille Quadriken im Raum und ihre Schnittbilder an ebenen Fl¨achen, Version 1.1, 15. Februar 2015 19
  • 23. Selbst¨andigkeitserkl¨arung Ich best¨atige, dass ich die vorliegende Arbeit selbstst¨andig und ohne Benutzung anderer als der im Literaturver- zeichnis angegebenen Quellen und Hilfsmittel angefertigt habe. S¨amtliche Textstellen, die nicht von mir stammen, sind als Zitate gekennzeichnet und mit dem genauen Hinweis auf ihre Herkunft versehen. Ort, Datum: Biel/Bienne, 15. Februar 2015 Vorname, Name: Roland Bruggmann Unterschrift: ...................................... Quadriken im Raum und ihre Schnittbilder an ebenen Fl¨achen, Version 1.1, 15. Februar 2015 20