Triangulierung von einfachen Polygonen

Ähnliche Dokumente
Triangulierung von einfachen Polygonen

6. Triangulation von Polygonen

2.4. Triangulierung von Polygonen

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

Algorithmische Geometrie 5. Triangulierung von Polygonen

Triangulierung von Polygonen und das Museumsproblem

Polygontriangulierung

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

Polygontriangulierung

Es sei P ein einfaches Polygon in der Ebene; P habe n Ecken. Hilfssatz: Zu jedem einfachen Polygon mit mehr als 3 Ecken existiert eine Diagonale.

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

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

Seminar. Algorithmische Geometrie

Algorithmische Techniken für Geometrische Probleme

Algorithmische Geometrie: Delaunay Triangulierung (Teil 1)

10 Delaunay Triangulierung

Algorithmische Geometrie 3. Schnitte von Liniensegmenten

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

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

GEOMETRIE (4a) Kurzskript

Konvexe Hülle. Konvexe Hülle. Mathematik. Konvexe Hülle: Definition. Mathematik. Konvexe Hülle: Eigenschaften. AK der Algorithmik 5, SS 2005 Hu Bin

Klausur. 18. Juli 2008, 10:15-12:15 Uhr. Name:... Matrikelnummer:... Anzahl beschriebener Blätter (ohne Aufgabenblatt):... D(p) : Y = p x X + p y

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

9 Minimum Spanning Trees

Algorithmische Geometrie: Delaunay Triangulierung (Teil 2)

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

DAS MUSEUMSWÄCHTERPROBLEM

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

Die Determinante eines Friesmuster

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

Ebene Elementargeometrie

17. Berliner Tag der Mathematik 2012 Wettbewerb Stufe III: Klassen 11 bis 12/13

Aufgabensammlung zur algorithmischen Geometrie

Entwurf und Analyse von Datenstrukturen

Polygone - Bausteine der Computergrafik

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

Algorithmen und Datenstrukturen 2

Geometrische Algorithmen

1 Rotating Calipers. 2 Antipodal und Copodal. 3 Distanzen Rechtecke Eigenschaften

6.1.2 Bem.: Für Vierecke ist der Begriff Innenwinkel im allgemeinen nicht sinnvoll. Skizze.

Algorithmen in Zellularautomaten

Kantengraphen und Planare Graphen. Seminararbeit

Dualität + Quad-trees

Konvexes Viereck Trapez Drachenviereck Parallelogramm Sehnenviereck Tangentenviereck. Haus der Vierecke. Dr. Elke Warmuth. Sommersemester 2018

Mathematische Probleme, SS 2015 Montag $Id: dreieck.tex,v /04/27 13:26:30 hk Exp $

Parallele Algorithmen in der Bildverarbeitung

Übungen zur Vorlesung Algorithmische Geometrie

1 Kürzeste Pfade in Graphen

Matchings in Graphen. Praktikum Diskrete Optimierung (Teil 5)

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

Übungsblatt 7 - Voronoi Diagramme

Datenstrukturen & Algorithmen Lösungen zu Blatt 4 FS 15

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

Quadtrees und Meshing

Geradenarrangements und Dualität von Punkten und Geraden

Schnupperkurs: Ausgewählte Methoden zur Aufgabenlösung

Quadtrees und Meshing

Quadtrees und Meshing

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

Algorithmen in Zellularautomaten

Proseminar Online Algorithmen, Prof. Dr. Rolf Klein

Stud.-Nummer: Datenstrukturen & Algorithmen Seite 1

Geradenarrangements und Dualität von Punkten und Geraden

Graphentheorie. Eulersche Graphen. Eulersche Graphen. Eulersche Graphen. Rainer Schrader. 14. November Gliederung.

Inhaltsverzeichnis. 1 Hardwaregrundlagen

Algorithmische Graphentheorie

Algorithmen und Datenstrukturen

Museumswächter, Bühnenbeleuchtung, Staubsaugerroboter

Naiver Algorithmus für Hamiltonkreis

Geometrie 1. Christian Bay Christian Bay Geometrie / 46

3 Längenendliche Verbände. Dimension

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

6.1.2 Bem.: Für Vierecke ist der Begriff Innenwinkel im allgemeinen nicht sinnvoll. Skizze.

Transkript:

Triangulierung von einfachen Polygonen Tobias Kyrion Inhaltsverzeichnis 1.1 Die Problemstellung....................... 1 2.1 Ein naiver Algorithmus...................... 2 3.1 Zerlegung in monotone Teilpolygone.............. 3 3.2 Triangulierung monotoner Polygone............... 4 4.1 Quellenangabe........................... 5 1.1 Die Problemstellung Die Problemstellung, die im Vortrag behandelt wird, ist die Zerlegung eines einfachen Polygons in Dreiecke. Ein Polygon ist durch endlich viele paarweise verschiedene Eckpunkte P 1,..., P n, n N im R 2 gegeben und die Verbindungsstrecken P i P i+1, i = 1,..., n 1 und P n P 1 sind seine Seiten. Es ist einfach, wenn sich seine Seiten paarweise nicht schneiden. Ein einfaches Polygon umgrenzt eine endlich große Fläche, die man sein Inneres nennt. Die Fläche, die das Innere umgibt, also der restliche R 2, heißt Äußeres. Das Polygon liefert folglich eine disjunkte Zerlegung des R 2 in sein Inneres und Äußeres. Eine Orientierung der Seiten ist sinnvoll, da man mit ihrer Hilfe leichter Inneres und Äußeres festlegen kann. Im Folgenden seien die Seiten stets im Uhrzeigersinn angeordnet. Eine Verbindungsstrecke von zwei Eckpunkten P k, P l, k, l {1,..., n}, k l, die keine Seite ist und vollständig im Inneren verläuft, ist eine Diagonale. Wenn eine Diagonale eingefügt wird, zerfällt ein einfaches Polygon in zwei kleinere disjunkte einfache Teilpolygone, bei denen die Diagonale jeweils eine Seite bildet. Dreiecke sind diejenigen einfachen Polygone mit geringstmöglicher Eckenanzahl. Offenbar kann man in Dreiecke keine Diagonale mehr einsetzen. Ziel ist es, durch iteratives Einfügen von Diagonalen in die jeweiligen Teilpolygone eine Zerlegung in Dreiecke zu erzeugen. Solch eine Zerlegung nennt man Triangulation. 1

2.1 Ein naiver Algorithmus Ein naheliegender algorithmischer Zugang zur Triangulation ist der sogenannte ear-clipping-algorithmus. Zwei (bzgl. der Orientierung) aufeinanderfolgende Seiten bilden eine Ecke, d.h. eine Ecke ist stets durch drei Eckpunkte gegeben. Von diesen drei Eckpunkten ist derjenige, welcher mit beiden Seiten der Ecke inzidiert, der mittlere Punkt. Weiterhin ist der andere Eckpunkt auf der ersten Seite der linke Punkt und der auf der zweiten Seite der rechte Punkt. Eine Ecke ist ein Ohr, wenn kein anderer Eckpunkt im Dreieck zwischen dem linken, mittleren und rechten Punkt liegt. Offenbar ist die Verbindungsstrecke vom linken und rechten Punkt eines Ohres eine Diagonale. Setzt man diese Diagonale ein, wird dadurch das Ohr vom Polygon abgetrennt. Das verbleibende Restpolygon besitzt dann einen Eckpunkt weniger als das Gesamtpolygon. Die Grundidee des ear-clipping- Algorithmus besteht nun darin, so lange Ohren vom jeweiligen Restpolygon anzuschneiden, bis nur noch ein Dreieck übrig bleibt, denn dann ist das Polygon vollständig trianguliert. Der Algorithmus funktioniert iterativ. In jeder Iteration werden die Eckpunkte des Restpolygons der Reihe nach darauf überprüft, ob sie ein mittlerer Punkt eines Ohres sind. Sobald ein Ohr gefunden wird, wird es abgeschnitten und man fährt in gleicher Weise mit dem neuen Restpolygon fort. Der Algorithmus ist korrekt, denn es ist bewiesen, dass jedes einfache Polygon mindestens ein Ohr besitzt. Nach Abschneiden eines Ohres ist das Restpolygon auch einfach, d.h., dass die Suche nach dem nächsten Ohr nach höchstens n Schritten erfolgreich ist, wobei n N die aktuelle Anzahl an Eckpunkten bezeichnet. In jeder Iteration wird also n um 1 verringert und somit terminiert der Algorithmus nach n gesamt 3 Iterationen. Die Laufzeitanalyse ergibt, dass der ear-clipping-algorithmus quadratische Laufzeit besitzt. Es stellt sich an dieser Stelle die Frage, ob es schnellere Algorithmen zur Triangulation gibt. 2

3.1 Zerlegung in monotone Teilpolygone Die Strategie für einen schnelleren Algorithmus ist Folgende: In einem ersten Schritt, der O(n log(n)) Zeit benötigt, wird das einfache Polygon in sogenannte monotone Polygone zerlegt. In einem zweiten Schritt werden diese in Linearzeit trianguliert. Sei g R 2 eine Gerade. Ein einfaches Polygon ist monoton bzgl. g, wenn die Schnittmenge aller Geraden senkrecht zu g mit seinem Inneren entweder die leere Menge, ein Punkt oder eine Strecke ist. Man nennt g dann auch seine Monotonieachse. Falls die Monotonieachse parallel zur x- oder y-achse des kartesischen Koordinatensystems im R 2 ist, so spricht man von einem x- bzw. y-monotonen Polygon. Man bemerkt, dass ein einfaches Polygon zwei Eckpunkte P l und P r besitzt, die am weitesten links bzw. rechts liegen. Ferner hat es eine obere und untere Kette, also zwei Streckenzüge aus Seiten, die beide bei P l beginnen und bei P r enden. Alle Eckpunkte auf der oberen Kette, ausgenommen die gemeinsamen Start- und Endpunkte, liegen oberhalb der unteren Kette. Wandert man auf einer der Ketten von links nach rechts, kann es passieren, dass sich die Durchlaufrichtung von links nach rechts bzw. von rechts nach links ändert. Einen Eckpunkt, bei dem dieser Fall eintritt, nennt man turnvertex. Man unterteilt die turn-vertices je nach Lage ihrer Nachbarpunkte und Größe ihrer Innenwinkel - das sind die Winkel, die von den inzidenten Seiten begrenzt werden und im Inneren liegen - in vier unterschiedliche Typen. Von besonderem Interesse sind dabei die sogenannten merge-vertices (Nachbarn beide links, Innenwinkel größer als 180 ) und split-vertices (Nachbarn beide rechts, Innenwinkel größer als 180 ), denn ein einfaches Polygon ist x-monoton, falls es keine split- oder merge-vertices aufweist. Die Eckpunkte werden in einer priority-queue gespeichert, wobei die Priorität die Größe der x-koordinate ist. Die Punkte werden dann aufsteigend nach ihrer x-koordinate verarbeitet, wobei nur auf die Punkte mit den jeweils kleineren x-koordinaten zugegriffen wird. Dieses Vorgehen ist als scan-line- Prinzip bekannt, denn es ist damit vergleichbar, dass man eine gedachte zur y-achse parallele Linie von links nach rechts über das Polygon wandern lässt und stets nur die Punkte links von dieser bearbeitet. Durch ausgeklügeltes Einsetzen von Diagonalen werden nun bei diesem Vorgang die split- und merge-vertices eliminiert, wodurch das Polygon in x- monotone Teile zerfällt. Dies ist stets ein korrekter Schritt. Die priorityqueue-operationen benötigen für jeden der n N Eckpunkte O(log(n)) Zeit, wodurch die behauptete Laufzeit von O(n log(n)) für die Zerlegung zustande kommt. 3

3.2 Triangulierung monotoner Polygone Weil ein x-monotones Polygon keine merge- oder split-vertices besitzt, sind die Eckpunkte in der oberen und unteren Kette aufsteigend nach der Größe ihrer x-koordinate geordnet. Außerdem stellt man fest, dass sich beliebige x-monotone Polygone in monotone Streifen und Berge zerlegen lassen. Ein monotoner Berg ist ein x- monotones Polygon, dessen obere oder untere Kette nur aus den beiden Eckpunkten P l und P r, die am weitesten links bzw. rechts liegen, besteht. Ein monotoner Streifen hat einen Eckpunkt abwechselnd in der oberen oder unteren Kette, wenn man die Eckpunkte von links nach rechts durchläuft. Die Berge kann man mit einer Abwandlung des ear-clipping-algorithmus mit Hilfe eines Stapels für die konvexen (d.h. Innenwinkel kleiner als 180 ) Eckpunkte des aktuellen Restpolygons in Linearzeit triangulieren. Es wird hierbei der Umstand ausgenutzt, dass ein konvexer Eckpunkt eines Berges schon automatisch ein mittlerer Punkt eines Ohres ist. Auch für die Triangulierung allgemeiner x-monotoner Polygone wird ein Stapel verwendet. Auf diesen wird immer derjenige nächste Punkt aus der oberen oder unteren Kette mit der kleineren x-koordinate gelegt. Man verwendet die beiden Zählvariablen UpCntr und DownCntr, die mit 0 initialisiert werden. UpCntr wird um 1 erhöht und DownCntr gleich 0 gesetzt, wenn der neue Punkt für den Stapel aus der oberen Kette stammt, andernfalls wird DownCntr um 1 erhöht und UpCntr gleich 0 gesetzt. Bevor die Zählvariablen gleich 0 gesetzt werden, haben sie entweder den Wert 0 (Initialisierung), sind gleich 1 oder größer als 1. Im ersten Fall ist nichts zu tun. Im zweiten Fall bilden der aktuelle Punkt und der oberste Punkt im Stapel eine Diagonale eines monotonen Teilstreifens. Diese wird dann direkt eingesetzt und der oberste Punkt im Stapel durch den aktuellen ersetzt. Im dritten Fall gehören der aktuelle Punkt und die Punkte im Stapel zu einem monotonen Teilberg. Man trianguliert diesen Teilberg in linearer Laufzeit und leert anschließend den Stapel. Die Teilstreifen werden also direkt trianguliert. Korrektheit und lineare Laufzeit sind für diese offensichtlich. Der Algorithmus für die Teilberge ist korrekt, demnach sind deren Triangulierungen auch korrekte Schritte. Die Laufzeitanalyse ergibt insgesamt lineare Laufzeit für die Triangulierung monotoner Polygone. Fazit: Der soeben gänzlich beschriebene zweischrittige Triangulierungsalgorithmus für einfache Polygone hat eine Laufzeit von O(n log(n))! 4

4.1 Quellenangabe M. de Berg, O. Cheong, M. van Krefeld, M. Overmars: Computational Geometry, Algorithms and Applications, p. 45-60 http://valis.cs.uiuc.edu/~sariel/teach/2004/b/webpage/lec/24_triang_ii.pdf 5