Die Präsentation wird geladen. Bitte warten

Die Präsentation wird geladen. Bitte warten

Die Geometrie der Ebene 19.11.2009 Universität zu Köln Wintersemester 2009/2010 Softwaretechnologie II (Teil 1) Dozent: Prof. Dr. Manfred Thaller Referentin:

Ähnliche Präsentationen


Präsentation zum Thema: "Die Geometrie der Ebene 19.11.2009 Universität zu Köln Wintersemester 2009/2010 Softwaretechnologie II (Teil 1) Dozent: Prof. Dr. Manfred Thaller Referentin:"—  Präsentation transkript:

1 Die Geometrie der Ebene Universität zu Köln Wintersemester 2009/2010 Softwaretechnologie II (Teil 1) Dozent: Prof. Dr. Manfred Thaller Referentin: Sarah Burmann

2 Inhalt 1. Koordinaten und Vektoren (geometrische Grundlagen) 2. Bewegungen 3. Projektionen

3 1. Koordinaten und Vektoren (geometrische Grundlagen) Definition und einfache Rechenoperationen Vektoren sind Pfeile mit einer bestimmten Länge und Richtung in einem Koordinatensystem Länge des Vektors v=(a,b)wird bezeichnet durch |v| wird in den Koordinatenabschnitten berechnet durch |v|=a²+b² (Satz des Pythagoras)

4 1. Koordinaten und Vektoren (geometrische Grundlagen) Definition und einfache Rechenoperationen Multiplikation Vektoren können mit einem Faktor c (Skalar) koordinatenweise multipliziert werden, der entsprechende Pfeil verlängert oder verkürzt sich so v=(a,b) multipliziert mit dem Faktor c => c*v=c*(a,b)=(c*a,c*b) Addition 2 Vektoren können koordinatenweise addiert werden v 1 =(a 1,b 1 ) und v 2 =(a 2,b 2 ) => v 1 +v 2 =(a 1,b 1 )+(a 2,b 2 )=(a 1 +a 2,b 1 +b 2 )

5 1. Koordinaten und Vektoren (geometrische Grundlagen) Definition und einfache Rechenoperationen Skalarprodukt Macht aus zwei Vektoren eine Zahl (Skalar) Das Skalarprodukt zweier Vektoren a und b besitzt folgende Eigenschaften: ab > 0 genau dann, wenn a und b einen spitzen Winkel einschließen ab < 0 genau dann, wenn a und b einen stumpfen Winkel einschließen ab = 0 genau dann, wenn a und b orthogonal zueinander stehen Formel zur Berechnung =a 1 *b 1 +a 2 *b 2

6 1. Koordinaten und Vektoren (geometrische Grundlagen) Definition und einfache Rechenoperationen Multiplikation mit Skalar und Addition ermöglichen die Berechnung jedes Vektors in der Ebene aus den Einheitsvektoren Einheitsvektoren: stehen senkrecht mit der Länge 1 aufeinander und spannen die gesamte x-y-Ebene auf e 1 =(1,0) und e 2 =(0,1)

7 1. Koordinaten und Vektoren (geometrische Grundlagen) Definition und einfache Rechenoperationen Polarkoordinatendarstellung Darstellung eines Vektors nicht durch seine x- und y-Koordinaten, sondern durch seine Länge r und den Winkel α (α = Winkel zwischen Vektor und x-Achse) hilfreich, wenn das Verhältnis zweier Punkte leichter durch Winkel und Abstände zu beschreiben sind, als durch x- und y-Koordinaten Beispiel: Punkt p (3,4) lässt sich auch angeben durch die Länge des Vektors zu Punkt p =3²+4² = 5 und dem Winkel α der sich mithilfe der Winkelfunktionen (s.u.) berechnen lässt. Dieser wird gewöhnlich im Bogenmaß angegeben. α

8 1. Koordinaten und Vektoren (geometrische Grundlagen) Definition und einfache Rechenoperationen Winkelmessung Bogenmaß eines Winkels = Verhältnis der Länge des Kreisbogens zum Radius Einheitskreis Kreis mit dem Radius 1 und dem Umfang 2 (Drehung gegen den Uhrzeigersinn) Jeder Winkel hat ein Bogenmaß zwischen 0 und 2 (45° = /4; 90° = /2; 180° = ; 270° = 3/2; 360° = 2)

9 1. Koordinaten und Vektoren (geometrische Grundlagen) Definition und einfache Rechenoperationen Sinus- und Cosinus-Funktionen a = Gegenkathete b = Ankathete c = Hypotenuse Berechnung von Sinus sin(α)=Gegenkathete/Hypotenuse=a/c Berechnung von Cosinus cos(α)=Ankathete/Hypotenuse=b/c

10 1. Koordinaten und Vektoren (geometrische Grundlagen) Definition und einfache Rechenoperationen Sinus- und Cosinus-Funktionen Die Hypotenuse im Einheitskreis ist 1(Hypotenuse=Radius), daher entspricht der Cosinus des Winkels α immer der Länge der Ankathete von α. Der Sinus des Winkels α entspricht der Länge der Gegenkathete von α => cos(α) liefert den x-Wert eines Punktes p => sin(α) liefert den y-Wert eines Punktes p => p=(x,y)=(cos(α),sin(α)) Wird der Radius r beliebig verändert, wird die Formel entsprechend erweitert p=(r*cos(α),r*sin(α))=r*(cos(α),sin(α))

11 1. Koordinaten und Vektoren (geometrische Grundlagen) Projektion von Vektoren Projektionen eines Vektors b auf einen Vektor a ergeben sich aus dem Produkt der Länge des Projektionsvektors b mit dem zu dem Vektor a parallel liegenden Einheitsvektor. Vereinfacht kann die Formel ( /|b|²)*b angewendet werden. Definition und einfache Rechenoperationen

12 2. Bewegungen Allgemein Jede Bewegung im 2-dimensionalen Raum setzt sich aus Verschiebungen und Drehungen um den Koordinatenursprung zusammen Drehungen die nicht um den Koordinatenursprung erfolgen werden zunächst in den Koordinatenursprung verschoben, um diesen gedreht und wieder zurück verschoben Verschiebung in den Koord.Ursprung Drehung gegen den Uhrzeigersinn Rückverschiebung Ausgangssituation

13 2. Bewegungen Verschiebungen Verschiebungen (Translationen) werden mithilfe von Addition der Koordinatenwerte und deren Versatz durchgeführt Beispiel: Der Vektor (2,3) soll um den Wert (10,6) verschoben werden => (2,3)+(10,6)=(12,9)

14 2. Bewegungen Drehungen Drehungen eines Punktes (x,y) erfolgen durch die Drehung des Koordinatensystems um einen Winkel α gegen den Uhrzeigersinn Der neue Punkt (x´,y´) ergibt sich aus der Formel (x,y)=(cos( α )*x-sin( α )*y),(sin( α )*x+cos( α )*y) α α O (x,y) O (x´,y´)

15 Skalierung (zoom in, zoom out) Skalierungen dienen der Vergrößerung und Verkleinerung von Objekten Berechnung erfolgt durch das Einsetzen eines Skalierungsfaktors in x- und y-Richtung Der zu skalierende Punkt wird zunächst in den Koordinatenursprung geschoben, gezoomt und in seinen Ausgangspunkt zurückverschoben Durch die Anwendung unterschiedlicher Faktoren in x- und y-Richtung erfolgt eine Verzerrung Negative Faktoren erzeugen eine Spiegelung Formel: x`=r*x y`=s*y (hier: r=s=2) (1,5;2) (2*1,5;2*2)=(3,4) 2. Bewegungen

16 Bisherige Rechenoperationen im Überblick Verschiebung von (x,y) um (u,v) x´=x+u y´=y+v Drehung von (x,y) um den Winkel α entgegen dem Uhrzeigersinn x´=cos( α )*x-sin( α )*y y`=sin( α )*x+cos( α )*y Skalierung von (x,y) mit den Faktoren r und s x`=r*x y`=s*y 2. Bewegungen

17 Einführung von Matrizen Um alle bisher genannten Rechenoperationen zu vereinfachen, werden nachfolgend Matrizen verwendet Mithilfe von Matrizen werden die einzelnen Rechenschritte verkürzt, so dass mit einer Rechenoperation beispielsweise die Verschiebung eines Punktes p mit (x,y) in den Koordinatenursprung, seine Drehung in den Punkt p` mit (x´,y´) und die Rückverschiebung in den Ausgangspunkt berechnet werden können 2. Bewegungen

18 Rechnen mit Matrizen Eine Matrix besteht aus m-Zeilen und n-Spalten Sie beinhaltet somit m*n Zahlen Multiplikation mit Matrizen: 2 Matrizen können miteinander multipliziert werden, wenn die erste Matrix genau so viele Spalten, wie die zweite Matrix Zeilen hat * = 2. Bewegungen

19 Rechnen mit Matrizen Beispiel-Rechnung: 1. Beispiel (rot): 0*4+(-1)*2+(-2)*1=-4 2. Beispiel (grün): (-1)*0+3*5*0*(-2)= *= 2. Bewegungen

20 Generierung von Matrizen für die einzelnen Operationen Für jede Bewegung von (x,y) -> (x,y) kann man verallgemeinert schreiben x =a*x+b*y+c y=d*x+e*y+f wobei a-f geeignete Koeffizienten sind Beispiel: Bei der Verschiebung ist a =1; b = 0, c =u, d = 0; e =1, f=v Damit ergibt sich x=1*x+0*y+u = x + u y= 0*x+1*y+v= y +v 2. Bewegungen

21 Generierung von Matrizen für die einzelnen Operationen Der Einfachheit halber ergänzen wir dieses System um eine Variable w (und die Koeffizienten g, h und i) w wird gleich 1 gesetzt und keine weiteren Rechenoperationen im 2-dimensionalen Raum mit dieser Variable durchgeführt Unser Gleichungssystem ist dann (x,y,w) -> (x´,y´,w´) x =a*x+b*y+c y=d*x+e*y+f w´=0*x+0*y+1*w Dies ermöglicht es uns jede Bewegung als 3x3 Matrix zu schreiben. Somit sind alle Matrizen miteinander kombinierbar 2. Bewegungen

22 Generierung von Matrizen für die einzelnen Operationen Aus dem Gleichungssystem (wie oben bereits eingeführt) (x,y,w) -> (x´,y´,w´) x =a*x+b*y+c y=d*x+e*y+f w´=0*x+0*y+1*w ergibt sich die Matrix ad0be0cf1ad0be0cf1 2. Bewegungen

23 Erweiterung der bisherigen Rechenoperationen mit Matrizen Verschiebung von (x,y) um (u,v) x´=x+uals Matrix y´=y+v Drehung von (x,y) um den Winkel α entgegen dem Uhrzeigersinn x´=cos( α )*x-sin( α )*yals Matrix y`=sin( α )*x+cos( α )*y Skalierung von (x,y) mit den Faktoren r und s x`=r*xals Matrix y`=s*y uv uv1 cos(α) sin(α)0 -sin(α) cos(α) r000s0001r000s Bewegungen

24 Einführung Nachfolgend befassen wir uns mit zwei Arten von Projektionen 1.Orthogonale Projektion 2.Perspektivische Projektion Orthogonale Projektionen sind senkrechte Projektionen, bei denen alle Punkte senkrecht auf eine Projektionsgerade projiziert werden. Bei perspektivischen Projektionen verlaufen die Projektionen nicht orthogonal, sondern auf den Blickpunkt hin. Dadurch erscheinen näher liegende Objekte größer und entferntere kleiner. Hier wird die x –Koordinate nicht nur durch die x-Koordinate eines Punktes P beeinflusst, sondern auch durch die y-Koordinate 2. Projektionen

25 Orthogonale Projektionen Der Punkt P des 2-dimensionalen Objekts wird senkrecht auf die 1-dimensionale Projektionsgerade g projiziert a ist die Distanz vom Blickpunkt bis zur Projektionsgeraden b ist die Distanz vom Blickpunkt bis zur maximalen Sichtweite alle Objekte zwischen a und b werden auf die Projektionsgerade Projiziert d ist die Breite des Sichtfensters (vom Blickpunkt aus sieht man d/2 nach rechts und d/2 nach links) 2. Projektionen Fensterbreite d Kamera a b Q=(x´,y´) P=(x,y) g

26 Orthogonale Projektionen Zwei Informationen werden zur Projektion benötigt 1. Wird der Punkt P auf eine Stelle innerhalb des Sichtfensters projiziert? 2. Befindet sich der Punkt eher im Vordergrund oder im Hintergrund? Die Projektion von einem 2-dimensionalen Objekt auf eine 1-dimensionale Projektionsfläche (Gerade g) erfordert trotzdem 2 Koordinaten 1.Eine Koordinate x´ die die Projektion des Punktes x auf der Projektionsgeraden angibt, aus der man außerdem ablesen kann ob die Projektion sich innerhalb des Fensters befindet. Rechnerisch ergibt sich x = x/(d/2) -> 2x/d liegt x´ in einem Bereich von -1 und +1, befindet sich der projizierte Punkt x´ innerhalb des Sichtfensters auf der Projektionsgeraden g 2. Projektionen

27 Orthogonale Projektionen Beispiel: d=10 (die Fensterbreite hat einen Bereich von -5 bis +5) der x-Wert von P ist 4 => x = x/(d/2) -> 2x/d => x´= (2*4)/10=0,8 Da das Ergebnis von 0,8 zwischen -1 und +1 liegt, befindet sich der projizierte Punkt auf der innerhalb des Sichtfensters Gegenbeispiel: d=10 (die Fensterbreite hat einen Bereich von -5 bis +5) der x-Wert von P ist 10 => x = x/(d/2) -> 2x/d => x´= (2*10)/10=2 (das Ergebnis liegt außerhalb des sichtbaren Bereichs) 2. Projektionen

28 Orthogonale Projektionen 2.Es wird eine Koordinate benötigt, die angibt, wie weit der Punkt P im Vordergrund liegt. Die y`-Koordinate der y-Koordinate des projizierten Punktes einen Wert zwischen 0 und 1 haben Je näher y´ an 0 liegt, desto weiter befindet sich der Punkt im Vordergrund. Es ergibt sich folgende Transformation y = 1/(b-a) * y – a/(b-a) Die Transformationsmatrix für x´ und y´ sieht wie folgt aus: 2. Projektionen (2/d00 01/(b-a)0 0-a/(b-a)1

29 Perspektivische Projektionen 2. Projektionen Fensterbreite d Kamera a b Q=(x´,y´) P=(x,y) g

30 Perspektivische Projektionen 2. Projektionen Beispiel Ein Punkt P ist weiter von der Projektionsgeraden g entfernt als ein Punkt P. Obwohl beide Punkte den gleichen x-Wert haben muss der x-Wert von P kleiner sein als der x´-Wert von P. =>Die Strecke vom Bildmittelpunkt zu Punkt P erscheint damit kleiner. P1P1 P2P2 P2´P2´ P1´P1´

31 Perspektivische Projektionen Aufgrund der Strahlensätze muss dabei das Verhältnis von x zu y gleich dem Verhältnis von x zu a sein. Es gilt: x/a = x/y -> x=(a/y)*x Da wir wie bei der orthogonalen Projektion auf einen Wert zwischen -1 und 1 kommen wollen, teilen wir wiederum durch d/2. Es ergibt sich also: x = 2a/(d*y) 2. Projektionen

32 Perspektivische Projektionen Die Projektion kann so nicht in eine Matrix eingefügt werden, da y kein Koeffizient, sondern eine Koordinate ist. y kann sich also mit jedem Punkt ändern. Das das Problem zu lösen, benutzen wir die bisher nicht benutzte w-Koordinate 2. Projektionen (2*a)/d

33 Perspektivische Projektionen Es ergibt sich folgende Rechenoperation (x y 1) * = ( ( ( 2*a)/d)*x 0 y) Das Ergebnis hat zwei Unzulänglichkeiten: 1.x´ wurde noch nicht durch y geteilt 2.Als w´ haben wir nicht 1, sondern y. 2. Projektionen (2*a)/d

34 Perspektivische Projektionen Das Ergebnis hat zwei Unzulänglichkeiten: 1.x´ wurde noch nicht durch y geteilt 2.Als w´ haben wir nicht 1, sondern y. Beide Probleme können gelöst werden, indem das gesamte Ergebnis durch y geteilt wird ( ((2*a)/d) *x 0 y) -> ( ( (2*a)/d*y)*x 0 1) 2. Projektionen

35 Perspektivische Projektionen Damit führen wir eine neue Art Operation ein: => Nach der Matrix-Multiplikation wird zurückskaliert Von der Zurückskalierung ist natürlich auch der y-Wert betroffen. Daher wird hier, anstatt der o. g. Transformation, Folgende benutzt y = b/(b-a) – (a*b)/(b-a) Die Matrix für eine perspektivische Projektion lautet demnach: Anschließend muss, wie oben beschrieben, zurückskaliert werden 2. Projektionen (2*a)/d00 0b/(b-a)1 0-(a*b)/(b-a)0


Herunterladen ppt "Die Geometrie der Ebene 19.11.2009 Universität zu Köln Wintersemester 2009/2010 Softwaretechnologie II (Teil 1) Dozent: Prof. Dr. Manfred Thaller Referentin:"

Ähnliche Präsentationen


Google-Anzeigen