Diese Präsentation wurde erfolgreich gemeldet.
Wir verwenden Ihre LinkedIn Profilangaben und Informationen zu Ihren Aktivitäten, um Anzeigen zu personalisieren und Ihnen relevantere Inhalte anzuzeigen. Sie können Ihre Anzeigeneinstellungen jederzeit ändern.
CARL      VONOSSIETZKY            Torus-Knoten            Johannes Diemke            ¨            Ubung im Modul OpenGL mi...
Torus-Knoten(p, q)-Torus-Knoten   Wird im R3 durch eine Raumkurve r (ϕ) beschrieben   p und q m¨ssen relativ prim zueinand...
Torus-KnotenH¨lle entlang einer Raumkurve u 1   Berechnen des Frenet-Rahmen (Dreibein) 2   Aufspannen von Polygonen     Jo...
Torus-KnotenH¨lle entlang einer Raumkurve (Forts.) u   Beispielhaft anhand folgender Raumkurve                           ...
Torus-KnotenFrenet-Rahmen   Bildet eine Orthonormalbasis   Ist an jedem Punkt der Kurve gesondert definiert (begleitendes  ...
Torus-KnotenFrenet-Rahmen (Forts.)Definition (Frenet-Rahmen)Sei I ⊂ R3 ein Intervall und sei r : I → R3 eine Raumkurve von ...
Torus-KnotenFrenet-Rahmen (Forts.)   Berechnen der beiden Ableitungen r (ϕ) und r (ϕ)                                    ...
Torus-KnotenAufspannen von Ringen     Aufspannen von Ringen in der von der Einheitsnormale und     Einheitsbinormale aufge...
Torus-KnotenAufspannen von Ringen (Forts.)   Johannes Diemke      OpenGL mit Java   WiSe 2010 / 2011   9/18
Torus-KnotenAufspannen von Polygonen   Aufspannen von Polygonen zwischen den Ringen und Berechnung   der Vertex-Normalen  ...
Torus-KnotenZwischenstand   Johannes Diemke   OpenGL mit Java   WiSe 2010 / 2011   11/18
Torus-KnotenZwischenstand (Forts.)   Die Normale und Binormale machen sprunghaft   180-Grad-Drehungen in den Wendepunkten ...
Torus-KnotenApproximation   Vektor muss entsprechend der Raumkurve gew¨hlt werden, damit er                               ...
Torus-KnotenApproximation (Forts.)   symbolische vs. numerische Ableitung (Forward Difference):   point1 := curve(t);   poi...
Torus-KnotenErgebnis   (2, 3)- und (5, 3)-Torus-Knoten mit Flat-Shading    Johannes Diemke          OpenGL mit Java       ...
Torus-KnotenErgebnis (Forts.)    (2, 3)-Torus-Knoten mit Phong-Shading und Schatten    Johannes Diemke         OpenGL mit ...
Literatur Dave Shreiner OpenGL Programming Guide http://www.opengl-redbook.com/ Richard S. Wright, Benjamin Lipchak und Ni...
Literatur Edward Angel Interactive Computer Graphics http://www.cs.unm.edu/˜angel/ Gerald Farin und Dianne Hansford Practi...
Nächste SlideShare
Wird geladen in …5
×

2010-JOGL-08-Torus-Knoten

623 Aufrufe

Veröffentlicht am

  • Als Erste(r) kommentieren

2010-JOGL-08-Torus-Knoten

  1. 1. CARL VONOSSIETZKY Torus-Knoten Johannes Diemke ¨ Ubung im Modul OpenGL mit Java Wintersemester 2010/2011
  2. 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. 3. Torus-KnotenH¨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
  4. 4. Torus-KnotenH¨lle entlang einer Raumkurve (Forts.) u Beispielhaft anhand folgender Raumkurve   0.5 · (2 + sin(qϕ)) · cos(pϕ) r (ϕ) =  0.5 · (2 + sin(qϕ)) · cos(qϕ)  , 0 ≤ ϕ ≤ 2π 0.5 · (2 + sin(qϕ)) · sin(pϕ) Johannes Diemke OpenGL mit Java WiSe 2010 / 2011 4/18
  5. 5. Torus-KnotenFrenet-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. 6. Torus-KnotenFrenet-Rahmen (Forts.)Definition (Frenet-Rahmen)Sei I ⊂ R3 ein Intervall und sei r : I → R3 eine Raumkurve von der wirannehmen, dass sie differenzierbar und frei von Wendepunkten ist. Dasdurch 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
  7. 7. Torus-KnotenFrenet-Rahmen (Forts.) Berechnen der beiden Ableitungen r (ϕ) und r (ϕ)   0.5 cos(qϕ)q cos(pϕ) − 0.5(2 + sin(qϕ)) sin(pϕ)p r (ϕ) =  0.5 cos(qϕ)2 q − 0.5(2 + sin(qϕ)) sin(qϕ)q  0.5 cos(qϕ)q sin(pϕ) + 0.5(2 + sin(qϕ)) cos(pϕ)p −0.5 sin(qϕ)q 2 cos(pϕ) − cos(qϕ)q sin(pϕ)p − 0.5(2 + sin(qϕ)) cos(pϕ)p 2   r (ϕ) =  −1.5 cos(qϕ)q 2 sin(qϕ) − 0.5(2 + sin(qϕ)) cos(qt)q 2  −0.5 sin(qϕ)q 2 sin(pϕ) + cos(qϕ)q cos(pϕ)p − 0.5(2 + sin(qϕ)) sin(pϕ)p 2 Johannes Diemke OpenGL mit Java WiSe 2010 / 2011 7/18
  8. 8. Torus-KnotenAufspannen von Ringen Aufspannen von Ringen in der von der Einheitsnormale und Einheitsbinormale aufgespannten Ebenegl.glBegin(GL2.GL_LINE_LOOP); for(int j=0; j < segments; j++) { x = radius * Math.cos(2 * PI / segments * j)); y = radius * Math.sin(2 * PI / segments * j)); // Affine Transformation point = normal(t)*x + binormal(t)*y + curve(t); gl.glVertex3f(point.x, point.y, point.z); }gl.glEnd(); Johannes Diemke OpenGL mit Java WiSe 2010 / 2011 8/18
  9. 9. Torus-KnotenAufspannen von Ringen (Forts.) Johannes Diemke OpenGL mit Java WiSe 2010 / 2011 9/18
  10. 10. Torus-KnotenAufspannen von Polygonen Aufspannen von Polygonen zwischen den Ringen und Berechnung der Vertex-Normalen Johannes Diemke OpenGL mit Java WiSe 2010 / 2011 10/18
  11. 11. Torus-KnotenZwischenstand Johannes Diemke OpenGL mit Java WiSe 2010 / 2011 11/18
  12. 12. Torus-KnotenZwischenstand (Forts.) Die Normale und Binormale machen sprunghaft 180-Grad-Drehungen in den Wendepunkten der Kurve Tangente und Normale sind in den Wendepunkten parallelL¨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. 13. Torus-KnotenApproximation 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
  14. 14. Torus-KnotenApproximation (Forts.) symbolische vs. numerische Ableitung (Forward Difference): point1 := curve(t); point2 := curve(t + delta); unitTangent := normalize(point2 - point1); unitNormal := crossProduct(unitTangent, vec3(0, 1, 0)); unitBinormal := crossProduct(unitTangent, unitNormal); oder alternativ (Central Difference): point1 := curve(t - delta/2); point2 := curve(t + delta/2); unitTangent := normalize(point2 - point1); unitNormal := crossProduct(unitTangent, vec3(0, 1, 0)); unitBinormal := crossProduct(unitTangent, unitNormal); Johannes Diemke OpenGL mit Java WiSe 2010 / 2011 14/18
  15. 15. Torus-KnotenErgebnis (2, 3)- und (5, 3)-Torus-Knoten mit Flat-Shading Johannes Diemke OpenGL mit Java WiSe 2010 / 2011 15/18
  16. 16. Torus-KnotenErgebnis (Forts.) (2, 3)-Torus-Knoten mit Phong-Shading und Schatten Johannes Diemke OpenGL mit Java WiSe 2010 / 2011 16/18
  17. 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. 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

×