Algorithmische Geometrie 5. Triangulierung von Polygonen

Ähnliche Dokumente
2.4. Triangulierung von Polygonen

Algorithmische Geometrie 3. Schnitte von Liniensegmenten

Polygontriangulierung

Triangulierung von einfachen Polygonen

Polygontriangulierung

6. Triangulation von Polygonen

Übersicht. Begriffserklärung Motivation / Anwendungen Drei Algorithmen Zusammenfassung Fragen Quellen. Triangulierung von Steffen Ernst 2

Triangulierung von einfachen Polygonen

Polygon Triangulation. robot.scr. "Art Gallery Problem" Sichtbarkeitspolygon. Algorithmische Geometrie - SS 99 - Th. Ottmann

Voronoi-Diagramme. Dr. Martin Nöllenburg Vorlesung Algorithmische Geometrie INSTITUT FÜR THEORETISCHE INFORMATIK FAKULTÄT FÜR INFORMATIK

Triangulierung von Polygonen und das Museumsproblem

Algorithmische Geometrie 4. Schnitte planarer Unterteilungen

Was bisher geschah. 1. Zerlegung in monotone Polygone 2. Triangulierung der monotonen Teilpolygone

Geradenarrangements und Dualität von Punkten und Geraden

Geradenarrangements und Dualität von Punkten und Geraden

Voronoi-Diagramme INSTITUT FÜR THEORETISCHE INFORMATIK FAKULTÄT FÜR INFORMATIK. Dr. Martin Nöllenburg Vorlesung Algorithmische Geometrie

Algorithmische Geometrie 7. Punktsuche (Teil 2)

KARL-FRANZENS-UNIVERSITÄT GRAZ. Seminar aus Reiner Mathematik. Die Museumswächter. Krupic Mustafa Wintersemester 2013/14

Grundlagen zur Delaunay-Triangulierung und zur konvexen Hülle. zum Begriff des Voronoi-Diagramms (vgl. auch Vorlesung "Algorithmische Geometrie"):

Geometrische Algorithmen Voronoi-Diagramme. Lernmodul 7: Geo-Algorithmen und -Datenstrukturen - Voronoi-Diagramme

Algorithmische Geometrie 1. Einführung

Übung zur Vorlesung Algorithmische Geometrie

Geometrische Algorithmen

Kürzeste Wege in einfachen Polygonen. Sofiya Scheuermann 28. Januar 2008

Liniensegmentschnitt. Doppelt verkettete Kantenliste. Überlagerung von 2 ebenen Graphen. Boolsche Operatoren für einfache Polygone (LEDA)

Distanzprobleme in der Ebene

Algorithmische Geometrie: Schnittpunkte von Strecken

Museumswächter, Bühnenbeleuchtung, Staubsaugerroboter

Algorithmische Geometrie 7. Punktsuche

Punktlokalisation 1. Trapez-Zerlegungen. 2. Eine Suchstruktur. 3. Randomisierter, inkrementeller Algorithmus zur Konstruktion der Trapez-Zerlegung

häufige Aufgabe Motivation: Approximation komplizierter Geometrien durch einfachere Dreiecke oft effizienter zu bearbeiten als Polygone

Das Problem der Museumswächter

Dualität + Quad-trees

(1) Geometrie. Vorlesung Computergraphik 3 S. Müller U N I V E R S I T Ä T KOBLENZ LANDAU

Aufgabensammlung zur algorithmischen Geometrie

Seminar: Algorithmisches in der Geometrie Ausarbeitung zu Vortrag 9. Triangulierungen im Cayley-Graph und Enden von kontextfreien Gruppen

Freie Bäume und Wälder

Geometrie I. Sebastian Redinger Informatik 2 Programmiersysteme Martensstraße Erlangen

Geometrie 1. Christian Bay Christian Bay Geometrie / 46

Achilles und die Schildkröte Sommersemester 2008

Parallele Algorithmen in der Bildverarbeitung

Quadtrees und Meshing

Das Voronoi Diagramm. 1. Definition. 2. Eigenschaften. 3. Größe und Speicherung. 4. Konstruktion. 5. Verwendung

4 Färbungen Begriffe Komplexität Greedy-Algorithmus Knotenreihenfolgen Das 4-Farben-Problem...

Lokalisierung von inneren und äußeren Grenzen in Sensornetzwerken

Algorithmische Geometrie

Triangulierungen von Punktmengen und Polyedern

Quadtrees und Meshing

Übersicht über Informatik und Softwaresystemtechnik WS 99/00, Prof. Dr. Andreas Schwill

Quadtrees und Meshing

Mathematische Probleme, SS 2016 Freitag $Id: convex.tex,v /05/13 14:42:55 hk Exp $

Übung Computergrafik 3

Hallo Welt für Fortgeschrittene

Geometrie I. Tobias Langer Tobias Langer Geometrie I / 59

Übungsaufgaben Graphentheorie, Wintersemester 2011/12

Punktlokalisierung. Dr. Martin Nöllenburg Vorlesung Algorithmische Geometrie INSTITUT FÜR THEORETISCHE INFORMATIK FAKULTÄT FÜR INFORMATIK

Voronoi-Diagramme und Delaunay-Triangulierungen

Geometrische Algorithmen Einige einfache Definitionen: Ist ein Punkt in einem Polygon? Punkt-in-Polygon-Problem. Das Punkt-in-Polygon-Problem

3. Minimale Spannbäume. Definition 99 T heißt minimaler Spannbaum (MSB, MST) von G, falls T Spannbaum von G ist und gilt:

Grundlagen der Graphentheorie. Thomas Kamps 6. Oktober 2008

Mathematische Probleme, SS 2013 Montag $Id: convex.tex,v /10/22 15:58:28 hk Exp $

M. Pester 29. Ein konvexes d-polytop ist eine begrenzte d-dimensionale polyedrale Menge. (d = 3 Polyeder, d = 2 Polygon)

Algorithmen und Datenstrukturen

Delaunay-Triangulierungen

Algorithmische Geometrie: Lineare Optimierung (I)

Die Geometrie der Tischlerei

Lineare Programmierung

\ E) eines Graphen G = (V, E) besitzt die gleiche Knotenmenge V und hat als Kantenmenge alle Kanten des vollständigen Graphen ohne die Kantenmenge E.

Die Determinante eines Friesmuster

Algorithmische Geometrie 8. Voronoidiagramme und Delaunaytriangulierung

Theoretische Informatik. Exkurs: Komplexität von Optimierungsproblemen. Optimierungsprobleme. Optimierungsprobleme. Exkurs Optimierungsprobleme

Bereichsabfragen II. Dr. Martin Nöllenburg Vorlesung Algorithmische Geometrie

Lernmodul 7 Algorithmus von Dijkstra

Algorithmische Geometrie: Rest Lokalisierung von Punkten; Voronoi Diagramme (1/2)

Vorlesung Datenstrukturen

Westfählische Wilhelms-Universität. Eulersche Graphen. Autor: Jan-Hendrik Hoffeld

Bereichsabfragen II. Dr. Martin Nöllenburg Vorlesung Algorithmische Geometrie

Polygone - Bausteine der Computergrafik

Technische Universität München Zentrum Mathematik Propädeutikum Diskrete Mathematik. Weihnachtsblatt

durch Einfügen von Knoten konstruiert werden kann.

Visualisierung von Graphen

Datenstrukturen und Algorithmen SS07

Geometrische Algorithmen Punkt-in-Polygon-Suche. Lernmodul 7: Geo-Algorithmen und -Datenstrukturen - Punkt-in-Polygon-Suche

WS 2009/10. Diskrete Strukturen

Von den Kanten von Gewicht 4 wird nur noch eine ausgewählt, die zu dem letzten nicht ausgewählten Knoten führt: 1. Juni

Optimales Routing. Paul Kunze

Computer-Graphik I Verallgemeinerte Baryzentrische Koordinaten

2.7.1 Inside-Test Konvexe Hülle Nachbarschaften Schnittprobleme

Kapitel 3. Kapitel 3 Graphentheorie

Kapitel 9 Algorithm. Geometrie. Kürzeste Abstände Konvexe Hülle

Diskrete Strukturen. Hausaufgabe 1 (5 Punkte) Hausaufgabe 2 (5 Punkte) Wintersemester 2007/08 Lösungsblatt Januar 2008

Bäume und Wälder. Seminar: Graphentheorie Sommersemester 2015 Dozent: Dr. Thomas Timmermann

Geometrie 1. Roman Sommer. Informatik 2 Programmiersysteme Martensstraße Erlangen

3.1 Konstruktion von minimalen Spannbäumen Es gibt zwei Prinzipien für die Konstruktion von minimalen Spannbäumen (Tarjan): blaue Regel rote Regel

Algorithmen und Datenstrukturen

Voronoi Diagrams. Christian Wellenbrock. December 1, 2009

4.2 Minimale Spannbäume: Der Algorithmus von Jarník/Prim Definition 4.2.1

Die Berechnung der Triangulation eines Polygons in fast-linearer Zeit.

Maximale s t-flüsse in Planaren Graphen

3-Färbbarkeit. Korollar: Zu Entscheiden, ob ein Graph k-färbbar ist mit k 3, ist NP-vollständig.

Transkript:

Algorithmische Geometrie 5. Triangulierung von Polygonen JProf. Dr. Heike Leitte Computergraphik und Visualisierung

Inhaltsverzeichnis 1. Einführung 2. Konvexe Hülle 3. Schnitte von Liniensegmenten 4. Schnitte planarer Unterteilungen 5. Triangulierung von Polygonen 6. Lineare Programme 7. Punktsuche 8. Voronoidiagramme und Delaunay-Triangulierung 9. Allgemeine Suchstrukturen Algorithmische Geometrie 5. Schnitte von Polygonen 2

Videoüberwachung eines Museums Als drittes Problem haben wir in Kapitel 1 die Triangulierung von Polygonen identifiziert, die etwa bei der Überwachung eines Museums durch Kameras auftritt. Problemstellung: Beliebiges einfaches 2D Polygon (zusammenhängend, ohne Überschneidungen, keine Löcher). Kameras sind an der Decke montiert, 360 drehbar. Keine Verdeckung durch Objekte im Raum 2D Problem. Algorithmische Geometrie 5. Schnitte von Polygonen 3

Triangulierung von Polygonen Das Problem, die minimale Anzahl an Kameras zu finden, die benötigt wird um ein beliebiges Polygon zu überwachen, ist NP-schwer. Deshalb wollen wir nur eine obere Schranke bestimmen, die von der Anzahl der Eckpunkte des Polygons abhängt. Frage: Wie viele Kameras benötige ich maximal, um ein beliebiges einfaches 2D Polygon zu überwachen? Algorithmische Geometrie 5. Schnitte von Polygonen 4

Definitionen Definition 2.13 (Diagonale): Sei P ein einfaches Polygon (d. h. ein Polygon ohne Loch). Eine Diagonale ist ein offenes Liniensegment, das zwei Eckpunkte von P verbindet und vollständig in P liegt. Definition 2.14 (Triangulierung von P): Sei P ein einfaches Polygon. Eine Zerlegung von P in Dreiecke durch eine maximale Menge schnittfreier Diagonalen heißt Triangulierung von P. Da wir Triangulierungen bestimmen wollen, ist es günstig ihre Existenz zu zeigen und zu berechnen aus wievielen Dreiecken sie besteht. Theorem 2.15: Jedes einfache Polygon gestattet eine Triangulierung und jede Triangulierung eines einfachen Polygons mit n Ecken besteht aus genau n-2 Dreiecken. Algorithmische Geometrie 5. Schnitte von Polygonen 5

Beweis: Triangulierbarkeit I Beweis: Induktion über n n = 3: klar n > 3: Sei P ein Polygon mit n Ecken. Wir müssen die Existenz einer Diagonale zeigen. Sei v der am weitesten links liegende Eckpunkt (bei gleicher x-koordinate, die Ecke mit kleinster y-koordinate). Seien u, w die Nachbarn von v entlang des Randes von P. Wenn uw nicht vom Rand geschnitten wird, sind wir fertig. Sonst sei v der am weitesten links liegende Punkt im Dreieck uvw bzw. auf der Diagonalen uw. Dann liegt vv ' komplett in P. Da jede Diagonale P in zwei kleinere Polygone zerlegt, erhalten wir mit der Induktionsvoraussetzung eine Triangulierung. Algorithmische Geometrie 5. Schnitte von Polygonen 6

Beweis: Triangulierbarkeit II Sei nun T eine beliebige Triangulierung von P. Wir wollen nun zeigen, dass T aus n 2 Dreiecken besteht. IA: n = 3 n 2 = 1 Dreick IV: Triangulierung eines Polygons mit (n-1) Ecken besteht aus (n-3) Dreiecken. IS: Wir betrachten eine beliebige Diagonale aus T. Diese zerlegt P in zwei Teilpolygone, die mit m 1 und m 2 Ecken nach Induktionsvoraussetzung (die Polygone haben weniger Eckpunkte als P) m 1 2 und m 2 2 Dreiecke enthalten. Da die beiden Teilpolygone jede Ecke außer denen der Diagonale von P genau einmal und die beiden Diagonalenden doppelt enthalten, gilt m 1 + m 2 = n + 2. Also gilt für die Anzahl der Dreiecke der Triangulierung QED. (m 1 2) + (m 2 2) = (m 1 + m 2 ) 4 = (n + 2) 4 = n 2. Algorithmische Geometrie 5. Schnitte von Polygonen 7

Anzahl der Kameras Da jedes Dreieck von einer Kamera überwacht werden kann, reichen n 2 Kameras. Offensichtlich sollte es etwas besser gehen, wenn wir nutzen, dass Eckpunkte von Dreiecken zu mehreren Dreiecken gehören und dort platzierte Kameras alle diese Dreiecke überwachen können. Wir wollen in jedem Dreieck einen Eckpunkt abdecken und markieren daher jeden Eckpunkt eines Dreieckes weiß, grau oder schwarz. Algorithmische Geometrie 5. Schnitte von Polygonen 8

3-Färbung Def.: 2.16. (3-Färbung): Sie P ein einfaches Polygon und T p eine Triangulierung. Eine 3- Färbung (3-coloring) von (P, T p ) ist eine Markierung der Eckpunkte von P mit drei Farben, so dass Kanten in der Triangulierung T p stets verschieden farbige Endpunkte haben. Theorem 2.17.: (Art Gallery Theorem) Für ein einfaches Polygon mit n Ecken reichen stets floor( n/3 ) Kameras zur Überwachung. (Wir wählen die Farbe aus, die am seltensten vorkommt. Tatsächlich benötigt man für die vollständige Überwachung manchmal wirklich floor( n/3 ) Kameras.) Algorithmische Geometrie 5. Schnitte von Polygonen 9

Beweis: Art Gallery Theorem Beweis: Wir zeigen, dass einfache Polygone eine 3-Färbung zulassen und setzen die Kameras auf die Punkte mit der am seltensten vergebenen Farbe. Um die 3-Färbung zu zeigen, bauen wir den zu einer Triangulierung T p gehörenden dualen Graph G(T p ). G(T p ) hat einen Knoten für jedes Dreieck in T p und eine Kante zwischen benachbarten Dreiecken. Da jede Diagonale das Polygon in zwei Teilpolygone zerlegt, ist G(T p ) ein Baum (nur für einfache Polygone). Wir finden unsere 3-Färbung beim Durchlaufen dieses Baumes (etwa depth-firstsearch), indem wir in einem Dreieck anfangen, dort die drei Farben an die Ecken verteilen und dann weiterlaufen, wobei jedes neue Dreieck entlang der Diagonalen zum bereits besuchten Teilbaum zwei Eckpunkte mit gesetzten Farben hat und wir dann dem anderen Punkt die verbleibende Farbe zuweisen. QED Algorithmische Geometrie 5. Schnitte von Polygonen 10

Zerlegung in monotone Teile Der Beweis von 2.15 legt einen rekursiven Algorithmus zur Triangulierung nahe. Leider kann die Suche nach der geeigneten Diagonale lineare Zeit brauchen und nur ein Dreieck abschneiden, wodurch O(n 2 ) Zeit benötigt würde. Wir wollen es besser machen. Dazu benötigen wir eine Zerlegung von P in Polygone, die sich schnell triangulieren lassen. Geeignet wären konvexe Polygone, da sie sich in O(n) triangulieren lassen. (Man verbindet einfach einen Eckpunkt mit jedem anderen.) Leider ist die Zerlegung in konvexe Teilpolygone genauso aufwändig wie die Triangulierung selbst. Algorithmische Geometrie 5. Schnitte von Polygonen 11

Monotones Polygon Die Lösung bieten monotone Polygone. Definition 2.18: Ein Polygon P heißt monoton bzgl. der Geraden l, wenn für jede zu l senkrechte Gerade l' der Schnitt P l' zusammenhängend ist (also aus keinem Punkt, aus einem Punkt oder aus einem Liniensegment besteht). Ein bzgl. der y-achse monotones Polygon heißt y-monoton. Wir wollen P zuerst in y-monotone Teile zerlegen und dann diese triangulieren. Um dies zu tun, beginnen wir am obersten Punkt von P und laufen abwärts zum tiefsten Punkt. Ein Eckpunkt an dem die Kanten von abwärts nach aufwärts (oder umgekehrt) wechseln, heißt Umkehrpunkte (turn vertex). Diese müssen durch Zerlegungen mit Diagonalen entfernt werden. Algorithmische Geometrie 5. Schnitte von Polygonen 12

Vertextypen Nachbarn Winkel unterhalb α < Π α α > Π α Startpunkt Trennpunkt oberhalb α Endpunkt α Schmelzpunkt Algorithmische Geometrie 5. Schnitte von Polygonen 13

Vertextypen Wir müssen dazu fünf Typen von Eckpunkten in P unterscheiden. Definition 2.19: Für zwei Punkte p, q der Ebene gelte: p ist unterhalb von q, falls p y < q y oder (p y = q y und p x > q x ). p ist oberhalb von q, falls p y > q y oder (p y = q y und p x < q x ). Definition 2.20: Ein Eckpunkt v eines Polygons p heißt Startpunkt (start vertex), wenn beide Nachbarn unterhalb von v liegen und der innere Winkel bei v kleiner als p ist. Trennpunkt (split vertex), wenn beide Nachbarn unterhalb von v liegen und der innere Winkel bei v größer als p ist. Endpunkt (end vertex), wenn beide Nachbarn oberhalb von v liegen und der innere Winkel bei v kleiner als p ist. Schmelzpunkt (merge vertex), wenn beide Nachbarn oberhalb von v liegen und der innere Winkel bei v größer als p ist. regulärer Punkt (regular vertex) in allen übrigen Fällen. Algorithmische Geometrie 5. Schnitte von Polygonen 14

Vertextypen Beispiel Nachbarn Winkel unterhalb α < Π α α > Π α Startpunkt Trennpunkt oberhalb α Endpunkt α Schmelzpunkt Algorithmische Geometrie 5. Schnitte von Polygonen 15

Vertextypen Beispiel Nachbarn Winkel unterhalb α < Π α α > Π α Startpunkt Trennpunkt oberhalb α Endpunkt α Schmelzpunkt Algorithmische Geometrie 5. Schnitte von Polygonen 16

y-monotonie Lemma 2.21: Ein Polygon ist y-monoton, wenn es keine Trennpunkte und Schmelzpunkte hat. Beweis: Sei P nicht y-monoton. Dann müssen wir einen Trennpunkt oder Schmelzpunkt finden. Da P nicht y-monoton ist, gibt es eine Gerade l, die P in mehreren Komponenten schneidet. l lässt sich so wählen, dass die am meisten linke Schnittkomponente ein Segment ist. Sei p der linke und q der rechte Schnitt von l mit P in diesem linken Segment. Wir laufen bei q nach oben los und folgen dem Rand bis wir wieder auf l treffen. Wenn dieser Punkt r rechts von q liegt, ist der höchste Punkt zwischen q und r ein Trennpunkt => fertig. Falls dagegen p = r gilt, laufen wir von q aus nach unten bis wir wieder l treffen, diesmal in r'. Diesmal muss r' p gelten, da der Rand von P l mind. dreimal trifft. Der tiefste Punkt zwischen q und r' ist nun ein Schmelzpunkt. QED. Algorithmische Geometrie 5. Schnitte von Polygonen 17

y-monotonie Idee Die Unterteilung in y-monotone Teile erreicht man durch Einfügen passender Diagonalen an den Trenn- und Schmelzpunkten. Wir nummerieren die Ecken v 1,...,v n des Polygons gegen den Uhrzeigersinn und bezeichnen mit e i =v i v i 1 die Kanten. Wieder gelangt ein Plane Sweep zum Einsatz, wobei die Kanten in der Zustandsstruktur gehalten werden und die Eckpunkte die Ereignispunkte sind. Ferner brauchen wir noch die Eckpunkte für die Diagonalen. Algorithmische Geometrie 5. Schnitte von Polygonen 18

Hilfspunkte Dazu definieren wir: Definition 2.22 (Hilfspunkt): Sei v i ein Trennpunkt und e j die Kante links von v i entlang der Sweep Line. Dann ist der Hilfspunkt helper(e j ) der niedrigste Eckpunkt oberhalb der Sweep Line, so dass die x-parallele Strecke e j zu helper(e j ) ganz in P liegt. Die Hilfspunkte helper(e j ) speichern wir stets mit den Kanten und aktualisieren an den Ereignispunkten. Der Trennpunkt wird dann mit helper(e j ) verbunden und verschwindet. Algorithmische Geometrie 5. Schnitte von Polygonen 19

Entfernen von Schmelzpunkten Um die Schmelzpunkte zu entfernen, drehen wir die Betrachtung einfach um. Der Schmelzpunkt wird helper(e j ) einer Kante e j. Wir verbinden ihn mit dem nächsten Hilfspunkt der Kante e j oder dem Endpunkt der Kante e j, sofern kein weiterer Hilfspunkt auftaucht. Algorithmische Geometrie 5. Schnitte von Polygonen 20

y-monotonie Algorithmus Nun können wir den Algorithmus zur Umwandlung in y-monotone Polygone formulieren. Wir nehmen dazu an, dass das Polygon P wieder als doppelt verknüpfte Liste gegeben ist, da dies das Trennen erleichtert. Ist es nicht so gegeben, müssen wir P erst in diese Form bringen. Algorithmische Geometrie 5. Schnitte von Polygonen 21

y-monotonie Algorithmus Im Algorithmus sind die einzelnen Fälle Startpunkt, Endpunkt, Trennpunkt, Schmelzpunkt und regulärer Punkt zu trennen. Algorithmische Geometrie 5. Schnitte von Polygonen 22

y-monotonie Algorithmus Algorithmische Geometrie 5. Schnitte von Polygonen 23

Korrektheitsbeweis für Algorithmus Nun lässt sich die Korrektheit beweisen. Lemma 2.23: MAKEMONOTONE zerlegt ein Polygon P in y-monotone Teilpolygone durch Hinzufügen schnittpunktfreier Diagonalen. Beweis: Offensichtlich enthalten die verbleibenden Stücke keine Trenn- und Schmelzpunkte mehr, da die Diagonalen am Trennpunkt nach oben und am Schmelzpunkt nach unten verlaufen. Also sind die Teile y-monoton nach Lemma 2.21. Wir zeigen nun, dass eine neue Diagonale in HANDLESPLITVERTEX keine Linien in unserer gegenwärtigen Struktur schneidet. Die Korrektheit der übrigen Funktionen lässt sich analog beweisen. Ferner nehmen wir an, dass alle Eckpunkte verschiedene y- Koordinate haben. Sei v m v i ein neues Segment in HANDLESPLITVERTEX. Es sei e j die Kante links von v i und e k die Kante rechts von v i. Es ist v m = helper(e j ). Wir betrachten den Bereich Q zwischen e j und e k, den wir parallel zur x-achse bei v i und v m abschneiden. Algorithmische Geometrie 5. Schnitte von Polygonen 24

Korrektheitsbeweis für Algorithmus Die neue Diagonale verläuft in diesem Bereich. Ferner liegen dort keine anderen Punkte oder Ecken, da das letzte Ereignis v m war, also sind e j und e k dort stets benachbart. Daher kann die Diagonale keine anderen Kanten oder Ecken schneiden. QED Algorithmische Geometrie 5. Schnitte von Polygonen 25

Komplexität Theorem 2.24: Ein einfaches Polygon mit n Ecken kann in O(n log n) Zeit mit O(n) Speicher in y-monotone Teile zerlegt werden. Beweis: Der Aufbau von Q kann in O(n log n) erfolgen, T wird in O(1) leer initialisiert. Die Schritte in den Unterroutinen bestehen aus max. einer Operation auf Q, einer Suche, einem Einfügen und einem Löschen in T. Dies erfolgt in O(log n). Da es insgesamt n Ereignisse gibt, folgt die Aussage. QED Algorithmische Geometrie 5. Schnitte von Polygonen 26

Triangulierung monotoner Polygone Die Idee liegt natürlich in der schönen Eigenschaft, dass wir beim Triangulieren jetzt den beiden Rändern (links und rechts) entlang laufen können und uns stets nach unten bewegen. Dadurch können wir einfach die geeigneten Eckpunkte für die Diagonalen finden. Es ergibt sich ein schöner O(n) Greedy Algorithmus. Algorithmische Geometrie 5. Schnitte von Polygonen 27

Triangulierung monotoner Polygone Die verbleibende kleine Schwierigkeit gegenüber konvexen Polygonen ist die Existenz von Eckpunkten mit einem Innenwinkel > 180. Dieses lösen wir durch einen Stapel (stack) S. Der Algorithmus läuft die Punkte in absteigender y- Koordinatenrichtung durch. Der noch nicht triangulierte Teil des Polygons oberhalb der y- Koordinate besteht dabei stets auf einer Seite aus einer Kante, die beim untersten Element des Stapels beginnt und auf der anderen Seite aus den Punkten im Stapel, die jeweils einen Innenwinkel > 180 haben, wobei die Reihenfolge im Stapel genau von unten nach oben ist. Algorithmische Geometrie 5. Schnitte von Polygonen 28

Triangulierung monotoner Polygone Wenn ein neuer Punkt v j bearbeitet wird, gibt es zwei Fälle: (1) Er liegt auf der gleichen Seite wie die Kette von Punkten im Stapel. (2) Er ist der Endpunkt der Kante zum untersten Punkt im Stapel. Im ersten Fall holen wir den obersten Punkt vom Stapel. Dieser ist durch eine Kante mit v j verbunden. Also holen wir den nächsten Punkt vom Stapel und versuchen ein Dreieck zu bilden. Wenn dies gelingt, fahren wir fort. Wenn das Dreieck außerhalb des Polygons liegt, kommen erst die beiden anderen Punkte und dann v j oben auf den Stapel. Algorithmische Geometrie 5. Schnitte von Polygonen 29

Triangulierung monotoner Polygone Der zweite Fall ist einfach, denn wir können Diagonalen zu allen Punkten im Stapel bis auf den unteren bilden, der ja bereits mit v j verbunden ist. Wir tun dies und legen anschließend den zuvor oben auf dem Stapel gelegenen Punkt und dann v j in den Stapel. Fertig. Algorithmische Geometrie 5. Schnitte von Polygonen 30

Triangulierung monotoner Polygone Algorithmus Algorithmische Geometrie 5. Schnitte von Polygonen 31

Komplexität Theorem 2.25: Ein y-monotones Polygon mit n Ecken kann in linearer Zeit trianguliert werden. (Dabei sind Punkte mit gleicher y-koordinate von links nach rechts zu behandeln.) Ferner folgt zusammen mit der Zerlegung in y-monotone Teile: Theorem 2.26: Ein einfaches Polygon mit n Ecken kann in O(n log n) Zeit und O(n) Speicher trianguliert werden. Wichtig ist, dass unsere Algorithmen genauso gut auf einer planaren Unterteilung oder Polygonen mit Löchern arbeiten können. Es gilt: Theorem 2.27: Eine planare Unterteilung mit n Ecken kann in O(n log n) Zeit mit O(n) Speicher trianguliert werden. Algorithmische Geometrie 5. Schnitte von Polygonen 32

Literatur Mit dem Art Gallery Theorem [V. Chvátal. A combinatorial theorem in plane geometry. J. Combin. Theory Ser. B, 18:39-41, 1975] beantwortete Chvátal eine Frage von Victor Klee aus dem Jahr 1973. Der einfache Beweis in diesem Abschnitt stammt von Fisk [S. Fisk. A short proof of Chvátal's watchman theorem. J. Combin. Theory Ser. B, 24:374, 1978]. Das Finden der minimalen Anzahl von Wächtern ist dagegen NP-hart [A. Aggarwal. The art gallery problem: Its variations, applications, and algorithmic aspects. Ph.D. thesis, Johns Hopkins Univ., Baltimore, MD, 1984]. Die Triangulierung monotoner Polygone in linearer Zeit stammt von Garey et al. [M. R. Garex, D. S. Johnson, F. P. Preparata, and R. E. Tarjan. Triangulating a simple polygon. Inform. Process. Lett., 7:175-179, 1978], während die Plane Sweep Lösung zur Zerlegung eines einfachen Polygons in monotone Teile von Lee und Preparata [D. T. Lee and F. P. Preparata. Location of a point in a planar subdivision and its applications. SIAM J. Comput., 6:594-606, 1977] erstmals beschrieben wurde. Algorithmische Geometrie 5. Schnitte von Polygonen 33