• Keine Ergebnisse gefunden

Das Voronoi Diagramm

N/A
N/A
Protected

Academic year: 2021

Aktie "Das Voronoi Diagramm"

Copied!
26
0
0

Wird geladen.... (Jetzt Volltext ansehen)

Volltext

(1)

Algorithmische Geometrie - SS 99 - Th. Ottmann

Das Voronoi Diagramm

1. Definition

2. Eigenschaften

3. Größe und Speicherung 4. Konstruktion

5. Verwendung

(2)

Das Voronoi-

Diagramm

(3)

Algorithmische Geometrie - SS 99 - Th. Ottmann

Euklidische Distanz:

d(p,q) = (px-qx)^2+(py-qy)^2

Das Voronoi-Diagramm VD(P) für eine Punktmenge P={p1,...,pn}

ist eine Einteilung der Ebene in Gebiete gleicher nächster Nachbarn.

Für einen Punkt p ist die Voronoi Region V(pi)

die Menge aller der Punkte, die näher zu pi als zu jedem anderen Punkt pj, j<>i, sind.

Voronoi Regionen

VD(P) besteht aus genau allen Voronoi Regionen V(p1),...,V(pn).

(4)

p V(p) = H(p,q)

(5)
(6)

Animationen des Voronoi-Diagramms

pi

V(pi)

haeppchen2.scr animation.scr

http://wwwpi6.fernuni-hagen.de/java/JavaAnimation

(7)

Algorithmische Geometrie - SS 99 - Th. Ottmann

2. Eigenschaften des Voronoi Diagramms

(1) Voronoi Regionen (Zellen) werden von Geradenstücken begrenzt.

Sonderfall:

Punkte kollinear

Sonst gilt:

Satz: Das Voronoi Diagramm VD(P) einer Punktmenge P ist zusammenhängend und besteht aus Liniensegmenten

und Halbgeraden.

(8)

Kanten von VD(P) sind Segmente oder Halbgeraden:

pi

pj

pk

h(pi.pj)

h(pj,pk)

Wenn pi, pj, pk drei nicht kollineare Punkte sind,

können h(pi,pj) und h(pj,pk) nicht parallel sein!

(9)

Algorithmische Geometrie - SS 99 - Th. Ottmann

VD(P) ist zusammenhängend:

Ann.: VD(P) nicht zusammenhängend.

Dann muß aufspaltende, konvexe Voronoi Zelle V(pi) existieren.

=> V(pi) ist konvex

=> V(pi) wird von zwei Parallelen berandet.

(10)

Weitere Eigenschaften (Annahme: Keine 4 Punkte auf einem Kreis):

(2) Jeder Knoten (Ecke) von VD(P) hat Grad 3

(3) In dem eine Voronoi Ecke definierenden Kreis liegt kein weiterer Punkt.

(11)

(5) Die Voronoi Region eines Punktes ist unbeschränkt genau dann, wenn der Punkt auf der konvexen Hülle der Punktmenge liegt.

(4) Jeder nächste Nachbar eines Punktes definiert eine Kante der Voronoi Region des Punktes.

(12)

Größe des Voronoi Diagramms:

V(p) kann n Ecken haben!

3. Größe und Speicherung

(13)

Algorithmische Geometrie - SS 99 - Th. Ottmann

Satz: Das Voronoi Diagramm VD(P) für eine Menge von n Punkten in der Ebene hat höchstens 2n-5 Ecken und 3n-6 Kanten.

v - e + f = 2

Verbinde alle Halbgeraden mit fiktivem Punkt Wende Formel von Euler an:

Für VD(P) + v = #Ecken von VD(P) + 1 e = #Kanten von VD(P) f = #faces von VD(P) = n

Jede Kante in VD(P) + hat genau zwei Ecken und Jeder Knoten von VD(P) + hat mindestens Grad 3:

=> Summe aller Knotengrade in Vor(P) + = 2 #Kanten von VD(P)

∞ ∞

>= 3 (#Ecken von VD(P) + 1)

(14)
(15)

Algorithmische Geometrie - SS 99 - Th. Ottmann

Speicherung des Voronoi-Diagramms

3 Records vertex {

Coordinates Incident Edge }

face {

OuterComponent InnerComponent }

;

;

s halfedge {

Origin Twin

IncidentFace Next

Prev };

:

1

2 3

4 5

1 = {(1,2) | 12}

z.B.

Knoten Fläche

1 3

4

5

6

1 = { 15 | [] }

Kante 54 = { 4 | 45 | 1 | 43 | 15 }

2

(16)

4.

(17)
(18)
(19)
(20)

Geometrisches Divide-And-Conquer

Problem: Bestimme alle Paare sich schneidender Segmente

A B

C

D E

A

B C D

A

C

B D

E E

S

S1 S2

(21)

Algorithmische Geometrie - SS 99 - Th. Ottmann

DAC-Konstruktion des Voronoi-Diagramms

Devide:

Teile P durch eine vertikale Trennlinie T in 2 etwa

gleich große Teilmengen P1 und P2. Falls |P|=1 => fertig

Conquer:

Berechne VD(p1) und VD(p2) rekursiv

Merge:

Berechne den P1 und P2 trennenden Kantenzug K Schneide VD(P1) und VD(P2) mittels K ab

Veinige Vor(P1) und Vor(P2) und K

Satz: K in O(n) => Laufzeit T(n) = O(n log n) Bew.: T(n) = 2 T(n/2) + O(n), T(1) = O(1)

T P2

P1

(22)

Berechnung von K

4 Tangentialpunkte P1 P2

erste Kante in K

letzte Kante in K Inkrementelle (sweep-line) Konstruktion

(p1 in P1 und p2 in P2 mit Senkrechte m, Sweep l) Ermittle Schnitt s1 von m mit VR(p1) unterhalb l Ermittle Schnitt s2 von m mit VR(p2) unterhalb l

Beobachtung: K y-monoton

Erweitere K um Geradenstück l si Setze l = si

Berechne neues K definierendes Paar p1,p2 Satz: Laufzeit O(n)

Bew: V(pi) sind konvex, demnach wird jede Vor-Kante

(23)

Algorithmische Geometrie - SS 99 - Th. Ottmann

Ein Beispiel

(24)

Alternative: Fortune’s Algorithmus

Beach-line

Sweep-line (Parabel-Menge)

Beobachtungen:

Schnitte der Parabeln definieren Kanten Neue "Telefone" definieren neue Parabeln

Parabel-Schnitte verschwinden, wenn C(P,q) 3 Punkte hat

(25)

Algorithmische Geometrie - SS 99 - Th. Ottmann

5. Verwendung (feste Objektmenge)

Dichtestes Punktepaar:

Durchlaufe Kantenliste für VD(P) und ermittle Minimum Alle Nächsten Nachbarn

Durchlaufe Kantenliste für VD(P) für alle Punkte und bestimme jeweils nächste Nachbarn

Minimaler Spannender Baum (nach Kruskal)

1. Jeder Punkt p aus P definiert 1-elementige Menge 2. Solange mehr als eine Menge T existiert

2.1 Finde p,p’ mit p in T und p’ nicht in T mit d(p,p’) minimal

2.2 Verbinde T und p’ enthaltenes T’ (Union)

Satz: Alle Verfahren in O(n log n)

(26)

Anwendungen (dynamische Objektmenge)

Suche nächsten Nachbarn

Idee: Hierarchische Untergliederung von VD(P)

1 Schritt: Triangulierung abgeschlossener Voronoi-Regionen (einfach, da konvex, O(n) groß)

2. Schritt: Zusammenfassung von Dreiecken und Aufbau eines

Suchbaumes a

b c a b c

A

A

Regel von Kirkpatrick:

Entferne jeweils Punkte mit Grad < 12,

es sei denn sein Nachbar ist bereits entfernt.

Satz:

Unter Anwendung der Regel von Kirkpatrick entsteht

ein Suchbaum logarithmischer Tiefe

Referenzen

ÄHNLICHE DOKUMENTE

We specialize our results on bisectors in general polyhedral norms, and we show that the combinatorial types of tropical bisectors of two points are classified in terms of a

Das Problem der lokalen Optimierung von Punktanordnungen wurde bereits Anfang des 19ten Jahrhunderts von Launhardt (1882) und Weber (1909) untersucht. Jahr- hunderts schritt

3. Wenn bei allen Orten aus T das Gewicht um den gleichen Betrag reduziert wird, verändert kein Punkt seine Zuordnung innerhalb der Orte von T. Es kann nur vorkommen, dass ein

Figure 2: Slice-and-Dice Treemap layouts of 698 nodes at 5 hierarchy levels with nodes of different sizes (left) and nodes of equal size (right)—the high aspect ratio between width

Zeigen Sie, dass zu jedem n &gt; 3 eine Menge von n Punkten in der Ebene existiert, so dass auf dem Rand einer Voronoi-Region n − 1 Knoten des Voronoi-Diagramms liegen. Aufgabe

Voronoi Edge: The common boundary between two adjacent Voronoi re- gions, VR(p, S) and VR(q, S), i.e., VR(p, S)∩VR(q, S ) ,is called a Voronoi edge. Voronoi Vertex: The common

Algorithmische Geometrie Voronoi Diagramme 03.06.15 c Elmar Langetepe SS ’15 1.!. All

Input: Zwei konvexe Hüllen CH(P1) und CH(P2) ; die größte x-Koordinate von CH(P1) ist kleiner als die kleinste x-Koordinate von CH(P2).. Voronoi-Diagramme