Geometrie 1 Christian Bay 02.07.2013 Christian Bay Geometrie 1 02.07.2013 1 / 46
Inhaltsverzeichnis Grundlagen CCW Polygone Picks Theorem Konvexe Hülle Christian Bay Geometrie 1 02.07.2013 2 / 46
Geometrie Abstraktion der realen Welt Christian Bay Geometrie 1 02.07.2013 3 / 46
Grundlagen Punkte Vektoren Punkte, Vektoren 1 Punkte: P = (p 1, p 2,..., p n ) v 1 2 Vektoren: V = v 2... v n Christian Bay Geometrie 1 02.07.2013 4 / 46
Grundlagen Skalarprodukt Skalarprodukt 1 A B = a 1 a 2 b 1 b 2 = a 1 b 1 + a 2 b 2 + a 3 b 3 a 3 b 3 2 A B = B A cosφ 3 Bedeutung: Länge der orthogonalen Abbildung von B auf die von A bestimmte Richtung. 4 A B = 0 : Vektoren stehen senkrecht aufeinander. Christian Bay Geometrie 1 02.07.2013 5 / 46
Grundlagen Kreuzprodukt Berechnung des Kreuzprodukts: A B ( ) 1 2 D : A B a1 a = det 2 = a b 1 b 1 b 2 a 2 b 1 2 2 3 D : A B = a 2b 3 a 3 b 2 a 1 b 3 + a 3 b 1 a 1 b 2 a 2 b 1 Die Länge des Vektors ergibt die Fläche des durch A und B aufspannenden Parallelogrammes. Christian Bay Geometrie 1 02.07.2013 6 / 46
Grundlagen Skalar- Kreuzprodukt Abbildung : Kreuzprodukt Abbildung : Skalarprodukt Christian Bay Geometrie 1 02.07.2013 7 / 46
Grundlagen Geradengleichung Geradengleichung Definition Eine Gerade entsteht durch Menge von Punkten, die die Geradengleichung Ax + By + C = 0 mit A, B, C R erfüllen. Berechnung anhand zweier Punkte P(px, py), Q(qx, qy): A = py qy B = px + qx C = (A px + B qy) Christian Bay Geometrie 1 02.07.2013 8 / 46
Grundlagen Geradengleichung Vorteile von Geradengleichungen anhand von Beispielen: 1 Parallele ermitteln durch Punkt P: p u b l i c L i n e p a r a l l e l ( L i n e h, Point p ) { r e t u r n new L i n e ( h. a, h. b, h. A px + h. b py ) ; } Christian Bay Geometrie 1 02.07.2013 9 / 46
Grundlagen Geradengleichung 2 Lotgerade durch Punkt P: p u b l i c L i n e l o t ( L i n e h, Point p ) { r e t u r n new L i n e ( h. b, h. a, h. b p. x + h. a p. y ) ; } 3 Schnittpunkt von zwei Geraden: p u b l i c Point i n t e r s e c t i o n ( L i n e h ) { double y = h.a/a c h.c } h.b h.a/a b ; double x = b y+c a ; r e t u r n new P oint ( x, y ) ; Achtung: 0 im Nenner möglich! Christian Bay Geometrie 1 02.07.2013 10 / 46
Grundlagen Punkt Gerade Abstand Gerade Punkt Abbildung : Punkt-Linie Abstand Berechnung von d(p, g): 1 AP = P A 2 Fläche von Parallelogram AP u 3 Teile durch u Christian Bay Geometrie 1 02.07.2013 11 / 46
Grundlagen Punkt Segment Abstand Punkt Segment (Strecke) Wie den Abstand von einem Punkt zu einer Geraden berechnen? Fall 1: P liegt zwischen Eckpunkten der Geraden d(p, AS) durch Punkt Gerade Abstand ermitteln Fall 2: P liegt ausserhalb von diesem Bereich: d(p, AS) = min{ AP, SP } Christian Bay Geometrie 1 02.07.2013 12 / 46
Grundlagen Dreiecke Allgemein Innenwinkelsumme: 180 Rechtwinklige Dreiecke: Flächeninhalt: h G 2 Satz von Pythagoras: a 2 + b 2 = c 2 α + β = γ = 90 Kosinus Sinus Tangens AK/HYP GK/HYP GK/AK Christian Bay Geometrie 1 02.07.2013 13 / 46
Inhaltsverzeichnis Grundlagen CCW Polygone Picks Theorem Konvexe Hülle Christian Bay Geometrie 1 02.07.2013 14 / 46
CCW Definition Definition CounterClockWise CCW beschreibt die relative Richtung von einer Strecke zu einem Punkt. Veranschaulichung: Christian Bay Geometrie 1 02.07.2013 15 / 46
CCW Berechnung Berechnung Berechnung über Kreuprodukt: Statt die Richtung von Winkel BAC = α Kreuzprodukt anwenden: AC AB KP Vektor Länge negativ: CounterClockWise (gegen Uhrzeigersinn) KP Vektor Länge positiv: ClockWise (Uhrzeigersinn) Sonderfall: Kreuzprodukt= 0: kolinear Christian Bay Geometrie 1 02.07.2013 16 / 46
Segments Intersect Anwendung CCW: Gegeben zwei Strecken AB und CD Gibt es einen Schnittpunkt der Strecken? Schnittpunkt gibt es wenn: jede Strecke die Geraden der anderen Strecke überspannt Definition: Überspannt AB überspannt Gerade, wenn A auf der einen Seite von Gerade liegt und B auf der anderen. ein Endpunkt auf einer anderen Strecke liegt (Grenzfall) Christian Bay Geometrie 1 02.07.2013 17 / 46
Segment Intersect Drei Streckenkonstellationen: Kein Schnittpunkt Normaler Schnittpunkt Christian Bay Geometrie 1 02.07.2013 18 / 46
Segment Intersect Besonderer Schnittpunkt Christian Bay Geometrie 1 02.07.2013 19 / 46
Segment Intersect Algorithmus Überprüfe ob AB CD überspannt Es gibt einen Schnittpunkt Teste alle Kombinationen der Geradenpunkte auf Kolinearität Abstandstest Christian Bay Geometrie 1 02.07.2013 20 / 46
Segment Intersect Algorithmus i f ( (CCW(A, B, C) CCW(C,D, B) ) < 0) && ( (CCW (C,D, A) CCW(A, B,D) ) > 0) r e t u r n t r u e f o r e a c h CCW( P 1, P 2, P 3 ) == 0 i f (ON SEGMENT ( P 1, P 2, P 3 ) == t r u e ) r e t u r n t r u e r e t u r n f a l s e ON SEGMENT( P i, P j, P k ) i f min( x i, x j ) x k max ( x i, x j ) && min( y i, y j ) y k max ( y i, y j ) r e t u r n t r u e e l s e r e t u r n f a l s e Christian Bay Geometrie 1 02.07.2013 21 / 46
Christian Bay Geometrie 1 02.07.2013 22 / 46
Inhaltsverzeichnis Grundlagen CCW Polygone Picks Theorem Konvexe Hülle Christian Bay Geometrie 1 02.07.2013 23 / 46
Polygone Definition Polygone sind Vielecke, die eine Fläche aufspannen. Die geometrische Figur ist durch eine Menge von Tupel P := (P 1,..., P n ) mit n <= 3 definiert, welche durch zyklische Verbindung der n - Eckpunkte entsteht. Sonderfälle: Dreiecke,Vierecke..., n-ecke Konvex, Konkav Überschlagen Planar Einfach (keine Kanten überschneiden sich) Christian Bay Geometrie 1 02.07.2013 24 / 46
Konvex - Konkav Eigenschaften Konvex Jede Verbindung zwischen zwei Eckpunkten in dem Polygon muss immer innerhalb des Polygons liegen Alle Innenwinkel 180 Eigenschaften Konkav Mind. eine Verbindung zwischen zwei Eckpunkten liegt ausserhalb des Polygons. Mind. ein Innenwinkel > 180 Christian Bay Geometrie 1 02.07.2013 25 / 46
Punkt in Polygon Frage: Ist Punkt P in beliebigen Polygon enthalten? Algorithmus finde bliebigen Punkt Q der sicher ausserhalb des Polygons liegt betrachte PQ und zähle Schnittpunkte mit Polygon Anzahl der Schnitte gerade P liegt in Polygon Anzahl der Schnitte ungerade P liegt nicht in Polygon Christian Bay Geometrie 1 02.07.2013 26 / 46
Sonderfälle Mögliches auftreten von zwei Sonderfällen: 1 PQ liegt auf Polygon Kante 2 PQ schneidet einen Eckpunkt Lösung für 1. Prüfe für alle Kanten, ob PQ auf Kante liegt Lösung für 2. Prüfe für alle Eckpunkte, ob PQ diesen schneidet Alternative: Geschickte Wahl von Q: Double Werte statt Integer = Laufzeit O(Eckpunkte) Christian Bay Geometrie 1 02.07.2013 27 / 46
Punkt in konv. Polygon Naive Methode Zur Erinnerung: Alle Innenwinkel 180 Besuche alle Kanten und schaue mit ccw, ob Punkt links davon ist. = Laufzeit O(Eckpunkten) Christian Bay Geometrie 1 02.07.2013 28 / 46
Punkt in konv. Polygon Idee für konvexe Polygone Finde mittels binärer Suche die Strecke P 0 P i, von der P gerade rechts (CW) oder darauf liegt. f o r ( i n t j = 0 ; j < n ; j ++) i f (ccw(p 0, P j, P) > 0) P i : i > j ; j = (j + n)/2 ; e l s e P i : i j ; j = (j + 0)/2 ; Christian Bay Geometrie 1 02.07.2013 29 / 46
Punkt in konv. Polygon Überprüfe mittels CCW, ob Punkt in Dreieck (P 0, P i, P i 1 liegt. Aufwand = Laufzeit dank binärer Suche O(log(Eckpunkten)) Christian Bay Geometrie 1 02.07.2013 30 / 46
Inhaltsverzeichnis Grundlagen CCW Polygone Picks Theorem Konvexe Hülle Christian Bay Geometrie 1 02.07.2013 31 / 46
Satz von Picks Definition Sei ein Polygon gegeben, dessen Eckpunkte ganzzahlige Koordinaten haben, dann gilt: A Polygon = I + R 2 1 I = Gitterpunkte in Polygon R = Gitterpunkte auf Kanten A = 40 + 12 2 1 = 45 Christian Bay Geometrie 1 02.07.2013 32 / 46
Satz von Picks Ermittlung der Randpunkte Ges: Gitterpunkte auf Kanten des Polygons Geg: Kanten des Polygons e d g e p o i n t s = 0 FOREACH edge e e d g e p o i n t s += gcd ( e. dx, e. dy ) ; RETURN e d g e p o i n t s ; wenn Fläche bekannt, können innere Gitterpunkte ermittelt werden Entscheidender Use-Case! Christian Bay Geometrie 1 02.07.2013 33 / 46
Inhaltsverzeichnis Grundlagen CCW Polygone Picks Theorem Konvexe Hülle Jarvis March Graham Scan Christian Bay Geometrie 1 02.07.2013 34 / 46
Konvexe Hülle Definition nach Cormen Eine konvexe Hülle ist eine Menge Q von Punkten, ist das kleinste konvexe Polygon P, für das jeder Punkt aus Q in diesem oder auf dessen Rand liegt. Vorraussetzung: Punkte sind Unifikate Menge Q besteht aus mind. 3 Punkten die nicht kolinear sind Christian Bay Geometrie 1 02.07.2013 35 / 46
Konvexe Hülle Christian Bay Geometrie 1 02.07.2013 36 / 46
Konvexe Hülle Die TOP 3 der Die Konvexe Hüllen in der Praxis : 1 Ganz Gallien? Nein! Um ein kleines Dorf steht immer noch eine Mauer, die eine Menge aus Häusern beschützt. 2 Absperren von Stadtbereich für illegale Strassenrennen 3 Ein Gummiband, dass um eine Menge von Nägeln gespannt wird Christian Bay Geometrie 1 02.07.2013 37 / 46
Jarvis March Algorithmus Finde S t a r t p u n k t p 0 mit k l e i n s t e m y Wert xachse = p o s i t i v do i f p i Punkt mit g r o esstem y Wert xachse = n e g a t i v Finde n a e c h s t e n Punkt p i+1, der k l e i n s t e n P o l a r w i n k e l r e l a t i v zu x Achse durch p i hat w h i l e (p i+1 S t a r t p u n k t ) Stichwort Polarwinkel: Kreuzprodukte vergleichen! Christian Bay Geometrie 1 02.07.2013 38 / 46
Jarvis March Laufzeit Startpunkt finden O(n) Für jeden Eckpunkt Nachfolge ermitteln vergleichen mit allen restlichen Punkten in konvexer Hülle: O(nh) O(n) + O(nh) = O(nh) Worst Case: Punktmenge n = Eckpunkte h: O(n 2 ) Tafel Christian Bay Geometrie 1 02.07.2013 39 / 46
Graham Scan Algorithmus 1 Finde Punkt p 0 mit kleinstem y-wert (bei Mehrdeutigkeit kleinster x-wert). 2 Sortiere die Restlichen Punkte aufsteigend in einer Liste, nach dem relativen Polarwinkel zu p 0 (entgegen den Uhrzeigersinn). Bei Mehrdeutigkeiten behalte nur den am weitest entfernten Punkt. 3 Initialisiere Stapel S mit ersten drei Punkten aus Liste. Christian Bay Geometrie 1 02.07.2013 40 / 46
Graham Scan Algorithmus 4 Iteriere über die restliche Listenelemente p i mit i [3..m] Nimm solange die ersten 2 Elemente (p s, p s+1 ) vom Stapel bis p s+1 p s p i > 180 Nicht nach links gerichtet (CW): entferne p s und suche weiter Nach links gerichtet (CCW): lege p i auf dem Stapel und iteriere über nächstes Element. 5 Der fertige Stapel enthält entgegen des Uhrzeigersinns die Eckpunkte der konvexen Hülle Christian Bay Geometrie 1 02.07.2013 41 / 46
Graham Scan Veranschaulichung von Schritt 4: Christian Bay Geometrie 1 02.07.2013 42 / 46
Graham Scan Laufzeit Finden von p 0 : O(n) Sortieren von Winkel via Heap-, oder MergeSort: O(n log n) Iteration über p 3...p n : O(n) Gesamtlaufzeit von O(n log n) Allgemein: Jarvis March läuft asymptotisch schneller als Graham Scan, wenn die Anzahl an Eckpunkten in konvexer Hülle in o(log n) Christian Bay Geometrie 1 02.07.2013 43 / 46
Ende Da schmilzt sie hin, die Zeit Danke für eure Aufmerksamkeit! Christian Bay Geometrie 1 02.07.2013 44 / 46
Fragen? Christian Bay Geometrie 1 02.07.2013 45 / 46
Quellen: Wikipedia: Geradengleichung, Skalarprodukt, Kreuzprodukt, Dreiecke, Polygone, Graham Scan, Jarvis March Punkt Gerade Abstand: http://www.frustfreilernen.de/mathematik/abstand-punkt-gerade.html HW 2012-2009 GE1 Referate Algorithmen eine Einführung (Cormen) Christian Bay Geometrie 1 02.07.2013 46 / 46