Aufgaben und Lösungen

Größe: px
Ab Seite anzeigen:

Download "Aufgaben und Lösungen"

Transkript

1 Aufgaben und Lösungen c Michael Bender, Manfred Brill Oktober 2005

2 Sie finden in diesem Dokument alle Aufgaben und die zugehörigen Lösungen aus Michael Bender, Manfred Brill: Computergrafik 2. Auflage, Hanser Verlag, München, Diese Unterlagen wurden mit LATEX erstellt.

3 Inhaltsverzeichnis 2 Grundlegende Verfahren und Techniken Transformationen und Koordinatensysteme Projektionen und Kameramodelle Clipping und Rasterung Sichtbarkeit Fallstudien Transformationen und Hierarchien in OpenGL Hierarchien in VRML und Alias MAYA Die virtuelle Kamera in OpenGL Clipping in OpenGL Geometrisches Modellieren mit Kurven und Flächen Parameterkurven Polynomiale Kurven Bézier-Kurven und -Kurvensegmente Interpolation und Splines B-Spline-Kurven Parametrische Flächendarstellungen Fallstudien Freiformgeometrie in OpenGL Polygonale Netze Polygone und Polyeder Datenstrukturen für polygonale Netze Dreiecksnetze

4 Inhaltsverzeichnis iii 4.4 Modellieren mit Netzen Level-of-Detail und Vereinfachen von Netzen Fallstudien Polygonale Netze in OpenGL Fallstudie Platonische und archimedische Körper Fallstudie Polygonale Netze in Alias MAYA Bildsynthese (Anti-)Aliasing Fallstudien Beleuchtung, Materialien und Schattierungen in OpenGL Cg Vertex-Shader in OpenGL GLSL Vertex- und Fragment-Shader Mapping in OpenGL Visualisierung Datenstrukturen Algorithmen für skalare Attribute Direkte Volumen-Visualisierung Visualisierung von Vektorfeldern Fallstudien Die Visualisierungs-Pipeline in VTK Volumen-Visualisierung mit VTK Visualisierung von Vektorfeldern mit VTK Computer-Animation Basistechnologien und Interpolation Animation hierarchischer Objekte Prozedurale Animationstechniken Fallstudien Key-Framing und Pfad-Animation in Alias MAYA Expressions in Alias MAYA Partikelsysteme in Alias MAYA

5 Inhaltsverzeichnis iv Literaturverzeichnis 117

6 Kapitel 2 Grundlegende Verfahren und Techniken 2.1 Transformationen und Koordinatensysteme 1. Gegeben ist eine beliebige Kombination von Punkten in einem affinen Raum: P = n i=1 λ ix i. Weisen Sie nach, dass P ein Punkt ist im Fall λ i = 1 und ein Vektor im Fall λ i = 0! Hat die Kombination einen Sinn für andere Werte der Summe λ i? Es gilt n ( n λ i X i = i=1 x i n i=1 i=1 λ i falls die Punkte durch X i = (x i, 1) T gegeben sind. Für λ i = 1 erhält man einen Punkt für die affine Kombination. Ist die Summe λ i = 0, dann ist das Ergebnis ein Vektor. Hat die Summe einen Wert λ i = 0, dann kann durch diesen Wert dividiert werden; das Ergebnis ist ein Punkt. 2. Die Polygonzüge A und B sind gegeben durch die Ecken A = {(1, 1), ( 1, 1), ( 1, 1), (1, 1), B = {(5, 2), (4, 3), (4, 0), (3, 2). Skizzieren Sie die Polygonzüge ta + (1 t)b für t = 1, 0.5, 0.5, 1.5. Die Polygonzüge A und B und die gesuchten Lösungen finden Sie in Abbildung 2.1 auf Seite Eine Reflexion an der x-achse ist gegeben durch die 4 4-Matrix Re f x = Stellen Sie die Matrix-Darstellung der Reflexion an einer beliebigen im Raum liegenden Linie, die durch den Ursprung geht, auf! ).

7 2 Grundlegende Verfahren und Techniken 2 t = 1 A B t = 1, 5 t = 0, 5 t = 0, 5 Abbildung 2.1: Die Polygonzüge A, B und ta + (1 t)b für Aufgabe 2 Durch eine Koordinatentransformation wird die Gerade durch den Ursprung auf die x-achse abgebildet; dann die Reflexion durchgeführt und anschließend wieder die Koordinatentransformation rückgängig gemacht. Die Koordinatentransformation beschreiben wir durch die beiden Winkel ϕ und θ. ϕ beschreibt den Winkel zwischen der x-achse und der Achse in der xy-ebene, θ den Winkel zwischen x-achse und der Achse in der xz-ebene. Dann ist die allgemeine Reflexion an einer Achse gegeben durch R y ( θ)r z (ϕ)re f x R z ( ϕ)r y ( θ): Re f = cosθ2 cos 2ϕ sinθ 2 cosθ sin 2ϕ sin 2θ sinϕ 2 cosθ sin 2ϕ cos 2ϕ sinθ sin 2ϕ sin 2θ sinϕ 2 sinθ sin 2ϕ cosθ 2 + sinθ 2 cos 2ϕ Setzen Sie θ = ϕ = 0, dann erhalten Sie Re f x zurück. Interessant ist der Fall θ = 0, einer Reflexion an einer Achse in der xz-ebene: cos 2ϕ sin 2ϕ 0 Re f θ=0 = sin 2ϕ cos 2ϕ Leiten Sie die Matrix-Darstellung der Rotation um eine beliebige Achse im Raum mit Hilfe von Kugelkoordinaten und Matrix-Algebra her! Analog zu Aufgabe 3 wird wieder die Drehachse durch die beiden Winkel ϕ, θ beschrieben. Dann ist die allgemeine Rotation mit Winkel β gegeben durch R y ( θ)r z (ϕ)r x (β)r z ( ϕ)r y ( θ). Im Buch auf Seite 19 unten müssen Sie noch die Koordinaten der Drehachsen durch den Vektor (cosθ cosϕ, sinϕ, cosϕ sinθ) T ersetzen. Haben Sie sich dazu entschieden, die Drehachse auf die y oder z-achse zu drehen, ergibt sich ein anderen Ausdruck, aber das gleiche Endergebnis. 5. Erstellen Sie einen Baum und einen gerichteten azyklischen Graphen für ein einfaches Modell der Hierarchie eines Autos und eines Propellerflugzeugs! Das Auto unterscheidet sich vom Fahrrad auf Seite 24 im Buch vor allem durch die Anzahl

8 2 Grundlegende Verfahren und Techniken 3 Rahmen Rahmen Vorderrad links Vorderrad rechts Hinterrad links Hinterrad rechts Rad Rahmen Rahmen Vorderrad links Vorderrad rechts Hinterrad Propeller Rad Propeller Abbildung 2.2: Ein Auto (links) und ein Propellerflugzeug (rechts) als Baum und als gerichteter azyklischer Graph der Räder. Beim Propellerflugzeug kommen zu den beiden Vorderrädern ein Hinterrad und der Propeller hinzu. Die Szenengraphen finden Sie in Abbildung 2.2 auf Seite Projektionen und Kameramodelle 1. Skizzieren Sie das Ergebnis der Parallelprojektion des Würfels mit linker unterer Ecke im Ursprung und Seitenlänge 1 für n = (1, 1, 1) T, vup=(0, 1, 0) T. Es ist n = , 3 1 u = , 2 1 v = Wendet man die daraus entstehende Projektionsmatrix K T = u 1 u 2 u 3 v 1 v 2 v 3 n 1 n 2 n 3 auf die acht Ecken des Würfels an, erhält man das Ergebnis wie in Abbildung 2.3 auf Seite 4. Es sollte Sie nicht überraschen, dass das visuelle Ergebnis das gleiche wie in Abbildung 2.24 auf Seite 29 im Buch ist. 2. Skizzieren Sie das Ergebnis einer Kavalier- und einer Kabinettprojektion mit α = 60 für einen Würfel! Die Kavaliers- und Kabinettprojektion mit α = 60 finden Sie in Abbildung 2.4 auf Seite 4.

9 2 Grundlegende Verfahren und Techniken 4 Abbildung 2.3: Die Lösung für Aufgabe 1 Abbildung 2.4: Die Kabinett- (links) und Kavalierprojektion mit α = Berechnen Sie die Projektionsmatrix für die Parallel- und Zentralprojektion für Z = (3, 3, 3), H = (0, 1, 0), vup = (0, 1, 0) T! Skizzieren Sie das Bild des Einheitswürfels durch diese Projektionen! Das grafische Ergebnis sehen sie in Abbildung 2.5. Die Matrizen sind 0, , P parallel = 0, , , und 3, , P persp = 1, , , , , , , , Abbildung 2.5: Die Parallel- (links) und Zentralprojektion für Aufgabe Die Linie L soll im Kamera-Koordinatensystem durch den Punkt A = (a u, a v, a n ) und den Richtungsvektor c gegeben sein als A + λc. Berechnen Sie das Ergebnis einer Zentralprojekti-

10 2 Grundlegende Verfahren und Techniken 5 on dieser Linie! Betrachten Sie den Fall c n = 0, dass die Linie also parallel zur Projektionsebene verläuft, und interpretieren Sie Ihr Ergebnis! Berechnen Sie den Fluchtpunkt der Geraden für den Fall c n = 0! Die Projektion der Geraden ist gegeben durch X u(λ) = d A u + λc u A n λc n, X v(λ) = d A v + λc v A n λc n. Für den Fall c n = 0 ergibt dies die parametrische Form einer Geraden in der Bildebene mit Steigung c v c u : d (A u + λc u, A v + λc v ). A n Dieses Bild ist unabhängig von der Position der Geraden, es kommt immer die gleiche Steigung heraus. Für den Fall c n = 0 müssen wir den Grenzwert λ betrachten. Es ist lim = d( c u, c v ). λ c n c u Der Fluchtpunkt hängt nur vom Richtungsvektor ab! Also haben parallele Geraden alle den gleichen Fluchtpunkt. 2.3 Clipping und Rasterung 1. Drücken Sie die auf Seite 42 erläuterte Window-Viewport-Transformation, die dreidimensionale Bildkoordinaten in zweidimensionale (kontinuierliche) Gerätekoordinaten umwandelt, als eine homogene 3 3-Matrix aus! Um die gesuchte 3 3 Matrix zu erhalten werden nacheinander die folgenden Transformationen ausgeführt: Translation des Fensters in den Koordinatenursprung des Bild-Koordinatensystems durch T( u min, v min ); Skalierung der Fensters auf die Größe des Viewports mit S( x max x min u max u min, y max y min v max v min ); Skalierung der zweiten Koordinate mit S(1, 1); Translation des Viewports an die Position im Geräte-Koordinatensystem durch T(x min, y max ). Die Hintereinanderausführung der Transformationen ergibt T(x min, y max )S(1, 1)S( x max x min u max u min, y max y min v max v min )T( u min, v min ) = x max x min u max u 0 min u min(x max x min ) u max u min + x min 0 y max y min v min (y max y min ) v max v min v max v min + y max Leiten Sie die Projektionsmatrix M auf Seite 54 her, die den normalisierten Pyramidenstumpf der Zentralprojektion in den normalisierten Quader der Parallelprojektion transformiert!

11 2 Grundlegende Verfahren und Techniken 6 Wir müssen einen Pyramidenstumpf auf einen Quader abbilden. Diese Abbildung wird durch die Projektionsmatrix der Zentralprojektion geliefert. Linien parallel zur Projektionsrichtung, hier die negative n-achse, werden auf Linien abgebildet, die sich im Zentralpunkt, hier dem Ursprung, schneiden. Analog werden Linien, die sich im Zentralpunkt schneiden durch die gleiche Projektionsmatrix auf Linien abgebildet, die parallel zur Projektionsrichtung liegen. Und Linien, die orthogonal auf der Projektionsrichtung stehen bleiben orthogonal. Also genau das, was wir suchen. Wir setzen die Projektionsmatrix an als P = a b Dies entspricht einer Zentralprojektion mit Zentralpunkt im Ursprung und Projektionsrichtung n. Die Zahlen a und b bestimmen wir jetzt so, dass Punkte in der Ebene n = 1 in dieser Ebene bleiben. Und die Punkte in der Ebene n = n min sollen auf n = 1 abgebildet werden. Wendet man die Matrix P auf einen Punkt in homogenen Koordinaten an, dann gilt u u P v n = v 0 0 a b n = u v a n + b n = u n v n a n+b n Die beiden Bedingungen an die Ebenen n = 1 und n = m min ergeben ein lineares 2 2- Gleichungssystem für a und b: Daraus ergibt sich für n min = 1 die Lösung a( 1) + b = 1, a n min + b = n min. a = 1 n min 1 + n min, b = 2n min 1 + n min. 3. Führen Sie nach den angegebenen Regeln eine vollständige Rasterung des in Abbildung 2.61 gezeichneten Polygons durch! Die Lösung finden Sie in Abbildung 2.6 auf Seite Sichtbarkeit 1. Lösen Sie für eine Szene mit nur einem, als konvexem Polyeder beschriebenem Objekt das Sichtbarkeitsproblem möglichst einfach!

12 2 Grundlegende Verfahren und Techniken 7 y B A P D O C E F Abbildung 2.6: Die Lösung zu Aufgabe 3 N M G L H K I J x Besteht die Szene aus einem einzigen konvexen Polyeder können bei beliebiger Sicht (Augpunkt außerhalb des Polyeders) in Sichtrichtung weder Fremdverdeckungen noch Eigenverdeckungen entstehen. Deshalb ist das Sichtbarkeitsproblem bereits durch die Anwendung des Backface-Cullings vollständig gelöst. Es wird hierbei vorausgesetzt, dass der Polyeder vollständig opak ist. 2. Untersuchen Sie beim z-buffer-verfahren die Abhängigkeit der Qualität der Bilddarstellung von der z-auflösung. Definieren Sie dazu in OpenGL eine einfache Szene und experimentieren Sie mit den Einstellungen der Front- und Back-Clipping-Plane! Ein Programm zum Experimentieren finden Sie als Quellcode unter ZBuffer zu diesem Kapitel. Die Genauigkeit des z-buffers hängt stark vom Verhältnis der Abstände von Near- und Far- Clipping-Plane ab. Je größer r = zfar znear wird, desto mehr Genauigkeit geht verloren. Probieren Sie ein winziges znear zusammen mit einem großen zfar aus, und Sie werden bemerken, dass der z-buffer selbst bei der gegebenen einfachen Szene die Tiefen der Primitive aus numerischen Gründen nicht mehr unterscheiden kann. Die dabei auftretenden Streifenmuster sind die typischen Anzeichen für fehlende Tiefengenauigkeit! 2.6 Fallstudien Transformationen und Hierarchien in OpenGL 1. Schreiben Sie ein Programm in C++, das mit Hilfe der Funktionen gltranslatef und glrotatef eine Rotationsmatrix um eine beliebige Rotationsachse im Raum bildet. Fragen Sie diese Matrix mit glgetfloatv ab und geben Sie sie auf der Konsole aus! Berechnen Sie zur Kontrolle mit Hilfe der Matrix auf Seite 19 die Werte und vergleichen Sie diese mit den ausgegebenen!

13 2 Grundlegende Verfahren und Techniken 8 Der folgende Quelltext löst die Aufgabe: GLfloat c[16]; glmatrixmode(gl_modelview); // Zuerst die Rotation mit Hilfe von glrotatef glloadidentity(); gltranslatef(3.0, 5.0, 7.0); glrotatef(45.0, 1.0, 1.0, 2.0); gltranslatef(-3.0, -5.0, -7.0); // Die CTM kann abgefragt werden: glgetfloatv(gl_modelview_matrix, c); // Ausgeben dieser Matrix cout << "Die Rotationsmatrix" << endl; cout << c[0] << "," << c[4] << "," << c[8] << "," << c[12] << endl; cout << c[1] << "," << c[5] << "," << c[9] << "," << c[13] << endl; cout << c[2] << "," << c[6] << "," << c[10] << "," << c[14] << endl; cout << c[3] << "," << c[7] << "," << c[11] << "," << c[15] << endl Bei den Downloads zu diesem Kapitel finden Sie den kompletten Quellcode! 2. Schreiben Sie ein C++-Programm, das das beschriebene Sonnensystem mit OpenGL realisiert. Fügen Sie dem Planeten im Sonnensystem einen Mond und weitere Planeten und Monde hinzu. Implementieren Sie in GLUT eine Interaktion, die es Ihnen erlaubt, die einzelnen Transformationen anzusteuern. GLUT bietet eine Idle-Funktion, die aufgerufen wird, wenn keine Benutzer-Interaktionen stattfinden. Implementieren Sie eine Autorun-Funktion, die in diesem Fall aufgerufen wird und die das Sonnensystem als Ganzes animiert. Hier ein Auszug aus dem Quelltext der Lösung. Bei den Downloads zu diesem Kapitel finden Sie die komplette Lösung! void drawsun(void) { glcolor3fv(suncolor); glutwiresphere(sunradius, 20, 16); void drawearth(void) { glcolor3fv(earthcolor); glutwiresphere(earthradius, 10, 8); void drawmoon(void) { glcolor3fv(mooncolor); glutwiresphere(moonradius, 10, 8); void drawmars(void) { glcolor3fv(marscolor); glutwiresphere(marsradius, 10, 8);

14 2 Grundlegende Verfahren und Techniken 9 // Die Funktion für glutidlefunc void autorun(void) { /* Animation abspielen im Fall von autoplay = true */ if (autoplay) { day = (day + incday) % 360; year = (year + incyear) %360; month = (month + incmonth) % 360; marsyear = (marsyear + incmarsyear) % 360; marsday = (marsday + incmarsday) % 360; Mmonth1 = (Mmonth1 + incmonth) % 360; Mmonth2 = (Mmonth2 + incmonth) % 360; glutpostredisplay(); void display(void) { glclear(gl_color_buffer_bit); glmatrixmode(gl_modelview); drawstars(); drawsun(); /* Erde und Mond */ glpushmatrix(); glrotatef((glfloat) year, 0.0, 1.0, 0.0); gltranslatef(orbit, 0.0, 0.0); glpushmatrix(); glrotatef((glfloat) day, 0.0, 1.0, 0.0); drawearth(); glpopmatrix(); glpushmatrix(); glrotatef(-(glfloat) month, 0.0, 1.0, 0.0); gltranslatef(moonorbit, 0.0, 0.0); drawmoon(); glpopmatrix(); glpopmatrix(); /* Erde und Mond */ /* Mars */ glpushmatrix(); glrotatef((glfloat) marsyear, 0.0, 1.0, 0.0); gltranslatef(marsorbit, 0.0, 0.0); glpushmatrix(); glrotatef((glfloat) marsday, 0.0, 1.0, 0.0); drawmars(); glpopmatrix(); glpushmatrix(); glrotatef(-(glfloat) Mmonth1, 0.0, 1.0, 0.0); gltranslatef(moonorbit, 0.0, 0.0); drawmoon(); glpopmatrix(); glpushmatrix(); glrotatef(45.0, 0.0, 0.0, 1.0);

15 2 Grundlegende Verfahren und Techniken 10 glrotatef((glfloat) Mmonth2, 0.0, 1.0, 0.0); gltranslatef(moonorbit*2.0, 0.0, 0.0); drawmoon(); glpopmatrix(); glpopmatrix(); glutswapbuffers(); 3. Implementieren Sie wie im Text beschrieben eine Datenstruktur für einen Knoten eines Szenengraphen und ein Pre-Order Traversal für OpenGL. Besetzen Sie entsprechende Knoten für den im Text dargestellten Roboter aus und rufen das Traversal in der display Funktion von GLUT auf. Bauen Sie entsprechende Callbacks ein, um den Roboter interaktiv zu verändern! Hier ein Auszug aus dem Quelltext der Lösung. Bei den Downloads zu diesem Kapitel finden Sie die komplette Lösung! void robby(void) { torso.draw = drawtorso; torso.sibling = 0; torso.child = &bein; movetorso(wx, Wy, Wz, Tx, Ty, Tz); bein.draw = drawbein; bein.sibling = &kopf; bein.child = &fuss; movebein(0.0); fuss.draw = drawfuss; fuss.sibling = 0; fuss.child = 0; movefuss(0.0); kopf.draw = drawkopf; kopf.sibling = &larm; kopf.child = 0; movekopf(kopfwinkel); larm.draw = drawarm; larm.sibling = &rarm; larm.child = &ldaumen; movelarm(larmwinkel); ldaumen.draw = drawdaumen; ldaumen.sibling = 0; ldaumen.child = 0; moveldaumen(0.0); rarm.draw = drawarm; rarm.sibling = 0; rarm.child = &rdaumen; moverarm(rarmwinkel); rdaumen.draw = drawdaumen; rdaumen.sibling = 0; rdaumen.child = 0; moverdaumen(0.0); void drawtorso() { glmatrixmode(gl_modelview); glmaterialfv(gl_front_and_back, GL_AMBIENT, plasticambientcolor);

16 2 Grundlegende Verfahren und Techniken 11 glmaterialfv(gl_front_and_back, GL_DIFFUSE, plasticcolor); glmaterialfv(gl_front_and_back, GL_SPECULAR, plastichighlight); glmaterialf(gl_front_and_back, GL_SHININESS, plasticexponent); glpushmatrix(); glscalef(torsowidth, torsoheight, torsowidth); glutsolidcube(1.0); glpopmatrix(); void movetorso(float Wx, float Wy, float Wz, float Tx, float Ty, float Tz) { glmatrixmode(gl_modelview); glpushmatrix(); glloadidentity(); glrotatef(wx, 1.0, 0.0, 0.0); glrotatef(wy, 0.0, 1.0, 0.0); glrotatef(wz, 0.0, 0.0, 1.0); gltranslatef(tx, torsoheight+ty, Tz); glgetfloatv(gl_modelview_matrix, torso.m); glpopmatrix(); void drawbein() { float beinheight = 0.6, beinradius = 0.2; glmatrixmode(gl_modelview); glmaterialfv(gl_front_and_back, GL_AMBIENT, plasticambientcolor); glmaterialfv(gl_front_and_back, GL_DIFFUSE, plasticcolor); glmaterialfv(gl_front_and_back, GL_SPECULAR, plastichighlight); glmaterialf(gl_front_and_back, GL_SHININESS, plasticexponent); glpushmatrix(); glscalef(beinwidth, beinheight, beinwidth); glutsolidcube(1.0); glpopmatrix(); void movebein(float trans) { glmatrixmode(gl_modelview); glpushmatrix(); glloadidentity(); gltranslatef(0.0, -beinheight + trans, 0.0); glgetfloatv(gl_modelview_matrix, bein.m); glpopmatrix(); void drawfuss() { glmatrixmode(gl_modelview); glmaterialfv(gl_front_and_back, GL_AMBIENT, plasticambientcolor); glmaterialfv(gl_front_and_back, GL_DIFFUSE, plasticcolor); glmaterialfv(gl_front_and_back, GL_SPECULAR, plastichighlight); glmaterialf(gl_front_and_back, GL_SHININESS, plasticexponent); glpushmatrix();

17 2 Grundlegende Verfahren und Techniken 12 glscalef(fusswidth, fussheight, fusswidth); glutsolidcube(1.0); glpopmatrix(); void movefuss(float trans) { glmatrixmode(gl_modelview); glpushmatrix(); glloadidentity(); gltranslatef(0, -fussheight/2.0-beinheight/2.0+trans, 0); glgetfloatv(gl_modelview_matrix, fuss.m); glpopmatrix(); void drawkopf() { glmatrixmode(gl_modelview); glmaterialfv(gl_front_and_back, GL_AMBIENT, chromeambientcolor); glmaterialfv(gl_front_and_back, GL_DIFFUSE, chromecolor); glmaterialfv(gl_front_and_back, GL_SPECULAR, chromehighlight); glmaterialf(gl_front_and_back, GL_SHININESS, chromeexponent); glpushmatrix(); glscalef(kopfwidth, kopfwidth, kopfwidth); glcolor3f(0.4, 0.0, 0.0); glutsolidcube(1.0); glpopmatrix(); void movekopf(float rot) { glmatrixmode(gl_modelview); glpushmatrix(); glloadidentity(); gltranslatef(0, (torsoheight+kopfwidth)/2.0, 0); glrotatef(rot, 0.0, 1.0, 0.0); glgetfloatv(gl_modelview_matrix, kopf.m); glpopmatrix(); void drawarm() { glmatrixmode(gl_modelview); glmaterialfv(gl_front_and_back, GL_AMBIENT, chromeambientcolor); glmaterialfv(gl_front_and_back, GL_DIFFUSE, chromecolor); glmaterialfv(gl_front_and_back, GL_SPECULAR, chromehighlight); glmaterialf(gl_front_and_back, GL_SHININESS, chromeexponent); glpushmatrix(); glscalef(armwidth, armlength, armwidth); glcolor3f(0.4, 0.0, 0.0); glutsolidcube(1.0); glpopmatrix(); void movelarm(float rot) { glmatrixmode(gl_modelview);

18 2 Grundlegende Verfahren und Techniken 13 glpushmatrix(); glloadidentity(); // Zuerst den Schwerpunkt des Arms an die Schulter, dann // drehen und dann Arm richtig positionieren! gltranslatef(-(torsowidth+armwidth)/2.0,torsoheight/2.0,0.0); glrotatef(-rot, 1.0, 0.0, 0.0); gltranslatef(0.0, -armlength/2.0, 0.0); glgetfloatv(gl_modelview_matrix, larm.m); glpopmatrix(); void moverarm(float rot) { glmatrixmode(gl_modelview); glpushmatrix(); glloadidentity(); // Zuerst den Schwerpunkt des Arms an die Schulter, dann // drehen und dann Arm richtig positionieren! gltranslatef((torsowidth+armwidth)/2.0, torsoheight/2.0,0.0); glrotatef(rot, 1.0, 0.0, 0.0); gltranslatef(0.0, -armlength/2.0, 0.0); glgetfloatv(gl_modelview_matrix, rarm.m); glpopmatrix(); void drawdaumen() { glmatrixmode(gl_modelview); glmaterialfv(gl_front_and_back, GL_AMBIENT, plasticambientcolor); glmaterialfv(gl_front_and_back, GL_DIFFUSE, plasticcolor); glmaterialfv(gl_front_and_back, GL_SPECULAR, plastichighlight); glmaterialf(gl_front_and_back, GL_SHININESS, plasticexponent); glpushmatrix(); glscalef(daumenwidth, daumenlength, daumenwidth); glcolor3f(0.0, 0.8, 0.0); glutsolidcube(1.0); glpopmatrix(); void moveldaumen(float trans) { glmatrixmode(gl_modelview); glpushmatrix(); glloadidentity(); gltranslatef(-(armwidth-daumenwidth)/2.0, -(armlength+daumenlength)/2.0, 0.0); glgetfloatv(gl_modelview_matrix, ldaumen.m); glpopmatrix(); void moverdaumen(float trans) { glmatrixmode(gl_modelview); glpushmatrix(); glloadidentity(); gltranslatef((armwidth-daumenwidth)/2.0, -(armlength+daumenlength)/2.0, 0.0);

19 2 Grundlegende Verfahren und Techniken 14 glgetfloatv(gl_modelview_matrix, rdaumen.m); glpopmatrix(); 4. Verändern Sie Ihren Code für das Sonnensystem so, dass Sie einen Szenengraphen und Pre- Order Traversal verwenden, um die Hierarchie zu implementieren! Hier ein Auszug aus dem Quelltext der Lösung. Bei den Downloads zu diesem Kapitel finden Sie die komplette Lösung! // Den Szenengraphen anlegen void solarsystem(void) { sun.draw = drawsun; sun.sibling = 0; sun.child = &earth; movesun(); earth.draw = drawearth; earth.sibling = 0; earth.child = &moon; moveearth(); moon.draw = drawmoon; moon.sibling = 0; moon.child = 0; movemoon(); void drawsun() { glmatrixmode(gl_modelview); glcolor3fv(suncolor); glpushmatrix(); glutwiresphere(sunradius, 20, 16); glpopmatrix(); void movesun() { glmatrixmode(gl_modelview); glpushmatrix(); glloadidentity(); glgetfloatv(gl_modelview_matrix, sun.m); glpopmatrix(); void drawearth() { glcolor3fv(earthcolor); glmatrixmode(gl_modelview); glpushmatrix(); glutwiresphere(earthradius, 20, 16); glpopmatrix(); void moveearth(void) { glmatrixmode(gl_modelview);

20 2 Grundlegende Verfahren und Techniken 15 glcolor3fv(earthcolor); glpushmatrix(); glloadidentity(); glrotatef( (GLfloat) year, 0.0, 1.0, 0.0); gltranslatef( orbit, 0.0, 0.0); glrotatef( (GLfloat) day, 0.0, 1.0, 0.0); glgetfloatv(gl_modelview_matrix, earth.m); glpopmatrix(); void drawmoon() { glmatrixmode(gl_modelview); glcolor3fv(mooncolor); glpushmatrix(); glutwiresphere(moonradius, 20, 16); glpopmatrix(); void movemoon(void) { glmatrixmode(gl_modelview); glpushmatrix(); glloadidentity(); // Die Transformation für die Tagesdrehung der Erde // aus der Transformationsmatrix für den Mond wieder herausnehmen! glrotatef(-(glfloat) day, 0.0, 1.0, 0.0); // Jetzt die Transformationen für den Mond glrotatef(-(glfloat) month, 0.0, 1.0, 0.0); gltranslatef(moonorbit, 0.0, 0.0); glgetfloatv(gl_modelview_matrix, moon.m); glpopmatrix(); void init(void) { /* Hintergrundfarb-Anteile in RGBA, Default ist weisser Hintergrund */ glclearcolor(0.0, 0.0, 0.0, 1.0); // OpenGL initialisieren: z-buffer; glenable(gl_depth_test); glcullface(gl_back); glenable(gl_cull_face); glclear(gl_color_buffer_bit GL_DEPTH_BUFFER_BIT); about(); // Den Graphen aufbauen solarsystem(); /* display-callback für GLUT */ void display(void) { glclear(gl_color_buffer_bit GL_DEPTH_BUFFER_BIT);

21 2 Grundlegende Verfahren und Techniken 16 glmatrixmode(gl_modelview); glloadidentity(); glulookat(0.0, 10.0, 15.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0); scenegraphtraversal(&sun); glutswapbuffers(); Hierarchien in VRML und Alias MAYA 1. Vervollständigen Sie den VRML97-Quelltext für das Robotermodell und testen Sie die Datei. Verändern Sie dabei insbesondere manuell die Winkel des Schultergelenks, und überprüfen Sie die Korrektheit der Hierarchie! Die WRL-Datei zum Ansehen finden Sie bei den Downloads zu diesem Kapitel. #VRML V2.0 utf8 WorldInfo { title "Ein Roboter in VRML97" info ["Copyright (c) 2005 Manfred Brill", "Visualisierungslabor der FH Kaiserslautern", "Computergrafik - Ein anwendungsorientiertes Lehrbuch, 2. Auflage", "Published by Hanser" "All rights reserved" ] # Examine NavigationInfo { type "EXAMINE" DEF Kamera1 Viewpoint { fieldofview 0.4 position orientation DEF Kamera2 Viewpoint { fieldofview 0.4 position orientation # Boden DEF Boden Transform { translation children Shape { geometry Box { size appearance Appearance {material Material {diffusecolor # Der Roboter DEF Roboter Transform { # Die globalen Positionsparameter des Roboters translation 0 0 0

22 2 Grundlegende Verfahren und Techniken 17 rotation children [ # Torso DEF Torso Transform { translation children Shape { geometry Box { size appearance Appearance { material Material {diffusecolor # Bein DEF Bein Transform { translation # Freiheitsgrad Translation in y-richtung; # Ruhestellung y=0.3 children [ # Der Schenkel DEF Schenkel Transform { children Shape { geometry Cylinder { height 0.6 radius 0.1 appearance Appearance { material Material {diffusecolor # Fuss ] DEF Fuss Transform { translation # Kopf DEF Kopf Transform { translation rotation # Kein Freiheitsgrad, # Modellierparameter children Shape {geometry Box {size appearance Appearance { material Material {diffusecolor # Freiheitsgrad der Rotations des Kopfes # um die y-achse children Shape {geometry Box { size appearance Appearance { material Material {diffusecolor # Linker Arm DEF ArmLinks Transform { center translation rotation # Freiheitsgrad: Rotation um die x-achse. children [ # Der Arm DEF UnterArmLinks Transform { children Shape {geometry Box

23 2 Grundlegende Verfahren und Techniken 18 ] {size appearance Appearance {material Material {diffusecolor # Der Daumen DEF DaumenLinks Transform { translation children Shape { geometry Box {size appearance Appearance {material Material {diffusecolor # Der linke bewegliche Finger DEF FingerLinks Transform { translation # Freiheitsgrad: # Verschiebung in x children Shape { geometry Box {size appearance Appearance {material Material { diffusecolor # Rechter Arm DEF ArmRechts Transform { center translation rotation # Freiheitsgrad: # Rotation um die x-achse. children [ # Der Arm DEF UnterArmRechts Transform { children Shape {geometry Box {size appearance Appearance {material Material {diffusecolor # Der rechte bewegliche Finger DEF FingerRechts Transform { translation # Freiheitsgrad: # Verschiebung in x # Der rechte Daumen children Shape { geometry Box {size appearance Appearance {material Material {diffusecolor

24 2 Grundlegende Verfahren und Techniken 19 ] ] DEF DaumenRechts Transform { translation # children Shape { geometry Box {size appearance Appearance {material Material {diffusecolor Erstellen Sie ein Modell des Roboters in der Alias MAYA PLE! Testen Sie insbesondere die Korrektheit der Hierarchie, indem Sie verschiedene Körperteile auswählen und transformieren! Die PLE-Datei finden Sie bei den Downloads zu diesem Kapitel! Die virtuelle Kamera in OpenGL 1. Erstellen Sie ein Programm, das mit der Funktion glutwirecube einen Würfel ausgibt. Stellen Sie die Kamera so ein, dass die Abbildungen mit Orthogonal- und Zentralprojektionen aus Abschnitt 2.2 reproduziert werden! Die Orthogonalprojektionen erhält man durch glortho und einer entsprechenden Positionierung des Objekts, entweder durch gltranslatef, glrotatef oder durch glulookat. Die Abbildung 2.23 wird reproduziert durch void view(void) { // Kameratransformation glmatrixmode(gl_modelview); glloadidentity(); glulookat(4.0, 4.0, 0.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0); und glmatrixmode(gl_projection); glortho(-2.0, 2.0, -2.0, 2.0, 0.5, 20.0); In Abbildung 2.7 sehen Sie eine entsprechende Ausgabe, die den Abbildungen 2.23 und 2.24 im Buch entsprechen. Auch die Bilder zur Zentralperspektive können analog mit gluperspective und entsprechenden Drehungen (für Zwei- und Dreipunktperspektive) erzeugt werden. In Abbildung 2.8 sehen Sie die Ein- und die Zweipunktperspektive aus dem Buch. Bei den Downloads zu diesem Kapitel finden Sie alle Quelltexte. 2. Erstellen Sie ein Programm, das mit der Funktion glutwirecube einen Würfel ausgibt. Stellen Sie die Kamera so ein, dass die schiefwinkligen Projektionen aus Abschnitt 2.2 reproduziert werden!

25 2 Grundlegende Verfahren und Techniken 20 Abbildung 2.7: OpenGL-Ausgabe analog zu den Abbildungen 2.23 und 2.24 Abbildung 2.8: OpenGL-Ausgabe analog zu den Abbildungen 2.31 und 2.33 Schiefwinklige Projektionen können in OpenGL nicht direkt erzeugt werden. Der Scherungsanteil in der dritten Spalte 1 0 cos(α) 0 tan(β) 0 1 sin(α) 0 tan(β) sin(β) muss manuell in die PROJECTION-Matrix geladen werden. Das kann man mit dem folgenden Quelltext durchführen: int i; float m[16]; glmatrixmode(gl_projection); glortho(-2.0, 2.0, -2.0, 2.0, 0.1, 20.0); // Scherung laden! for (i=0; i<16; i++) m[i] = (i%5 ==0)? 1.0 : 0.0; // Einheitsmatrix // Scherungsanteil manuell setzen

26 2 Grundlegende Verfahren und Techniken 21 float alpha = 0.785; //float alpha = ; m[8] = -0.5 * cos(alpha); m[9] = -0.5 * sin(alpha); glmultmatrixf(m); Für die verschiedenen Winkelwerte für alpha und beta können dann beliebige Kavalier- und Kabinettprojektionen reproduziert werden. In Abbildung 2.9 sehen Sie zwei Kavalier- und Kabinett-Projektionen aus Abbildung 2.26 und 2.27 in OpenGL. Abbildung 2.9: Kavalier- und Kabinettprojektionen in OpenGL 3. Erstellen Sie eine Funktion pilotview in OpenGL, die eine Sicht eines Piloten oder Fahrers in einem Simulator unterstützen soll. Die Funktion soll folgende Eingaben besitzen: die Position des Piloten und die drei Winkel Gierungs-, Neigungs- und Rollwinkel. Der Rollwinkel entspricht der Rotation um die z-achse, falls das Flugzeug wie in Abbildung 2.10 orientiert ist; der Neigungswinkel ist die Rotation um die x-achse. Testen Sie Ihre Funktion, indem Sie die Winkel interaktiv verändern! Abbildung 2.10: Ein Flugzeugmodell und seine Orientierung Die in der Aufgabenstellung beschriebenen Größen müssen im lokalen Koordinatensystem des Flugzeugs interpretiert werden, das auch in Abbildung 2.10 dargestellt wurde. Die Sichtrichtung des Piloten ist zu Beginn des Programms identisch mit der Default-Sichtrichtung in OpenGL wenn die Defaultanordnung des Flugzeugs so ist, dass der Pilot entlang der negativen z-achse schaut. Dadurch ergeben sich die Vorzeichen in den im Quelltext angegebenen Rotationen das sollten Sie sich unbedingt klar machen.

27 2 Grundlegende Verfahren und Techniken 22 Die Position des Flugzeugs ist auf den Variablen DRIVE_X, DRIVE_Y und DRIVE_Z abgelegt. // Es wird davon ausgegangen, dass die Projektionsmatrix (Orthogonal- oder // Zentralprojektion) bereits richtig eingestellt ist! void pilot(void) { glmatrixmode(gl_modelview); glloadidentity(); glrotatef(roll, 0.0, 0.0, 1.0); glrotatef(gierung, 0.0, 1.0, 0.0); glrotatef(neigung, 1.0, 0.0, 0.0); gltranslatef(-drive_x, -DRIVE_Y, -DRIVE_Z); So weit, so gut. Diese Lösung haben Sie sicher auch im red book gefunden. Wenn Sie jetzt eine Taste mit Vorwärts-Fahren belegen und entsprechend die z-koordinate DRIVE_Z verändern, dann erwarten Sie sicher, dass wir in die Blickrichtung fliegen. Dies passiert aber, ohne dass wir den Code weiter verändern, nicht. Die z-koordinate der Flugzeugposition ist zwar richtig - aber Sie bewegen sich in Richtung der Weltkoordinatenachsen. Die Veränderung der Flugzeugposition verläuft aber entlang der lokalen Koordinaten des Flugzeugs! Die Situation eines aus der z-achse gedrehten Flugzeugs in der xz-ebene sehen Sie in den Abbildungen 2.11 und x x z Abbildung 2.11: Bewegung entlang der Weltkoordinatenachsen z Abbildung 2.12: Bewegung entlang der lokalen Achsen des Flugzeugs In Abbildung 2.11 wird das Flugzeug entlang der z-achse nach Vorne bewegt. Richtig ist die Bewegung in Abbildung 2.12; die Bewegung muss entlang der lokalen z-achse des Flugzeugs erfolgen. Fragt sich, wie man möglichst schnell bei einer Bewegung nach Vorne diese lokale z-achse berechnen kann. Ist das Flugzeug zu Beginn so aufgestellt, dass die positive Fahrtrichtung mit der OpenGL-Sichtrichtung entlang der negativen z-achse übereinstimmt, dann könnten Sie alle Rotationen protokollieren und auf den Vektor (0, 0, 1) T anwenden. Hier kommt wieder das Konzept der Current Transformation Matrix CTM ins Spiel. Das Bild der z-achse unter allen Rotationen, die durchgeführt wurden, steht auf der dritten Spalte der aktuellen CTM. Diese fragen wir ab und verwenden diese, um nach Vorne und Zurück zu fahren: void driveforward(void) { GLfloat m[16]; glmatrixmode(gl_modelview); glpushmatrix(); glloadidentity(), glrotatef(-roll, 0.0, 0.0, 1.0); glrotatef(-gierung, 0.0, 1.0, 0.0); glrotatef(-neigung, 1.0, 0.0, 0.0); // Die CTM abgefragen glgetfloatv(gl_modelview_matrix, m); glpopmatrix();

28 2 Grundlegende Verfahren und Techniken 23 // Die gesuchte Fahrtrichtung ist die negierte dritte // Spalte der Matrix m. // Faktor MOVE verwenden, um die "Geschwindigkeit" etwas abzubremsen; // dieser kann ebenfalls interaktiv verändert werden, um ein // "Gaspedal" zu realisieren. DRIVE_X -= MOVE*m[8]; DRIVE_Y -= MOVE*m[9]; DRIVE_Z -= MOVE*m[10]; void drivebackward(void) { GLfloat m[16]; glmatrixmode(gl_modelview); glpushmatrix(); glloadidentity(), glrotatef(-roll, 0.0, 0.0, 1.0); glrotatef(-gierung, 0.0, 1.0, 0.0); glrotatef(-neigung, 1.0, 0.0, 0.0); // Die CTM abgefragen glgetfloatv(gl_modelview_matrix, m); glpopmatrix(); // Die gesuchte Fahrtrichtung ist die negierte dritte Spalte // der Matrix m. DRIVE_X += MOVE*m[8]; DRIVE_Y += MOVE*m[9]; DRIVE_Z += MOVE*m[10]; Die Rechenarbeit macht also die Grafik-Pipeline. Ist diese zu langsam, was unwahrscheinlich ist, können Sie die Berechnung natürlich auch per Software mit Matrixarithmetik ausführen. Ganz wichtig ist, dass Sie die Berechnung in glpushmatrix() und glpopmatrix() einklammern Sie wollen die Bewegung ja nicht wirklich durchführen, sondern nur das Berechnungsergebnis verwenden. 4. Erstellen Sie eine Funktion examine in OpenGL, die eine Sichtdefinition für einen Betrachter realisiert, der sich immer um ein Objekt bewegt. Der Blickpunkt soll dabei immer im Objektzentrum liegen und der Augpunkt eine gegebene Distanz von diesem Zentrum haben. Testen Sie Ihre Funktion, indem Sie ein Objekt im Ursprung ausgeben und die Winkel und den Abstand des Betrachters vom Ursprung interaktiv verändern! Die Lage der Kamera für ein im Ursprung fixiertes Objekt kann durch Kugelkoordinaten beschrieben werden. Dazu werden die globalen Variablen RADIUS, AZIMUTH und ELEVATION und entsprechende Inkremente eingeführt. Als Default wird die OpenGL-Sicht entlang der negativen z-achse aus einer Distanz von 5 Einheiten eingestellt. examine realisiert alle Transformationen im MODELVIEW-Stack; der PROJECTION-Stack dient ausschließlich zur Einstellung von Parallel- bzw. Zentralprojektion. Denken Sie bei der Interpretation des folgenden Quelltexts an die Reihenfolge der Transformationen! // Es wird davon ausgegangen, dass die Projektionsmatrix (Orthogonal- oder // Zentralprojektion) bereits richtig eingestellt ist! void examine(void) { glmatrixmode(gl_modelview); glloadidentity(); gltranslatef(0.0, 0.0, -RADIUS);

29 2 Grundlegende Verfahren und Techniken 24 glrotatef(-elevation, 1.0, 0.0, 0.0); glrotatef(azimuth, 0.0, 1.0, 0.0); Clipping in OpenGL 1. Modifizieren Sie das vorgegebene Programm so, dass es möglich ist, eine Clipping-Ebene nicht nur frei im Raum zu bewegen, sondern auch an allen drei Koordinatenachsen zu drehen! Verwenden Sie hierzu Euler-Winkel. Die Verschiebung und Drehung sollen interaktiv über die Tastatur gesteuert werden können! Ein entsprechendes Beispielprogramm finden Sie in den Quellcodes zu dieser Fallstudie.

30 Kapitel 3 Geometrisches Modellieren mit Kurven und Flächen 3.2 Parameterkurven 1. Skizzieren Sie den Verlauf der Kurve (t, 0) 0 t < 1, K(t) = (1, 0) + (t 1)( 1 2, 3 2 ) 1 t < 2,. ( 2 1, 3 2 ) + (t 2)( 2 1, 3 2 ) 2 t < 3 Alle Kurvenstücke sind linear; als Bild ergibt sich Abbildung 3.1. Abbildung 3.1: Die Lösung für Aufgabe 1 2. Weisen Sie nach, dass die Kurve x(t) = a 1 t t, y(t) = 2a 1 + t 1 + t einen Teil eines Kreises realisiert, falls als Parameterintervall [0, ) verwendet wird! Wo liegt der Mittelpunkt dieses Kreises, wie groß ist der Radius? Die Punkte (x(t), y(t)) liegen alle auf einem Kreis; denn es ist x(t) 2 + y(t) 2 = a 2 (1 t)2 (1 + t) 2 + 4a2 t (1 + t) 2 = a2 2ta 2 + t 2 a 2 + 4a 2 t (1 + t) 2 = a 2.

31 3 Geometrisches Modellieren mit Kurven und Flächen 26 Dann ist auch klar, dass der Ursprung der Mittelpunkt ist, der Radius ist a. Für t = 0 erhält man den Punkt (a, 0); die Grenzwerte für t sind gegeben als lim a 1 t t = a, lim t 1 + t 2a t 1 + t = 0. Dann stellt die gegebenen Kurve einen Halbkreis dar, beginnend bei (a, 0); asymptotisch bis ( a, 0); dieser Punkt wird allerdings nie erreicht. 3. Skizzieren Sie den Verlauf der Kurve, die durch r = 1 + cos (t), ϕ = t, t [0, 2π) gegeben ist! Bestimmen Sie die Bogenlänge! Die Lösung ist die sogenannte Kardioide in Abbildung 3.2. Die Kardioide ist der geometrische Ort, der von einem Punkt eines Kreises von Radius 2a beschrieben wird, der ohne zu gleiten auf einem anderen Kreis vom Radius 2a rollt. In der Aufgabe war a = 2 1. Als Bogenlänge ergibt das Integral den Wert Abbildung 3.2: Die Kardioide als Lösung von Aufgabe 3 4. Berechnen Sie die Tangenten an eine Ellipse für t = 0, 4 π, 2 π, π. Skizzieren Sie die Ellipse, die Tangenten und die entsprechenden Normalenvektoren! Die Tangenten für eine Ellipse mit den Radien R 1, R 2 sind gegeben durch ( 0 t 0 = R 2 ), t π 4 = 1 2 ( ) R1 2, t π R 2 2 = ( ) ( ) R1 0, t 0 π =. R 2 Die Skizze sehen Sie in Abbildung 3.3. Abbildung 3.3: Die Ellipse, Tangenten und Normalen als Lösung von Aufgabe 4 5. Skizzieren Sie den Verlauf der Kurve K(t) = (sin t, sin t cos t), t [0, 2π]. Tragen Sie für t = 0, π 2, π, 3π 2, 2π die Tangenten und Normalen auf! Bestimmen Sie die Krümmung κ 2 und die Bogenlänge!

32 3 Geometrisches Modellieren mit Kurven und Flächen 27 Die Lösung ist die sogenannte Lemniskate von Gerono; die Skizze sehen Sie in Abbildung 3.4. Die Krümmung κ 2 ist gegeben durch ( ) κ 2 (t) = 4 cos2 t sin t + sin t cos 2 t sin 2 t ). (cos 2 t + (cos 2 t sin 2 3 t) 2 2 Abbildung 3.5 zeigt den Verlauf der Krümmung. Die Bogenlänge ist durch das Integral gegeben als 6, Abbildung 3.4: Die Lemniskate von Gerono als Lösung der Aufgabe 5 Abbildung 3.5: Die Krümmung κ 2 Lemniskate von Gerono in Aufgabe 5. der Die Tangenten und Normalen finden Sie in der Abbildung 3.4 und in Tabelle 3.1. Tabelle 3.1: Die unnormalisierten Tangenten und Normalen an die Lemniskate in Aufgabe 5 Parameterwerte t ( = ) 0 t ( = 2 π ) ( t = π ) t ( = 3π ) 2 ( t = ) 2π Tangenten ( 1 ) ( 1 ) ( 1 ) ( 1 ) ( 1 ) Normalen Die Ellipse in Abbildung 3.3, der Lösung von Aufgabe 4, ist gegeben als der geometrische Ort der Punkte, für die die Summe der Abstände zu zwei gegebenen Brennpunkten F 1 und F 2 konstant ist. Die Lemniskate von Bernoulli ist gegeben als geometrischer Ort aller Punkte, für die das Produkt der Abstände zu den Brennpunkten konstant ist. Allgemein ist eine Lemniskate von Bernoulli gegeben durch die Parameterdarstellung ( ) a cos t a sin t cos t K a (t) =, 1 + sin t2 1 + sin t 2. Dabei liegen die beiden Brennpunkte dann in (±a 2, 0). 6. Bestimmen Sie das Frenet sche Bezugssystem für die logarithmische Spirale K(t) = aebt cos t ae bt sin t! ct Eine grafische Darstellung der logarithmischen Spirale (ae bt cos t, ae bt sin t) sehen Sie in Ab-

33 3 Geometrisches Modellieren mit Kurven und Flächen 28 Abbildung 3.6: Die logarithmische Spirale im Parameterintervall [0; 6π] für Aufgabe 6 Abbildung 3.7: Die Schraubenlinie für die logarithmische Spirale im Parameterintervall [0; 6π] für Aufgabe 6 bildung 3.6; die Schraubenlinie darüber ist durch (ae bt cos t, ae bt sin t, ct) gegeben; ihr Bild finden Sie in Abbildung 3.7. Für das Frenet sche Bezugssystem ergibt sich: 1 v(t) = aebt (b cos t sin t) c 2 + a 2 (1 + b 2 )e 2bt ae bt (cos t + b sin t), c c(2b cos t + (b 1 2 1) sin t) b(t) = (1 + b) c((b 2 1) cos t 2b sin t), c 2 + a 2 e 2bt a(1 + b 2 )e bt n(t) = b v. 3.3 Polynomiale Kurven 1. Welcher Kegelschnitt ist durch die implizite Darstellung x 2 + 2xy + y 2 + 3x 6y + 7 = 0 gegeben? Skizzieren Sie den Kurvenverlauf! Die Kurve ist eine Parabel, denn die Diskriminante ist Null. In Abbildung 3.8 finden Sie eine Skizze. 2. Rechnen Sie nach, dass die rationalen quadratischen Polynome wirklich eine affine Kombination der Kontrollpunkte darstellen! Die Formel kann geschrieben werden als 3 i=1 λ ip i, dabei sind die Koeffizienten gegeben durch λ 1 = λ 2 = λ 3 = Diese addieren sich offensichtlich zu 1 auf. (1 t) 2 (1 t) 2 + 2wt(1 t) + t 2, 2wt(1 t) (1 t) 2 + 2wt(1 t) + t 2, t 2 (1 t) 2 + 2wt(1 t) + t 2.

34 3 Geometrisches Modellieren mit Kurven und Flächen 29 Abbildung 3.8: Der Kegelschnitt für Aufgabe 1 3. Der Kreis kann als rationale Kurve mit den Kontrollpunkten P 0, P 1 und P 2 als Parameterkurve dargestellt werden; dabei ist das Gewicht w = cos 60, dem Innenwinkel eines gleichwinkligen Dreiecks, wie in Abbildung 3.9. Positionieren Sie die Kontrollpunkte wie in Abbildung 3.9. Insgesamt erhalten Sie drei Kreissegmente. Skizzieren Sie den Kurvenverlauf für jeweils 5 Punkte pro Segment. Vergleichen Sie diese Darstellung mit der Parameterdarstellung mit Hilfe von trigonometrischen Funktionen! P 1 P 0 P 2 Abbildung 3.9: Gleichwinkliges Dreieck und Inkreis Das Gewicht ist für alle drei Kurvenstücke immer w = cos 60 = 0, 5. Die Segmente ergeben sich durch die folgenden Kontrollpunkte: P 0, D 2 und P 2, erstreckt sich von P 0 bis P 2 ; P 2, D 1 und P 1, erstreckt sich von P 2 bis P 1 ; P 1, D 0 und P 0, erstreckt sich von P 1 bis P 0. Für das Dreieck ist jedes gleichwinklige Dreieck zu verwenden. Eine mögliche Wahl für das Dreieck ist D 0 = (0, 0), D 1 = (1, 0) und D 2 = ( 1 2, 3 2 ). Wenn Sie an den Punkten P i jeweils die Tangenten und Krümmungen bestimmen, dann erkennen Sie, dass der mit den rationalen Polynomen dargestellte Kreis nur C 1 - bzw. G 1 -stetig ist. Und er ist nicht nach seiner Bogenlänge parametrisiert! Eine grafische Darstellung der Kurve mit den Kontrollpunkten finden Sie in Abbildung 3.10 auf Seite Wie viele Multiplikationen benötigt die Auswertung eines Polynoms p(x) vom Grad m in Monom-Darstellung, d. h. p(x) = m i=0 a i M i (x), a i R, t [a, b]? Wie viele Multiplikationen benötigt man bei Anwendung des Horner-Schemas?

35 3 Geometrisches Modellieren mit Kurven und Flächen 30 D 2 P 0 P 2 D 0 P 1 D 1 Abbildung 3.10: Der Kreis als rationale Kurve in Aufgabe 3 mit den Kontrollpunkten Monom-Darstellung: m 1 Multiplikationen für die Berechnung der Potenzen und m Multiplikationen für die Berechnung der Summanden; insgesamt damit 2m 1 Multiplikationen (m > 0). Horner-Schema: m Multiplikationen. 3.4 Bézier-Kurven und -Kurvensegmente 1. Zeigen Sie, wie die Darstellung eines Bernstein-Polynoms B m i (t) über dem Intervall t [0, 1] mittels der affinen Parameter-Transformation s = a +(b a)t in die Darstellung eines Bernstein- Polynoms B m i (s) über dem Intervall s [a, b] übergeht! Es gilt s = a + (b a)t, also t = s a b a. Weiterhin ist Bm i (t) = ( m i )ti (1 t) m i. Deshalb gilt was zu zeigen war. B i m (s) = Bi m (t) = Bi m ( s a b a ) ( ) ( ) m s a i ( = 1 s a ) m i i b a b a ( ) ( ) m s a i ( ) b s m i = i b a b a ( ) m (s a) i (b s) = m i i (b a) i (b a) ( ) m i 1 m = (b a) m (s a) i (b s) m i, i 2. Zeigen Sie die Eigenschaften 2 und 6 der Bernstein-Polynome! Eigenschaft 2: Die Bernstein-Polynome bilden eine Teilung der Eins, d. h. für alle t [a, b] gilt m i=0 Bm i (t) = 1. Die binomische Reihe lautet (a + b) n = n i=0 ( ) n a i b n i. i

36 3 Geometrisches Modellieren mit Kurven und Flächen 31 Damit gilt m Bi m (t) = i=0 = m i=0 1 (b a) m 1 (b a) m m i=0 ( m i ( m i 1 = (b a)m (b a) m = 1. ) (t a) i (b t) m i ) (t a) i (b t) m i Eigenschaft 6: Ein Bernstein-Polynom vom Grad m lässt sich als Konvex-Kombination von Bernstein-Polynomen vom Grad m 1 darstellen. Für das Intervall [0, 1] ist Bi m (t) = t B m 1 i 1 (t) + (1 t) Bm 1 i (t) zu zeigen. Für den Binomialkoeffizienten gilt ( ) n + 1 = k ( ) n + k 1 Damit ist ( ) m Bi m (t) = t i (1 t) m i i {( ) ( ) m 1 m 1 = + t i (1 t) m i i i 1 ( ) ( m 1 m 1 = t i (1 t) m i + i i 1 ( ) m 1 = (t 1) t i (1 t) (m 1) i + t i = (t 1) B m 1 i (t) + t B m 1 i 1 (t). ( ) n k ) t i (1 t) m i ( ) m 1 t i 1 (1 t) (m 1) (i 1) i 1 3. Zeigen Sie die Ableitungsformel (Eigenschaft 7) der Bernstein-Polynome über dem Intervall [a, b] für j = 1, 2!

37 3 Geometrisches Modellieren mit Kurven und Flächen 32 Erste Ableitung, j = 1: Per Hand (Produktregel, Kettenregel) folgt d dt Bm i (t) = d { ( 1 m )(t dt (b a) m a) i (b t) m i i ( ) 1 m d = {(t (b a) m a) i (b t) m i i dt 1 m! = (b a) m (m i)!i! {i(t a)i 1 (b t) m i = = = = Für j = 1 folgt per Formel: d j dt j Bm i (t) = +(t a) i (m i)(b t) m i 1 ( 1) 1 m(m 1)! (b a) m (m i)!(i 1)! (t a)i 1 (b t) (m 1) (i 1) 1 m(m 1)! (b a) m (m i 1)!i! (t a)i (b t) m i 1 m (b a) m { (m 1)! (m i)!(i 1)! (t a)i 1 (b t) (m 1) (i 1) (m 1)! (m 1 i)!i! (t a)i (b t) m i 1 ( ) m (b a) { 1 m 1 (b a) m 1 (t a) i 1 (b t) (m 1) (i 1) i 1 ( ) 1 m 1 (b a) m 1 (t a) i (b t) m 1 i i m (b a) {Bm 1 i 1 1 (b a) j m! (m j)! 1 m! (b a) 1 (t) Bm 1 i (t). j l=0( 1) l( ) j B m j l i j+l (t) 1 (m 1)! l=0( 1) l( 1 l ( ) m 1 b a {( 1)0 0 m b a {Bm 1 i 1 (t) Bm 1 i (t) Zweite Ableitung, j = 2: d dt B m i (t) erneut nach t ableiten. ) B m 1 i 1+l (t) B m 1 i 1+0 (t) + ( 1)1 ( 1 1 ) B m 1 i 1+1 (t) 4. Verifizieren Sie die Umschreibung der Darstellung unseres numerischen Beispiels von Monom-Basis in Bernstein-Basis mittels der in Eigenschaft 8 der Bernstein-Polynome erläuterten Basistransformation! Wir müssen die Koeffizienten der Monombasis in die Koeffizienten der Bernstein-Basis umrechnen. Dies rechnen wir für unser numerisches Beispiel separat für die x- und die y-koordinaten. Dabei gilt (b 0, b 1, b 2, b 3 ) = (a 0, a 1, a 2, a 3 ) A 1 mit A 1 = 0 1/3 2/ /

38 3 Geometrisches Modellieren mit Kurven und Flächen 33 x-koordinaten: y-koordinaten: (b 0, b 1, b 2, b 3 ) = (0, 6, 13.5, 8.5) 0 1/3 2/ / = (0, 2, 8.5, 11) (b 0, b 1, b 2, b 3 ) = (0, 13.5, 7.5, 4) 0 1/3 2/ / = (0, 4.5, 6.5, 2) 5. Verifizieren Sie die Formel für die erste Ableitung eines Bézier-Kurvensegments auf dem Intervall [0, 1] nach dem Parameter t! Zu zeigen ist: Es ist d dt K(t) = = = d dt m i=0 m i=0 { m m 1 d dt K(t) = m (b i+1 b i ) B m 1 i (t). b i Bi m (t) i=0 b i d dt Bm i (t) mb i {B m 1 i 1 i=0 (t) Bm 1 i (t) = m{ b 0 B0 m 1 (t) + b 1 B0 m 1 (t) b 1 B1 m 1 (t) + b 2 B1 m 1 (t) b 2 B2 m 1 (t) b m 1 Bm 2 m 1(t) b m 1Bm 1 m 1(t) + b mbm 1 m 1(t) = m{(b 1 b 0 )B0 m 1 (t) + (b 2 b 1 )B1 m 1 (t) (b m b m 1 )Bm 1 m 1(t) m 1 = m i=0 (b i+1 b i ) B m 1 i (t). 6. Rechnen Sie die drei Folgerungen aus der Beziehung für die höheren Ableitungen eines Bézier- Kurvensegments nach! Folgerung 1: Die p-ten Ableitungen in den Endpunkten K(a) bzw. K(b) des Bézier-Segments hängen nur von den Kontrollpunkten b 0,..., b p bzw. b m p,..., b m ab. Wir betrachten exemplarisch den Anfangspunkt K(a). Es gilt 0 b i := b i. Aus der Formel für die höheren Ableitungen ergibt sich für t = a: d p dt p K(a) = m! (m p)! = m p 1 (b a) p i=0 p b i B m p i (a) m! (m p)! 1 (b a) p p b 0 B m p 0 (a)

Aufgaben und Lösungen

Aufgaben und Lösungen Aufgaben und Lösungen c Michael Bender, Manfred Brill Oktober 2005 Sie finden in diesem Dokument alle Aufgaben und die zugehörigen Lösungen aus Michael Bender, Manfred Brill: Computergrafik 2. Auflage,

Mehr

Michael Bender Martin Brill. Computergrafik. Ein anwendungsorientiertes Lehrbuch. 2., überarbeitete Auflage HANSER

Michael Bender Martin Brill. Computergrafik. Ein anwendungsorientiertes Lehrbuch. 2., überarbeitete Auflage HANSER Michael Bender Martin Brill Computergrafik Ein anwendungsorientiertes Lehrbuch 2., überarbeitete Auflage HANSER Inhaltsverzeichnis Vorwort XI 1 Einleitung 1 1.1 Die Entwicklung der Computergrafik 1 1.2

Mehr

Computergrafik. Michael Bender, Manfred Brill. Ein anwendungsorientiertes Lehrbuch ISBN Inhaltsverzeichnis

Computergrafik. Michael Bender, Manfred Brill. Ein anwendungsorientiertes Lehrbuch ISBN Inhaltsverzeichnis Computergrafik Michael Bender, Manfred Brill Ein anwendungsorientiertes Lehrbuch ISBN 3-446-40434-1 Inhaltsverzeichnis Weitere Informationen oder Bestellungen unter http://www.hanser.de/3-446-40434-1 sowie

Mehr

Computergrafik. Ein anwendungsorientiertes Lehrbuch. Bearbeitet von Michael Bender, Manfred Brill

Computergrafik. Ein anwendungsorientiertes Lehrbuch. Bearbeitet von Michael Bender, Manfred Brill Computergrafik Ein anwendungsorientiertes Lehrbuch Bearbeitet von Michael Bender, Manfred Brill 1. Auflage 2003. Taschenbuch. 528 S. Paperback ISBN 978 3 446 22150 5 Format (B x L): 16,9 x 24,1 cm Gewicht:

Mehr

Projektion. Ebene geometrische Projektionen

Projektion. Ebene geometrische Projektionen Projektion - 1 - Ebene geometrische Projektionen Die ebenen geometrischen Projektionen sind dadurch charakterisiert, daß mit Projektionsstrahlen konstanter Richtung, d.h. entlang von Geraden, auf Ebenen

Mehr

7. Wie lautet die Inverse der Verkettung zweier linearer Abbildungen? 9. Wie kann die Matrixdarstellung einer linearen Abbildung aufgestellt werden?

7. Wie lautet die Inverse der Verkettung zweier linearer Abbildungen? 9. Wie kann die Matrixdarstellung einer linearen Abbildung aufgestellt werden? Kapitel Lineare Abbildungen Verständnisfragen Sachfragen Was ist eine lineare Abbildung? Erläutern Sie den Zusammenhang zwischen Unterräumen, linearer Unabhängigkeit und linearen Abbildungen! 3 Was ist

Mehr

Inhaltsverzeichnis. 1 Hardwaregrundlagen

Inhaltsverzeichnis. 1 Hardwaregrundlagen Inhaltsverzeichnis 1 Hardwaregrundlagen 2.1 Koordinatentransformationen 2.2 Transformationen in der Ebene 2.3 Transformationen im Raum 3 Repräsentation und Modellierung von Objekten 4 Rasterung 5 Visibilität

Mehr

Vektoren. Kapitel 3. 3.1 Skalare, Vektoren, Tensoren. 3.2 Vektoren

Vektoren. Kapitel 3. 3.1 Skalare, Vektoren, Tensoren. 3.2 Vektoren Kapitel 3 Vektoren 31 Skalare, Vektoren, Tensoren Viele physikalische Größen lassen sich bei bekannter Maßeinheit durch Angabe ihres Betrages als reelle Zahl vollständig angeben Solche Größen nennt man

Mehr

Kapitel 2: Mathematische Grundlagen

Kapitel 2: Mathematische Grundlagen [ Computeranimation ] Kapitel 2: Mathematische Grundlagen Prof. Dr. Stefan M. Grünvogel stefan.gruenvogel@fh-koeln.de Institut für Medien- und Phototechnik Fachhochschule Köln 2. Mathematische Grundlagen

Mehr

3.1 Motivation. - Mit (mehreren) Koordinatentransformationen wird das Objektsystem in das Gerätesystem transformiert.

3.1 Motivation. - Mit (mehreren) Koordinatentransformationen wird das Objektsystem in das Gerätesystem transformiert. 3.1 Motivation Wichtige Grundlage der Bildwiedergabe auf dem Bildschirm oder anderen Ausgabegeräten sind Koordinatensysteme und Koordinatentransformationen im IR 2 und IR 3. Im allgemeinen unterscheidet

Mehr

y x x y ( 2x 3y + z x + z

y x x y ( 2x 3y + z x + z Matrizen Aufgabe Sei f R R 3 definiert durch ( ) x 3y x f = x + y y x Berechnen Sie die Matrix Darstellung von f Aufgabe Eine lineare Funktion f hat die Matrix Darstellung A = 0 4 0 0 0 0 0 Berechnen Sie

Mehr

Transformationen im 3D-Raum

Transformationen im 3D-Raum Thomas Jung Repräsentation von 3D-Oberflächen Aufbau von Szenen Transformationen im 3D-Raum Projektionstranformationen Anwendung in OpenGL Geometrietransformationen bilden die Basis für die Computergrafik

Mehr

14 MATHEMATISCHE GRUNDLAGEN DER COMPUTERGEOMETRIE. x y

14 MATHEMATISCHE GRUNDLAGEN DER COMPUTERGEOMETRIE. x y 4 MATHEMATISCHE GRUNDLAGEN DER COMPUTERGEOMETRIE 4 Projektionen 4. Parallelprojektion (a) Senkrechte Projektion auf eine Koordinatenebene Wir wählen als Projektionsebene die Ebene, d. h. in den Beeichnungen

Mehr

Mathematische Grundlagen

Mathematische Grundlagen Mathematische Grundlagen Oliver Deussen Mathematische Grundlagen 1 Affine Räume um Zeichenebene bzw. Raum zu beschreiben, muß vorher ein Koordinatensystem festgelegt werden durch geometrische Fragestellungen

Mehr

8. Übungsblatt zur Mathematik I für Maschinenbau

8. Übungsblatt zur Mathematik I für Maschinenbau Fachbereich Mathematik Prof. Dr. M. Joswig Dr. habil. Sören Kraußhar Dipl.-Math. Katja Kulas 8. Übungsblatt zur Mathematik I für Maschinenbau Gruppenübung WS / 6..-.. Aufgabe G (Matrixinversion mit Gauß-Algorithmus

Mehr

Papierfalten und Algebra

Papierfalten und Algebra Arbeitsblätter zum Thema Papierfalten und Algebra en Robert Geretschläger Graz, Österreich 009 Blatt 1 Lösen quadratischer Gleichungen mit Zirkel und Lineal AUFGABE 1 Zeige, dass die x-koordinaten der

Mehr

1 Die Strahlensätze 2. 2 Winkel 3. 3 Rechtwinklige Dreiecke 3. 4 Kreise 6. 5 Trigonometrische Funktionen 8. 6 Kurven in Parameterdarstellung 10

1 Die Strahlensätze 2. 2 Winkel 3. 3 Rechtwinklige Dreiecke 3. 4 Kreise 6. 5 Trigonometrische Funktionen 8. 6 Kurven in Parameterdarstellung 10 Universität Basel Wirtschaftswissenschaftliches Zentrum Abteilung Quantitative Methoden Mathematischer Vorkurs Dr. Thomas Zehrt Geometrie Inhaltsverzeichnis 1 Die Strahlensätze 2 2 Winkel 3 3 Rechtwinklige

Mehr

Hans Delfs. Übungen zu Mathematik III für Medieninformatik

Hans Delfs. Übungen zu Mathematik III für Medieninformatik Hans Delfs Übungen zu Mathematik III für Medieninformatik 1 RÄUMLICHE DARSTELLUNGEN VON OBJEKTEN 1 1 Räumliche Darstellungen von Objekten Der Einheitswürfel ist der achsenparallele Würfel in A 3, der von

Mehr

Darstellung von Kurven und Flächen

Darstellung von Kurven und Flächen Darstellung von Kurven und Flächen Technische Universität Dresden Fakultät Informatik Institut für Software- und Multimediatechnik Dozent: Dr. Mascolous Referent: Gliederung / Einleitung 1 / 25 1. Kurven

Mehr

1.4 Gradient, Divergenz und Rotation

1.4 Gradient, Divergenz und Rotation .4 Gradient, Divergenz und Rotation 5.4 Gradient, Divergenz und Rotation Die Begriffe Gradient, Divergenz und Rotation erfordern die partiellen Ableitung aus Abschnitt.. sowie das Konzept des Differentialoperators.

Mehr

Kreis - Tangente. 2. Vorbemerkung: Satz des Thales Eine Möglichkeit zur Bestimmung der Tangente benutzt den Satz des Thales.

Kreis - Tangente. 2. Vorbemerkung: Satz des Thales Eine Möglichkeit zur Bestimmung der Tangente benutzt den Satz des Thales. Kreis - Tangente 1. Allgemeines 2. Satz des Thales 3. Tangente an einem Punkt auf dem Kreis 4. Tangente über Analysis (an einem Punkt eines Ursprungkreises) 5. Tangente von einem Punkt (Pol) an den Kreis

Mehr

Einleitung 2. 1 Koordinatensysteme 2. 2 Lineare Abbildungen 4. 3 Literaturverzeichnis 7

Einleitung 2. 1 Koordinatensysteme 2. 2 Lineare Abbildungen 4. 3 Literaturverzeichnis 7 Sonja Hunscha - Koordinatensysteme 1 Inhalt Einleitung 2 1 Koordinatensysteme 2 1.1 Kartesisches Koordinatensystem 2 1.2 Polarkoordinaten 3 1.3 Zusammenhang zwischen kartesischen und Polarkoordinaten 3

Mehr

Mathematische Grundlagen für die Vorlesung. Differentialgeometrie

Mathematische Grundlagen für die Vorlesung. Differentialgeometrie Mathematische Grundlagen für die Vorlesung Differentialgeometrie Dr. Gabriele Link 13.10.2010 In diesem Text sammeln wir die nötigen mathematischen Grundlagen, die wir in der Vorlesung Differentialgeometrie

Mehr

Vektoralgebra Anwendungen der Vektorrechnung VEKTORRECHNUNG. Prof. Dr. Dan Eugen Ulmet. Hochschule Esslingen 1/64

Vektoralgebra Anwendungen der Vektorrechnung VEKTORRECHNUNG. Prof. Dr. Dan Eugen Ulmet. Hochschule Esslingen 1/64 1/64 VEKTORRECHNUNG Prof. Dr. Dan Eugen Ulmet Hochschule Esslingen März 2011 2/64 Overview Vektoralgebra 1 Vektoralgebra 2 Was sind Vektoren? 3/64 Vektoren werden geometrisch definiert als Pfeilklassen:

Mehr

2.2 Projektionen und Kameramodelle

2.2 Projektionen und Kameramodelle Graphikprog. GRUNDLEGENDE VERFAHREN UND TECHNIKEN. Projektionen und Kameramodelle Nachdem alle Objekte einer Szenerie mittels der besprochenen Transformationen im D-Weltkoordinatensystem platziert sind,

Mehr

Übungsstunde 5 zu Computergrafik 1

Übungsstunde 5 zu Computergrafik 1 Institut für Computervisualistik Universität Koblenz 19. un 20. November 2012 Inhaltsverzeichnis 1 Transformationen Translation Skalierung Rotation 2 Reihenfolge von Transformationen Beispiele 3 Programmieraufgabe

Mehr

Approximationsverfahren für die Kurvendarstellung

Approximationsverfahren für die Kurvendarstellung Approximationsverfahren für die Kurvendarstellung (a) Bézier-Kurven spezielle Form polynomialer Kurven spezifiziert durch n+1 Kontrollpunkte P 0, P 1,..., P n Kurve läuft nicht durch alle Kontrollpunkte,

Mehr

Rechnen mit Vektoren, analytische Geometrie

Rechnen mit Vektoren, analytische Geometrie Dr. Alfred Eisler Rechnen mit Vektoren, analytische Geometrie Themenbereich Vektorrechnung, analytische Geometrie Inhalte Eingabe von Vektoren Rechnen mit Vektoren Normalvektoren im R 2 Vektorielles Produkt

Mehr

x(t) t x(t) = y(t) x(t) = v H t y(t) = h + v V t g 2 t2, x/v H

x(t) t x(t) = y(t) x(t) = v H t y(t) = h + v V t g 2 t2, x/v H Ebene Kurven Definition: Eine parametrisierte ebene Kurve ist eine stetige Abbildung x(t) t x(t) = y(t) eines Intervalls [a, b] nach R. Dabei heißt t [a, b] der Kurvenparameter. Beide Komponentenabbildungen

Mehr

Urs Wyder, 4057 Basel Funktionen. f x x x x 2

Urs Wyder, 4057 Basel Funktionen. f x x x x 2 Urs Wyder, 4057 Basel Urs.Wyder@edubs.ch Funktionen f 3 ( ) = + f ( ) = sin(4 ) Inhaltsverzeichnis DEFINITION DES FUNKTIONSBEGRIFFS...3. NOTATION...3. STETIGKEIT...3.3 ABSCHNITTSWEISE DEFINIERTE FUNKTIONEN...4

Mehr

Seminar 3-D Grafik Mathematische Grundlagen, Räume, Koordinatensysteme, Projektionen. Hermann Schwarz Marko Pilop

Seminar 3-D Grafik Mathematische Grundlagen, Räume, Koordinatensysteme, Projektionen. Hermann Schwarz Marko Pilop Seminar 3-D Grafik Mathematische Grundlagen, Räume, Koordinatensysteme, Projektionen Hermann Schwarz Marko Pilop 2003-11-20 http://www.informatik.hu-berlin.de/~pilop/3d_basics.pdf {hschwarz pilop}@informatik.hu-berlin.de

Mehr

Transformation - Homogene Koordinaten. y + b )

Transformation - Homogene Koordinaten. y + b ) Transformation - Homogene Koordinaten In der "üblichen" Behandlung werden für die Verschiebung (Translation) und die Drehung (Rotation) verschiedene Rechenvorschriften benutzt - einmal Addition von Vektoren

Mehr

Pflichtteil... 2. Wahlteil Analysis 1... 6. Wahlteil Analysis 2... 9. Wahlteil Analysis 3... 13. Wahlteil Analytische Geometrie 1...

Pflichtteil... 2. Wahlteil Analysis 1... 6. Wahlteil Analysis 2... 9. Wahlteil Analysis 3... 13. Wahlteil Analytische Geometrie 1... Pflichtteil... Wahlteil Analsis 1... 6 Wahlteil Analsis... 9 Wahlteil Analsis 3... 13 Wahlteil Analtische Geometrie 1... 16 Wahlteil Analtische Geometrie... 3 Lösungen: 006 Pflichtteil Lösungen zur Prüfung

Mehr

D-ERDW, D-HEST, D-USYS Mathematik II FS 16 Dr. Ana Cannas. MC-Serie 3. Kurven in der Ebene Einsendeschluss: 18. März 2016, 16 Uhr (MEZ)

D-ERDW, D-HEST, D-USYS Mathematik II FS 16 Dr. Ana Cannas. MC-Serie 3. Kurven in der Ebene Einsendeschluss: 18. März 2016, 16 Uhr (MEZ) D-ERDW, D-HEST, D-USYS Mathematik II FS 16 Dr. Ana Cannas MC-Serie 3 Kurven in der Ebene Einsendeschluss: 18. März 216, 16 Uhr (MEZ) Bei allen Aufgaben ist genau eine Antwort richtig. Sie dürfen während

Mehr

MaTHEMATISCHE GRUNDLAGEN BUGA-AR TELESCOPE. Marko HeRBERTZ

MaTHEMATISCHE GRUNDLAGEN BUGA-AR TELESCOPE. Marko HeRBERTZ MaTHEMATISCHE GRUNDLAGEN BUGA-AR TELESCOPE Marko HeRBERTZ Wiederholung: Objekt-, Welt- und Kamerakoordinaten Kugelkoordinaten in kartesische Mögliche Schwierigkeiten Kameralinse Lage der Festung Lagerichtige

Mehr

Computergraphik 1 ( )

Computergraphik 1 ( ) 2008 Computergraphik 1 (186.461) Ausarbeitung für die schriftliche Prüfung Die Computergraphik stellt eine abwechslungsreiche und lohnende Schwerpunktbildung im Masterstudium Computergraphik & Digitale

Mehr

++ + = 0 so erhält man eine quadratische Gleichung mit zwei Variablen dx+ey+f = 0 1.1

++ + = 0 so erhält man eine quadratische Gleichung mit zwei Variablen dx+ey+f = 0 1.1 Hauptachsentransformation. Einleitung Schneidet man den geraden Kreiskegel mit der Gleichung = + und die Ebene ++ + = 0 so erhält man eine quadratische Gleichung mit zwei Variablen +2 + +dx+ey+f = 0. Die

Mehr

Das Wort Vektor kommt aus dem lateinischen und heißt so viel wie "Träger" oder "Fahrer".

Das Wort Vektor kommt aus dem lateinischen und heißt so viel wie Träger oder Fahrer. Was ist ein Vektor? Das Wort Vektor kommt aus dem lateinischen und heißt so viel wie "Träger" oder "Fahrer". Vektoren sind Listen von Zahlen. Man kann einen Vektor darstellen, indem man seine Komponenten

Mehr

31. Kurven in Ebene und Raum

31. Kurven in Ebene und Raum 31. Kurven in Ebene und Raum Für ebene Kurven (also Kurven im R gibt es mehrere Darstellungsmöglichkeiten: implizite Darstellung : F (x, y = explizite Darstellung : y = f(x oder x = g(y Parameterdarstellung

Mehr

Prüfungsdauer: 120 Minuten

Prüfungsdauer: 120 Minuten Computergraphik und Multimediasysteme Seite 1 von 6 Klausur: Computergraphik II Probeklausur Semester: Prüfer: Prüfungsdauer: 1 Minuten Hilfsmittel: Schreibgeräte, Lineal, nichtprogrammierbarer Taschenrechner

Mehr

1. Sollten Sie die Filme nicht haben, dann bietet Pixar kleine Quicktime-Versionen (nicht nur) der Kinofilme auf

1. Sollten Sie die Filme nicht haben, dann bietet Pixar kleine Quicktime-Versionen (nicht nur) der Kinofilme auf Computer-Animation Computer-Animation 1. Sollten Sie die Filme nicht haben, dann bietet Pixar kleine Quicktime-Versionen (nicht nur) der Kinofilme auf http://www.pixar.com. 2.. 3.. Basistechnologien und

Mehr

Lineare Abbildungen (Teschl/Teschl 10.3, 11.2)

Lineare Abbildungen (Teschl/Teschl 10.3, 11.2) Lineare Abbildungen (Teschl/Teschl.3,.2 Eine lineare Abbildung ist eine Abbildung zwischen zwei Vektorräumen, die mit den Vektoroperationen Addition und Multiplikation mit Skalaren verträglich ist. Formal:

Mehr

VHDL - Grundlagen des Pointrenderings

VHDL - Grundlagen des Pointrenderings VHDL - Grundlagen des Pointrenderings Marc Reichenbach, Timo Nieszner Informatik 3 / Rechnerarchitektur Universität Erlangen Nürnberg 2013 1 / 25 Rendern von Dreiecksnetzen Quelle: Inf9, CG-Slides grobmaschiges

Mehr

Computergrafik Sommersemester 2004 Übungen

Computergrafik Sommersemester 2004 Übungen Sommersemester 4 Freiwillige Zusatzübung Aufgabe 6: Transformationen im zweidimensionalen aum Berechnen Sie die Transformationsmatri, die eine Szene zuerst um 3 Grad um den Ursprung dreht und anschließend

Mehr

(a) Zunächst benötigen wir zwei Richtungsvektoren der Ebene E; diese sind zum Beispiel gegeben durch die Vektoren

(a) Zunächst benötigen wir zwei Richtungsvektoren der Ebene E; diese sind zum Beispiel gegeben durch die Vektoren Aufgabe Gegeben seien die Punkte A(,,, B(,,, C(,,. (a Geben Sie die Hesse-Normalform der Ebene E, welche die drei Punkte A, B und C enthält, an. (b Bestimmen Sie den Abstand des Punktes P (,, 5 zur Ebene

Mehr

Computergrafik Universität Osnabrück, Henning Wenke,

Computergrafik Universität Osnabrück, Henning Wenke, Computergrafik Universität Osnabrück, Henning Wenke, 2012-05-30 Korrektur: Kugelkoordinaten II r und θ konstant: Rand einer Kreisscheibe parallel zur xy Ebene z θ fest y θ konstant, r R : Kegel, ausgehend

Mehr

Klassische Theoretische Physik I WS 2013/2014

Klassische Theoretische Physik I WS 2013/2014 Karlsruher Institut für Technologie www.tkm.kit.edu/lehre/ Klassische Theoretische Physik I WS 23/24 Prof. Dr. J. Schmalian Blatt 5 Dr. P. P. Orth Abgabe und Besprechung 29..23. Messung der Gravitationsbeschleunigung

Mehr

Vektorgeometrie. Inhaltsverzeichnis. Fragen und Antworten. (bitte nur für den Eigengebrauch verwenden)

Vektorgeometrie. Inhaltsverzeichnis. Fragen und Antworten. (bitte nur für den Eigengebrauch verwenden) fua3673 Fragen und Antworten Vektorgeometrie (bitte nur für den Eigengebrauch verwenden) Inhaltsverzeichnis Vektorgeometrie im Raum. Fragen................................................. Allgemeines..........................................

Mehr

Objektorientierte Programmierung

Objektorientierte Programmierung Unterlagen zur Veranstaltung Einführung in die Objektorientierte Programmierung Mit Processing Alexis Engelke Sommer 2012 Alexis Engelke Inhalt Level 1: Geometrie Hintergrundfarben Punkte, Linien und deren

Mehr

Inhaltsverzeichnis VB 2003

Inhaltsverzeichnis VB 2003 VB Inhaltsverzeichnis Inhaltsverzeichnis Die Integralrechnung Die Stammfunktion Wie kommt man zur Stammfunktion am Beispiel der Potenzfunktion Beispiele für Stammfunktionen: Beispiele mit Wurzelfunktionen

Mehr

PFLICHTTEIL FRANZ LEMMERMEYER

PFLICHTTEIL FRANZ LEMMERMEYER PFLICHTTEIL FRANZ LEMMERMEYER ( Bestimmen Sie die erste Ableitung der Funktion f(x mit f(x = (3x x + und Vereinfachen Sie so weit wie möglich. ( Bestimmen Sie diejenige Stammfunktion F (x von ( π f(x =

Mehr

Lineare Abbildungen. De nition Seien V, W Vektorräume. Eine Abbildung f : V! W heißt linear, wenn gilt

Lineare Abbildungen. De nition Seien V, W Vektorräume. Eine Abbildung f : V! W heißt linear, wenn gilt Lineare Abbildungen Lineare Abbildungen De nition Seien V, W Vektorräume. Eine Abbildung f : V! W heißt linear, wenn gilt (L. ) f ist homogen; d.h. f( ~v) = f(~v) für alle 2 R, ~v 2 V, (L. ) f ist additiv;

Mehr

Computergrafik SS 2008 Oliver Vornberger. Kapitel 21: OpenGl

Computergrafik SS 2008 Oliver Vornberger. Kapitel 21: OpenGl Computergrafik SS 2008 Oliver Vornberger Kapitel 21: OpenGl 1 OpenGl Programming Guide 2 OpenGl 200 Befehle in OpenGL Library (geometrische Primitive, Attribute) glcolor3f(1.0,0.0,0.0); glrotatef(30.0,0.0,0.0,1.0);

Mehr

Multivariate Analysis

Multivariate Analysis Kapitel Multivariate Analysis Josef Leydold c 6 Mathematische Methoden I Multivariate Analysis / 38 Lernziele Funktionen in mehreren Variablen Graph und Niveaulinien einer Funktion in zwei Variablen Partielle

Mehr

geschlossene Schachtel mit einem kleinen Loch

geschlossene Schachtel mit einem kleinen Loch Kameramodellierung Lochkamera Kamerakonstante Kamerazentrum geschlossene Schachtel mit einem kleinen Loch ideale Kamera: Loch hat keine Ausdehnung die Strahlen sind ein Büschel von Geraden Abbildung erfolgt

Mehr

UND MOSES SPRACH AUCH DIESE GEBOTE

UND MOSES SPRACH AUCH DIESE GEBOTE UND MOSES SPRACH AUCH DIESE GEBOTE 1. Gebot: Nur die DUMMEN kürzen SUMMEN! Und auch sonst läuft bei Summen und Differenzen nichts! 3x + y 3 darfst Du NICHT kürzen! x! y. Gebot: Vorsicht bei WURZELN und

Mehr

Programmierpraktikum 3D Computer Grafik

Programmierpraktikum 3D Computer Grafik Prof. Andreas Butz Dipl.Inf. Otmar Hilliges Programmierpraktikum 3D Computer Grafik Grundlagen der Computergrafik: Affine Transformationen Beleuchtung in OpenGL. Organisatorisches & Zeitplan Bearbeitungszeitraum

Mehr

Arbeitsblätter zur Vergleichsklausur EF. Aufgabe 1 Bestimme die Lösungen der folgenden Gleichungen möglichst im Kopf.

Arbeitsblätter zur Vergleichsklausur EF. Aufgabe 1 Bestimme die Lösungen der folgenden Gleichungen möglichst im Kopf. Arbeitsblätter zur Vergleichsklausur EF Arbeitsblatt I.1 Nullstellen Aufgabe 1 Bestimme die Lösungen der folgenden Gleichungen möglichst im Kopf. Beachte den Satz: Ein Produkt wird null, wenn einer der

Mehr

Kurven. Markus Kraxner 22. Januar 2015

Kurven. Markus Kraxner 22. Januar 2015 Kurven Markus Kraxner 22. Januar 2015 1 Inhaltsverzeichnis 1 Einleitung 3 2 Einleitung Kurven 4 2.1 Parameterdarstellung von Kurven.................. 4 2.2 Ebene Kurven............................. 4 2.3

Mehr

Aufgaben zum Wochenende (1)

Aufgaben zum Wochenende (1) Aufgaben zum Wochenende (1) 1. Schreiben Sie das Polynom (x 1) 5 geordnet nach Potenzen von x auf. (Binomialkoeffizienten!). Welche Bedingung müssen a, b, c erfüllen, damit die Lösungsmenge der Bestimmungsgleichung

Mehr

1 Ableitungen. Definition: Eine Kurve ist eine Abbildung γ : I R R n, γ besteht also aus seinen Komponentenfunktionen. a 1 + tx 1. eine Kurve.

1 Ableitungen. Definition: Eine Kurve ist eine Abbildung γ : I R R n, γ besteht also aus seinen Komponentenfunktionen. a 1 + tx 1. eine Kurve. 1 Ableitungen Definition: Eine Kurve ist eine Abbildung γ : I R R n, γ besteht also aus seinen Komponentenfunktionen γ 1 (t) γ(t) = γ n (t) Bild(γ) = {γ(t) t I} heißt auch die Spur der Kurve Beispiel:1)

Mehr

Lösungsvorschlag zum zweiten Übungsblatt

Lösungsvorschlag zum zweiten Übungsblatt Lösungsvorschlag zum zweiten Übungsblatt Aufgabe Wir zeigen, daß die Drehung um den Ursprung um 9 und die Spiegelung an der x-achse nicht kommutieren. Die Matrix für die Drehmatrix lautet in diesem Fall

Mehr

Übungen mit dem Applet Kurven in Polarkoordinaten

Übungen mit dem Applet Kurven in Polarkoordinaten Kurven in Polarkoordinaten 1 Übungen mit dem Applet Kurven in Polarkoordinaten 1 Ziele des Applets...2 2 Wie entsteht eine Kurve in Polarkoordinaten?...3 3 Kurvenverlauf für ausgewählte r(ϕ)...4 3.1 r

Mehr

Computergrafik 1 Transformationen

Computergrafik 1 Transformationen Computergrafik 1 Transformationen Kai Köchy Sommersemester 2010 Beuth Hochschule für Technik Berlin Überblick Repräsentationen, Primitiven Transformationen in 2D Skalierung Translation Rotation Scherung

Mehr

Kapitel 21: OpenGl 1

Kapitel 21: OpenGl 1 Kapitel 21: OpenGl 1 OpenGl Programming Guide 2 OpenGl 200 Befehle in OpenGL Library (geometrische Primitive, Attribute) glcolor3f(1.0,0.0,0.0); glrotatef(30.0,0.0,0.0,1.0); 50 Befehle in OpenGl Utility

Mehr

3 Koordinatentransformationen

3 Koordinatentransformationen 8 MATHEMATISCHE GRUNDLAGEN DER COMPUTERGEOMETRIE 3 Koordinatentransformationen Für die Darstellung von dreidimensionalen Objekten wird grundsätlich eine Reihe von Transformationen ausgeführt, die von den

Mehr

H. Gruber, R. Neumann. Erfolg im Mathe-Abi. Basiswissen Niedersachsen. Übungsbuch für den Grundkurs mit Tipps und Lösungen

H. Gruber, R. Neumann. Erfolg im Mathe-Abi. Basiswissen Niedersachsen. Übungsbuch für den Grundkurs mit Tipps und Lösungen H. Gruber, R. Neumann Erfolg im Mathe-Abi Basiswissen Niedersachsen Übungsbuch für den Grundkurs mit Tipps und Lösungen Inhaltsverzeichnis Inhaltsverzeichnis Analysis Von der Gleichung zur Kurve... 9 Aufstellen

Mehr

Inhaltsverzeichnis. 1 Hardwaregrundlagen

Inhaltsverzeichnis. 1 Hardwaregrundlagen Inhaltsverzeichnis 1 Hardwaregrundlagen 2.4 2.5 Perspektivische 2.6 Parallele 2.7 Umsetzung der Zentralprojektion 2.8 Weitere 2.9 Koordinatensysteme, Frts. 2.10 Window to Viewport 2.11 Clipping 3 Repräsentation

Mehr

Abgleich mit dem Kerncurriculum 2016 für die gymnasiale Oberstufe Stoffverteilungsplan Mathematik Leistungskurs

Abgleich mit dem Kerncurriculum 2016 für die gymnasiale Oberstufe Stoffverteilungsplan Mathematik Leistungskurs Q2.1 Lineare Gleichungssysteme (LGS) Einführung und Lösungsverfahren: Beispiele für LGS (auch über- und unterbestimmte), Darstellen von LGS mithilfe von Koeffizientenmatrizen, systematisches Lösen von

Mehr

Arbeitsblätter Förderplan EF

Arbeitsblätter Förderplan EF Arbeitsblätter Förderplan EF I.1 Nullstellen bestimmen Lösungen I.2 Parabeln: Nullstellen, Scheitelpunkte,Transformationen Lösungen I.3 Graphen und Funktionsterme zuordnen Lösungen II.1 Transformationen

Mehr

Lineare Funktionen. Aufgabe 1. Sei f R 2 R definiert durch. x 1 + 3x Beweisen Sie ausführlich, dass f linear ist.

Lineare Funktionen. Aufgabe 1. Sei f R 2 R definiert durch. x 1 + 3x Beweisen Sie ausführlich, dass f linear ist. Lineare Funktionen Aufgabe. Sei f R R definiert durch x f = x x + 3x. Beweisen Sie ausführlich, dass f linear ist. Aufgabe. Die Funktionen (nicht erschrecken sind definiert durch + ( (R n R m (R n R m

Mehr

Einführung in die Trigonometrie

Einführung in die Trigonometrie Einführung in die Trigonometrie Sinus, Kosinus, Tangens am rechtwinkligen Dreieck und am Einheitskreis Monika Sellemond, Anton Proßliner, Martin Niederkofler Thema Stoffzusammenhang Klassenstufe Trigonometrie

Mehr

www.mathe-aufgaben.com

www.mathe-aufgaben.com Abiturprüfung Mathematik Baden-Württemberg (ohne CAS) Pflichtteil Aufgaben Aufgabe : ( VP) Bilden Sie die erste Ableitung der Funktion f mit f(x) = x sin( x + ) Aufgabe : ( VP) Berechnen Sie das Integral

Mehr

3D Programmierpraktikum: Geometrische Transformationen, Materialien und Beleuchtung

3D Programmierpraktikum: Geometrische Transformationen, Materialien und Beleuchtung 3D Programmierpraktikum: Geometrische Transformationen, Materialien und Beleuchtung Praktikum 3D Programmierung Sebastian Boring, Otmar Hilliges Donnerstag, 8. Mai 26 LMU München Medieninformatik Boring/Hilliges

Mehr

Computergrafik 2016 Oliver Vornberger. Kapitel 16: 3D-Repräsentation

Computergrafik 2016 Oliver Vornberger. Kapitel 16: 3D-Repräsentation Computergrafik 2016 Oliver Vornberger Kapitel 16: 3D-Repräsentation 1 Sequenz von Transformationen grün rot Kamera blau Modeling View Orientation View Mapping Device Mapping 2 Repräsentation + Darstellung

Mehr

2D-Transformationen. Kapitel 6. 6.1 Translation. 6.2 Skalierung

2D-Transformationen. Kapitel 6. 6.1 Translation. 6.2 Skalierung Kapitel 6 2D-Transformationen Mit Hilfe von Transformationen ist es möglich, die Position, die Orientierung, die Form und die Größe der grafischen Objekte zu manipulieren. Transformationen eines Objekts

Mehr

ProPra WS 2008/09: LEGO-Sculptor

ProPra WS 2008/09: LEGO-Sculptor ProPra WS 2008/09: LEGO-Sculptor Dipl.-Inform. Christian Düntgen Lehrgebiet Datenbanksysteme für neue Anwendungen Worum geht es? 1. Einlesen einer Formbeschreibung aus VRML-Datei (ggf. Visualisierung der

Mehr

Serie 8 - Parametrisierte Kurven

Serie 8 - Parametrisierte Kurven Analysis D-BAUG Dr Meike Akveld HS 05 Serie 8 - Parametrisierte Kurven Geben Sie für die folgenden Bewegungen eines Punktes jeweils eine parametrisierte Darstellung I [0, ] R xt, t yt an Lösung a Geradlinige

Mehr

Klausurenkurs zum Staatsexamen (SS 2014): Lineare Algebra und analytische Geometrie 8

Klausurenkurs zum Staatsexamen (SS 2014): Lineare Algebra und analytische Geometrie 8 Dr. Erwin Schörner Klausurenkurs zum Staatsexamen (SS 204): Lineare Algebra und analytische Geometrie 8 8. (Herbst 202, Thema 3, Aufgabe 4) Bestimmen Sie die euklidische Normalform der Quadrik Q, gegeben

Mehr

Technische Universität München Zentrum Mathematik. Übungsblatt 11

Technische Universität München Zentrum Mathematik. Übungsblatt 11 Technische Universität München Zentrum Mathematik Mathematik Elektrotechnik Prof. Dr. Anusch Taraz Dr. Michael Ritter Übungsblatt 11 Hausaufgaben Aufgabe 11.1 Berechnen Sie jeweils die Jacobi-Matrix folgender

Mehr

Lösung - Serie 7. D-MAVT/D-MATL Analysis I HS 2016 Dr. Andreas Steiger. 1. MC-Aufgaben (Online-Abgabe)

Lösung - Serie 7. D-MAVT/D-MATL Analysis I HS 2016 Dr. Andreas Steiger. 1. MC-Aufgaben (Online-Abgabe) D-MAVT/D-MATL Analysis I HS 016 Dr. Andreas Steiger Lösung - Serie 7 1. MC-Aufgaben Online-Abgabe 1. Gegeben sind die Kurven K 1 links und K rechts, die beide für wachsenden Parameter t von aussen nach

Mehr

Lineare Gleichungen mit 2 Variablen

Lineare Gleichungen mit 2 Variablen Lineare Gleichungen mit 2 Variablen Lineare Gleichungen mit 2 Variablen sind sehr eng verwandt mit linearen Funktionen. Die Funktionsgleichung einer linearen Funktion f(x) = m x+q m: Steigung, q: y Achsenabschnitt

Mehr

3.5 Transformationen im Raum

3.5 Transformationen im Raum 3.5 Transformationen im Raum Translation Die Verschiebung eines Punktes (,,) T um den Translationsvektor (t,t,t ) T ergibt den Punkt (,, ) T mit 1 t 1 t 1 t 1 + t + t = = + t 1 1 1 T(t,t,t ) Computergrafik

Mehr

3.3. Drehungen und Spiegelungen

3.3. Drehungen und Spiegelungen 3.3. Drehungen und Spiegelungen Drehungen und Spiegelungen in der Ebene Die Multiplikation einer komplexen Zahl z = x + i y (aufgefaßt als Punkt oder Ortsvektor der Ebene) mit der Zahl w = e ( ) = i φ

Mehr

Bezier-Kurven. Hamid Fetouaki, Emma Skopin. 28. Januar 2009. Universität Kassel FB Mathematik/Informatik

Bezier-Kurven. Hamid Fetouaki, Emma Skopin. 28. Januar 2009. Universität Kassel FB Mathematik/Informatik Ableitungen von Universität Kassel FB Mathematik/Informatik 28. Januar 2009 Ableitungen von Motivation Bis in den späten 50er Jahren: Zeichnung der Kurven am Papier Fertigung der Modelle aus Holz und Ton

Mehr

Pflichtteil Wahlteil Analysis Wahlteil Analysis Wahlteil Analysis Wahlteil Analytische Geometrie 1...

Pflichtteil Wahlteil Analysis Wahlteil Analysis Wahlteil Analysis Wahlteil Analytische Geometrie 1... Pflichtteil... Wahlteil Analysis... Wahlteil Analysis... Wahlteil Analysis 3... 5 Wahlteil Analytische Geometrie... Wahlteil Analytische Geometrie... Lösungen: 00 Pflichtteil Lösungen zur Prüfung 00: Pflichtteil

Mehr

Aufgaben und Lösungen

Aufgaben und Lösungen Aufgaben und Lösungen c Michael Bender, Manfred Brill Oktober 2005 Sie finden in diesem Dokument alle Aufgaben und die zugehörigen Lösungen aus Michael Bender, Manfred Brill: Computergrafik 2. Auflage,

Mehr

Kegelschnitte. Evelina Erlacher 13. & 14. M arz 2007

Kegelschnitte. Evelina Erlacher 13. & 14. M arz 2007 Workshops zur VO Einfu hrung in das mathematische Arbeiten im SS 2007 Kegelschnitte Evelina Erlacher 13. & 14. M arz 2007 Denken wir uns einen Drehkegel, der nach oben als auch nach unten unbegrenzt ist.

Mehr

8. DIE ABLEITUNG EINER VEKTORFUNKTION

8. DIE ABLEITUNG EINER VEKTORFUNKTION 75 Dieses Skript ist ein Auszug mit Lücken aus Einführung in die mathematische Behandlung der Naturwissenschaften I von Hans Heiner Storrer, Birkhäuser Skripten. Als StudentIn sollten Sie das Buch auch

Mehr

Planare Projektionen und Betrachtungstransformation. Quelle: Angel (2000)

Planare Projektionen und Betrachtungstransformation. Quelle: Angel (2000) Planare Projektionen und Betrachtungstransformation Quelle: Angel (2) Gliederung Einführung Parallelprojektionen Perspektivische Projektionen Kameramodell und Betrachtungstransformationen Mathematische

Mehr

-dimensionale Darstellungen

-dimensionale Darstellungen 1.9 2 1 2 -dimensionale Darstellungen Auf einer Fläche F (2 dimensional) wird eine Operation ausgeführt Zum Beispiel wir eine Verschiebung um den Vektor t durchgeführt. Gemeint ist der Körper, der überstrichen

Mehr

Kegelschnitte - Teil 7

Kegelschnitte - Teil 7 7.1 Kegelschnitte - Gemeinsame Gleichung Kegelschnitte - Teil 7 Die verschiedenen Kegelschnitte entstehen, indem die Schnittebene eine verschiedene Neigung zur Hauptachse des Kreiskegels hat. Von senkrecht

Mehr

Lösungen zur Prüfung Lineare Algebra I/II für D-MAVT

Lösungen zur Prüfung Lineare Algebra I/II für D-MAVT Prof. N. Hungerbühler ETH Zürich, Winter 6 Lösungen zur Prüfung Lineare Algebra I/II für D-MAVT. Hinweise zur Bewertung: Jede Aussage ist entweder wahr oder falsch; machen Sie ein Kreuzchen in das entsprechende

Mehr

Mathematische Grundlagen

Mathematische Grundlagen Kapitel 2 Mathematische Grundlagen In diesem Kapitel werden die mathematischen Grundlagen dargelegt, die für die Darstellung von dreidimensionalen Objekten notwendig sind. 2. 3D-Koordinatensystem Weit

Mehr

8 Lineare Abbildungen

8 Lineare Abbildungen 80 8 Lineare Abbildungen In diesem Kapitel untersuchen wir lineare Abbildungen von R n nach R m wie zum Beispiel Spiegelungen, Drehungen, Streckungen und Orthogonalprojektionen in R 2 und R 3 Man nennt

Mehr

Computergraphik I. Freiformkurven. aus: Farin Curven und Flächen im CAGD. Oliver Deussen Freiformkurven 1

Computergraphik I. Freiformkurven. aus: Farin Curven und Flächen im CAGD. Oliver Deussen Freiformkurven 1 Freiformkurven aus: Farin Curven und Flächen im CAGD Oliver Deussen Freiformkurven 1 Definition für gebogene Kurven und Flächen Anwendungen: CAD: Automobil-, Flugzeug-, Schiffsbau Computergraphik: Objektmodellierung

Mehr

Lernunterlagen Vektoren in R 2

Lernunterlagen Vektoren in R 2 Die Menge aller reellen Zahlen wird mit R bezeichnet, die Menge aller Paare a 1 a 2 reeller Zahlen wird mit R 2 bezeichnet. Definition der Menge R 2 : R 2 { a 1 a 2 a 1, a 2 R} Ein Zahlenpaar a 1 a 2 bezeichnet

Mehr

Vektoren und Matrizen

Vektoren und Matrizen Vektoren und Matrizen Einführung: Wie wir gesehen haben, trägt der R 2, also die Menge aller Zahlenpaare, eine Körperstruktur mit der Multiplikation (a + bi(c + di ac bd + (ad + bci Man kann jedoch zeigen,

Mehr