Vorstellung des Roboterfußball-Teams TORF (Vortrag)
2010-JOGL-08-Torus-Knoten
1. CARL
VON
OSSIETZKY
Torus-Knoten
Johannes Diemke
¨
Ubung im Modul OpenGL mit Java
Wintersemester 2010/2011
2. Torus-Knoten
(p, q)-Torus-Knoten
Wird im R3 durch eine Raumkurve r (ϕ) beschrieben
p und q m¨ssen relativ prim zueinander sein
u
Zwei nat¨rliche Zahlen sind teilerfremd oder relativ prim, wenn es
u
keine nat¨rliche Zahl außer der Eins gibt, die beide Zahlen teilt
u
Zwei Zahlen a und b sind dann teilerfremd, wenn ihr ggT (a, b) = 1 ist
(cos(qϕ) + 2) · cos(pϕ)
r (ϕ) = (cos(qϕ) + 2) · sin(pϕ) , 0 ≤ ϕ ≤ 2π
sin(qϕ)
Johannes Diemke OpenGL mit Java WiSe 2010 / 2011 2/18
3. Torus-Knoten
H¨lle entlang einer Raumkurve
u
1 Berechnen des Frenet-Rahmen (Dreibein)
2 Aufspannen von Polygonen
Johannes Diemke OpenGL mit Java WiSe 2010 / 2011 3/18
5. Torus-Knoten
Frenet-Rahmen
Bildet eine Orthonormalbasis
Ist an jedem Punkt der Kurve gesondert definiert (begleitendes
Dreibein)
Idee: Entlang der Raumkurve Ringe in der von der Einheitsnormale
und Einheitsbinormale aufgespannten Ebene zeichnen
Johannes Diemke OpenGL mit Java WiSe 2010 / 2011 5/18
6. Torus-Knoten
Frenet-Rahmen (Forts.)
Definition (Frenet-Rahmen)
Sei I ⊂ R3 ein Intervall und sei r : I → R3 eine Raumkurve von der wir
annehmen, dass sie differenzierbar und frei von Wendepunkten ist. Das
durch die Raumkurve gleitende Dreibein, auch Frenet-Rahmen genannt,
ist eine Orthonormalbasis bestehend aus den drei Vektoren T (ϕ), N(ϕ)
und B(ϕ) definiert durch:
r (ϕ) T (ϕ)
T (ϕ) = , N(ϕ) = , B(ϕ) = T (ϕ) × N(ϕ)
r (ϕ) T (ϕ)
Johannes Diemke OpenGL mit Java WiSe 2010 / 2011 6/18
10. Torus-Knoten
Aufspannen von Polygonen
Aufspannen von Polygonen zwischen den Ringen und Berechnung
der Vertex-Normalen
Johannes Diemke OpenGL mit Java WiSe 2010 / 2011 10/18
12. Torus-Knoten
Zwischenstand (Forts.)
Die Normale und Binormale machen sprunghaft
180-Grad-Drehungen in den Wendepunkten der Kurve
Tangente und Normale sind in den Wendepunkten parallel
L¨sung
o
Dreibein nicht uber zweite Ableitung konstruieren
¨
Approximation uber beliebigen Vektor, der nie parallel ist
¨
Johannes Diemke OpenGL mit Java WiSe 2010 / 2011 12/18
13. Torus-Knoten
Approximation
Vektor muss entsprechend der Raumkurve gew¨hlt werden, damit er
a
nie parallel zur Tangente ist
Weiterhin kann im selben Zug auch gleich die Tangente selbst
approximiert werden → forward difference
Johannes Diemke OpenGL mit Java WiSe 2010 / 2011 13/18
15. Torus-Knoten
Ergebnis
(2, 3)- und (5, 3)-Torus-Knoten mit Flat-Shading
Johannes Diemke OpenGL mit Java WiSe 2010 / 2011 15/18
16. Torus-Knoten
Ergebnis (Forts.)
(2, 3)-Torus-Knoten mit Phong-Shading und Schatten
Johannes Diemke OpenGL mit Java WiSe 2010 / 2011 16/18
17. Literatur
Dave Shreiner
OpenGL Programming Guide
http://www.opengl-redbook.com/
Richard S. Wright, Benjamin Lipchak und Nicholas Haemel
OpenGL SuperBibel
http://www.starstonesoftware.com/OpenGL/
Randi J. Rost
OpenGL Shading Language
http://www.3dshaders.com/
Tomas Akenine-M¨ller, Eric Haines und Naty Hoffman
o
Real-Time Rendering
http://www.realtimerendering.com/
Johannes Diemke OpenGL mit Java WiSe 2010 / 2011 17/18
18. Literatur
Edward Angel
Interactive Computer Graphics
http://www.cs.unm.edu/˜angel/
Gerald Farin und Dianne Hansford
Practical Linear Algebra
http://www.farinhansford.com/books/pla/
Fletcher Dunn und Ian Parberry
3D Math Primer for Graphics and Game Development
www.gamemath.com/
Johannes Diemke OpenGL mit Java WiSe 2010 / 2011 18/18