Delaunay-Triangulierungen

Werbung
Seminar Approximationstheorie
Lehrstuhl Mathematik IV
G. Nürnberger, M. Matt, G. Schneider
Delauny Triangulierung
Abbas Yavuz
15.09.2011
1
Inhaltsverzeichnis
 Polygon (n-Eck / Vieleck), Einfaches Polygon
 Triangulierung einfacher Polygone
 Anzahl von Dreicken in einem n-Eck für n≥3
* Beweis für [n-2 Dreiecke] in einem n-Eck für n≥3 durch vollständige Induktion
 Triangulierung einer beliebigen Punktmenge
 „Winkelvektor“ & „Winkeloptimal“
 „Edge-Flip“ & „illegale Kanten“
 Das Kreiskriterium
 Die Delauny-Triangulierung
* Ermittlung der Delauny-Triangulierung
* Delauny-Triangulierung Algorithmus
 LegalizeEdge Algorithmus
 Die Arbeitsweise des „Delauny-Triangulierung“ anhand eines Applets
2
Polygon (=n-Eck, Vieleck)
Definiton Polygone:
Unter einem Polygon P versteht man ein Gebiet im ℝ², welches
durch einen geschlossenen Polygonzug beschränkt wird.
Der Rand von P lässt sich also folgendermaßen darstellen:
-> P= Z(t0,…,
tn)
wobei tn = t0
Die Punkte t0,…,tn-1 werden auch als Ecken des
Polygons bezeichnet.
Die Mengen
Dieses Polygon besitzt 9 Ecken.
nennt man Kanten von P
Und alle anderen Verbindungsstrecken bezeichnet
man als Diagonalen:
3
Einfaches Polygon
 Gehören zu jeder Ecke höchstens zwei Kanten und ergibt der Schnitt
zweier Kanten die leere Menge oder einen Eckpunkt, so ist die Rede
von einem „einfachen Polygon“.
Kante des Polygons.
Diagonale des Polygons.
Ecke des Polygons.
Diagonale des Polygons = Menge aller Strecken zwischen den Ecken, die nicht zum
Rand gehören!
4
Triangulierung einfacher Polygone
Sei P ein einfaches Polygon!
 Triangulierung T(P) von P: Zerlegung von P in Dreiecke durch eine maximale Anzahl von
Diagonalen, die sich nur in einem Eckpunkt oder überhaupt nicht schneiden.
n=4;  4 Ecken. Hier ist es möglich, dieses
einfache Polygon durch eine Diagonale
in zwei Dreiecke zu zerlegen!
n=3  3 Ecken
Triangulierung mit einem 6-Eck:
Möglichkeit1:
6 Ecken, 3 Diagonale und
 4 Dreiecke
Möglichkeit2:
6 Ecken, 3 Diagonale und
 4 Dreiecke
Wichtig:
Bedingung = n≥3, sonst
kein geschlossener
Polygonzug möglich!
 Also mind. ein 3-Eck.
5
Anzahl von Dreicken für n≥3
 Für jedes einfache Polygon mit n≥3 Ecken existiert eine Triangulierung,
die aus genau n-2 Dreiecken besteht!
n=4  4-2 = 2,
 2 Dreiecke.
n=3  3-2 = 1,
 1 Dreieck.
n=5  5-2 = 3,
 3 Dreiecke.
n=9  9-2 = 7,
 7 Dreiecke.
6
Beweis für [n-2 Dreiecke] durch
Vollständige Induktion
 Für n=3 ist es offensichtlich erfüllt. (=> 3-2=1, ein Dreieck)
IA: Für alle n<m gilt: Es existiert ein T(P) mit genau „n-2“ Dreiecken.
n: Anzahl der Ecken
m: Anzahl eines beliebigen Polygons
Sei nun P ein Polygon mit m Ecken, z.B.
P2
Diagonale D. (Kante D)
Polygon P
P1
Durch Diagonale D ist P in
2 Teilpolygone zerlegt;
P1 mit m1 Ecken und P2 mit m2 Ecken.
 Nach Vss. können P1 und P2 trianguliert werden, und somit auch P.
 Da mind. 1 Ecke aus P1 nicht in P2 enthalten ist, folgt: m1 , m2 < m
 Für die Anzahl der Dreiecke in P gilt nun folgende Überlegung:
- Beide Teilpolygone P1 & P2 teilen sich NUR die Kante D.
- Daher liegen auch NUR die 2 zugehörigen Ecken in dem Schnitt der beiden
Eckmengen. Somit gilt: (m1 + m2 = m + 2)
- Nach IV besteht P1 aus (m1 – 2) und P2 aus (m2 - 2) Dreiecken.
 Also besteht P aus (m1 – 2) + (m2 - 2) = (m +2) – 4 = m – 2 Dreiecken.
Dies entspricht der Behauptung!
7
Triangulierung einer beliebigen
Punktmenge (1/2)
Höhe der Punkte aus der vorgegebenen Punktmenge (=Terrain/Landschaft) nur an
bestimmten Messpunkten bekannt.
Daher: Approximation/Interpolation der Zwischenräume erforderlich, um sich ein
ein Bild von der Oberfläche zu verschaffen.
 Durch die Triangulierung dieser Punktemenge entstehen Dreiecke!
 Diese Landschaft kann als ein Graph einer Funktion f: ℝ²  ℝ formuliert werden, die jedem
Punkt der Ebene eine bestimmte Höhe zuweist.
8
Triangulierung einer beliebigen
Punktmenge (2/2)
Def. Einer Triangulierung T einer Punktmenge P:
 Eine Triangulierung T(P) ist eine planare Aufteilung der konvexen Hülle von P in Dreiecke mit
Eckpunkten aus P. (planar = Keine Kanten schneiden sich)
Anzahl von Dreiecken und Kanten:
Jede beliebige Triangulierung T(P) mit Punkten P={p1,…,pn} hat (2n-2+k) Dreiecke
und (3n-3-k) Kanten. (k= Anzahl der Punkte, die auf dem Rand liegen.)
-
Anzahl der Dreiecke m= 2n-2+k   Somit hat T(P) m Dreiecke!
Anzahl der Kanten ne = 3n-3-k
9
„Winkelvektor“ & „Winkeloptimal“
Definition „Winkelvektor“:
- Gegeben sei eine Triangulierung T(P) mit m Dreiecken.
- Somit gibt es demnach  3m Winkel.
- Alle Winkel einer Triangulierung T(P) sind in einem Vektor angelegt, die aufsteigend
sortiert sind nach der Größe: A(T) von T.  A(T) = {a1,…, a3m}
Definition „Winkeloptimal“:
- Eine Triangulierung T(P) ist winkeloptimal, wenn ihr Winkelvektor im vgl. zu allen
anderen möglichen Triangulierung T‘ der größte ist:
 A(T(P)) ≥ A(T‘(P)) für alle T‘ von P gilt!
10
Edge-Flip & Illegale Kanten
Kante pipj
Kante plpk
Definition „Edge-Flip“:
- Entfernen der Kante pipj und Hinzufügen der Kante plpk
Definition „Illegale Kante“:
- Voraussetzung hierfür ist, wenn durch einen „Edge-Flip“ der minimale der 6 Winkel
vergrößert werden kann, also
11
Das Kreiskriterium
 Sei nun C der Kreis durch pi,pj und pk. Die Kante pipj ist genau dann illegal,
wenn der Punkt pl im Inneren von C liegt.
12
Die Delauny Triangulierung
 Nun wird der Voronoi-Graph einer Punktmenge P betrachtet.
- Der Delauny-Graph von P besitzt nun
-- einen Knoten für jeden Punkt in P
-- einen Bogen zwischen 2 Knoten, wenn die zugehörigen
Voronoi-Zellen eine gemeinsame Kante besitzen.
 Wenn die Bögen zu geraden Linien
überführt werden, so entsteht der
Delauny-Graph DG(P)
Wichtig: In einem Delauny-Graph kreuzen sich keine zwei Kanten!
(Eine Triangulierung t ist legal, wenn T eine Delauny Triangulierung von P ist.
13
Ermittlung der Delauny-Triangulierung
„Randomized incremental“ – Algorithmus:
 Punkte der Punktmenge P werden nacheinander in willkürlicher Reihenfolge dem
Graphen hinzugefügt.
Hilfsdreieck durch die Punkte p0 p-1 p-2 zeichnen:
Durch dieses Hilfsdreieck werden
Begrenzungen erzeugt,
wobei das Dreieck alle Punkte
von P im Innern haben muss.
14
Ermittlung der Delauny-Triangulierung
Ein Punkt pr wird hinzugefügt:
GESUCHT: 1.) Das Dreieck, in das der Punkt fällt.
2.) Die Kante, auf die der Punkt fällt.
Der Punkt pr in einem Dreieck:
 3 Kanten werden daher hinzugefügt.
Der Punkt pr auf einer Kante:
 2 Kanten werden daher hinzugefügt.
15
Delauny Triangulierung - Algorithmus
Algorithmus: Delauny Triangulierung (P)
Input:
Eine Punktemenge P in der Ebene.
Output: Eine Triangulierung t von P
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
P0p-1p-2 seien Punkte derart, dass P im Dreieck p0p-1p-2 enthalten ist.
T als Triangulierung bestehend aus p0p-1p-2 initialisieren.
Berechne eine zufällige Reihenfolge der Punkte p1,p2,…,pn von P
for r=1 to n do
Suche das Dreieck pipjpk das pr enthält.
Füge pr zu T hinzu.
If (pr liegt im Innern des Dreiecks pipjpk) then
Füge die drei Kanten von pr zu pipjpk zu T hinzu.
LEGALIZEEDGE (pr,pipj,T)
LEGALIZEEDGE (pr,pjpk,T)
LEGALIZEEDGE (pr,pkpi,T)
else pr liegt auf einer Kante pi pj des Dreiecks.
Füge die zwei Kanten von pr zu pk und pl zu T hinzu
LEGALIZEEDGE (pr,pipl,T)
LEGALIZEEDGE (pr,plpj,T )
LEGALIZEEDGE (pr,pjpk,T)
LEGALIZEEDGE (pr,pkpi,T)
Entferne p0 p-1 p-2 und alle zugehörigen Kanten.
Return T
16
LegalizeEdge- Algorithmus
 Die Triangulierung, die man nach Hinzufügen der Kanten erhalten hat, muss noch in
eine Delauny-Triangulierung mit lediglich legalen Kanten umgewandelt werden.
 Nur, wenn ein zugehöriges Dreieck verändert wurde, können legale Kanten illegal
werden!
DAHER: Nur die Kanten der neuen Dreiecke müssen überprüft werden!
JEDOCH: Wenn LEGALIZEEDGE einen Edge-Flip durchführt, können dann
andere Kanten illegal werden!
Schlussfolgerung: Rekursiver Aufruf von LEGALIZEEDGE innerhalb der Prozedur!
Algorithmus: LEGALIZEEDGE (pr,pipj,T)
1 pr ist hinzugefügter Punkt, pi pj ist Kante von T, die evtl. illegal ist
2 if (pi pj ist illegal) then
3
Sei pipjpk das gegenüberliegende Dreieck zu prpipj bezüglich pipj
4
Ersetze pi pj mit pr pk (Edge-Flip!)
5 LEGALIZEEDGE (pr,pipk,T)
6 LEGALIZEEDGE (pr,pkpj,T)
17
LegalizeEdge- Algorithmus
Überprüfung, ob Kante illegal ist, kann durch die Anwendung des Kreiskriteriums
durchgeführt werden!
Folge:
Offensichtlich ist nun, dass
neu hinzugefügte legale
Kanten immer zu pr
zugehörig sind.
Fazit:
Da eine Kante nur dann illegal werden kann, wenn ein zugehöriges Dreieck verändert wird
und da auch jedes pr zugehöriges Dreieck durch LEGALIZEEDGE überprüft wird, folgt
demnach die Korrektheit des Algorithmus!
18
Arbeitsweise des „Delauny-Algorithmus“
Die Arbeitsweise des „Delauny-Algorithmus“ anhand
eines Applets, das den Algorithmus schrittweise verdeutlicht!
http://www.pi6.fernuni-hagen.de/GeomLab/VoroGlide/
19
Ich bedanke mich für eure Aufmerksamkeit!
20
Literaturverzeichnis
 Mark de Berg, Otfried Cheong, Marc von Kreveld & Mark Overmars,
„Computational Geometry: Algorithms and Applications“ (2008)
 http://www.cs.uu.nl/geobook/
 http://www.pi6.fernuni-hagen.de/GeomLab/VoroGlide/
(Applet der Fernuni-Hagen)
 Tom Dickmeiß (Uni-Bonn), „Zur graphtheoretischen Dilation der DelaunyTriangulation und verwandter Graphen“ (2005)
 Matthias Lenga (Uni-Ulm), „Algorithmen: Delauny Triangulation“ (2010)
http://www.uniulm.de/fileadmin/website_uni_ulm/iui.inst.190/Lehre/WS0910/ProseminarAlgo/ausarb
eitung_Delaunay_Triangulationen.pdf
21
Herunterladen