• Keine Ergebnisse gefunden

Konvexe Hülle im R

N/A
N/A
Protected

Academic year: 2022

Aktie "Konvexe Hülle im R"

Copied!
15
0
0

Wird geladen.... (Jetzt Volltext ansehen)

Volltext

(1)

Was bisher geschah

I Motivation, Beispiele

I maschinelle Repräsentation geometrischer Objekte imR2: Punkt, Gerade, Halbebene, Strecke, Polygon,

ebene Zerlegung in Regionen (planare Graphen)

I spezielle Datenstrukturen zur (mehrfachen) effizienten Suche

Algorithmen zur

I Bestimmung der konvexe Hülle endlicher Punktmengen P ⊆R2

I Bestimmung aller Schnittpunkte einer endlichen Menge von StreckenS⊆ R22

I Bestimmung von Triangulierungen von PolygonenP ⊆R2

I Punktsuche in Regionen (Suchstruktur)

I Voronoi-Diagramme, Delone-Triangulierungen

(2)

Konvexe Hülle im R

3

Anwendung z.B.

I zur Kollisionserkennung

I in Computergraphik

I Konvexe Hülle vonnPunkten hat höchstensnEcken.

I Jedes konvexe Polyeder imR3mitnEcken hat

I höchstens 3n6 Kanten und

I höchstens 2n4 Flächen.

Beobachtung:

Menge der Kanten jedes konvexen PolyedersP ⊆R3ist ein planarer Graph

162

(3)

Repräsentation der konvexen Hülle im R

3

Menge der Kanten jedes konvexen PolyedersP ⊆R3ist ein planarer Graph.

Repräsentation als doppelt verkettete Kantenliste (mit Eckenv ∈R3)

Aufgabe conv-3d:

gegeben: endliche PunktmengeP={p1, . . . ,pn} ⊆R3 gesucht: conv(P),

repräsentiert als doppelt verkettete Kantenliste Vereinbarung:

Kantenfolge entlang der Flächen entegegen Uhrzeigersinn (von außerhalb des Polygons gesehen)

(4)

Berechnung der konvexen Hülle

Idee:randomisierterAlgorithmus

I Beginn: Auswahl vonP0 ={p1, . . . ,p4} ⊆P, die nicht in einer Ebene liegen,

konvexe Hülle conv(P0)ist Tetraeder

I restliche Punkteq ∈P in zufälliger ReihenfolgezuP0 hinzufügen:

mögliche Fälle

1. qconv(P0): conv(P0∪ {q}) =conv(P0) 2. q6∈conv(P0):

vonqsichtbare Flächenaus conv(P0)entfernen und für jede Kanteuv auf demHorizontDreieck(u,v,q)zu conv(P0)hinzufügen

164

(5)

Sichtbarkeit von Punkten

gegeben: konvexes PolygonP ⊆R3

(als doppelt verkettete Kantenliste), Punktq∈R3

Flächef inPist vonq(von außen)sichtbargdw.

q6∈h(f)(Halbraum mitf in Grenzebene) Beobachtung:

von Punkten innerhalb des Polygons ist keine Polygonfläche sichtbar

vonqsichtbarer Bereich vonP:

I = Menge aller vonqsichtbaren Flächen inP

I ist zusammenhängender Bereich inP (dualer Graph zusammenhängend) HorizontvonPbzgl.q:

äußere Begrenzung des vonqsichtbaren Bereiches inP (geschlossener Kantenzug)

(6)

Bestimmung der sichtbaren Flächen

naiv:

I jede Fläche testen (O(|F|), fürnPunkteO(n))

I Gesamtlaufzeit zur Bestimmung der konvexen Hülle:O(n2) bessere Idee:

Verwaltung von Zusatzinformation zur (bisher berechneten) konvexen Hülle conv(P0)mitP0 ⊆P

Konfliktmengen:

I zu jeder Flächef ∈conv(P0)

PC0 (f) ={q∈P\P0 |f vonqsichtbar}

I zu jeder Eckeq ∈P\P0

FC(q) ={f ∈conv(P0)|f vonq sichtbar}

166

(7)

Konflikt-Graph

gegeben: endliche PunktmengeP={p1, . . . ,pn} ⊆R3, P0⊆P,

conv(P0)als doppelt verkettete Kantenliste

Konfliktgraph für conv(P0):

bipartiter GraphG= (Vp∪Vf,E)mit

I Vp=P\P0

I Vf ={f |f ∈conv(P0)}

I KantenE ∈Vp×Vf mit

(p,f)∈E gdw.f vonpsichtbar

(8)

Verwaltung des Konflikt-Graphen

I zu Beginn des Algorithmus:|P0|=4, conv(P0)Tetraeder für jeden PunktqP\P0 und jede der 4 Tetraeder-Flächen Sichtbarkeit bestimmen

I Aktualisierung bei neu hinzukommendem PunktqP\P0: 1. qund alle Nachbarn vonqausGentfernen

(vonqsichtbare Flächen)

2. Knoten für neu erzeugte Flächenf0zuGhinzufügen (Dreieckef0= (q,u,v)zwischenqund Horizontkante(u,v) aus conv(P0))

3. Sichtbarkeit für Punkter P\(P0∪ {q})und jede neue Flächef0 = (q,u,v)feststellen,

ggf. Konfliktkante(r,f0)inGeinfügen

(wichtige) Beobachtung: neue Flächef0höchstens von den Punktenr P\(P0∪ {q})sichtbar, die wenigstens eine der an der Kante(u,v)benachbarten Flächenf1,f2sehen (nur Punkter Gp(f1)GP(f2))

Spezialfall: Dreieckf0 = (q,u,v)in derselben Ebene wie eine (nicht sichtbare) Flächef aus conv(P0)

168

(9)

Algorithmus

Algorithmus : conv-3d Eingabe:PR3endlich

Ausgabe:C=conv(P)als doppelt verkettete Kantenliste PP\P0,Cconv(P0)

(fürP0={p1,p2,p3,p4} ⊆P beliebig, aber nicht in einer Ebene) Initialisierung KonfliktgraphG

solangeP6=:

AuswahlqP(beliebig),PP\ {q}

wennGF(q)6=(Konflikte exisitieren)dann

C0 C,CC\GF(q)(sichtbare Flächen ausCentfernen) H Horizont (als Liste von Kanten)

für jedeseH:

f Dreieck(q,e),CCf (Fläche hinzufügen) (f1,f2)Flächen inC0 mit gemeinsamer Kantee K GP(f1)GP(f2)(potentielle Konfliktpunkte mitf) für jedesr K\ {q}:

wennr sieht f dannGGKante(r,f)

GG\q,GG\GF(q)(Konfliktflächen ausGentfernen)

(10)

Schnitte von Halbräumen und -ebenen

Dualität:

Paar(a,b)∈R2repräsentiert

I Punkt mit den Koordinaten(a,b)

I Geradey =ax−b

zu Punktp= (px,py)∈R2duale Gerade: p:y =pxx−py

zu Geradel :y =mx+ndualer Punkt: l= (m,−n) Beobachtungen:

I ∀p,l ∈R2:p∈lgdw.l ∈p

I ∀p,l ∈R2:poberhalb vonlgdw.l oberhalb vonp

I Punktepin oberer (unterer) konvexer Hülle vonP gdw.

min (max) über allep enthält ein Teil der Geradep

170

(11)

Lifting auf Einheits-Paraboloid

Einheits-ParaboloidinR3: U=

n

(x,y,z)∈R3|z =x2+y2o

Lifiting:

Projektionl:R2→R3von Punktenp∈R2auf Einheitsparaboloid:

∀p = (px,py)∈R2:l(p) = (px,py,p2x+p2y)

für gegebene Punktmengep∈R2:

I Punktmengel(P) ={l(p)|p ∈P} ⊆R3

I konvexe Hülle conv(l(P))⊆R3

I Projektion (der Kanten) der konvexen Hülle aufR2: Delone-Zerlegung vonP(imR2)

(12)

Tangentialebenen an U

euklidischer Abstand zwischen Punktenp,q ∈R2: d(p,q) =

q

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

Tangentialebeneh:R2→Ran Einheits-ParaboloidU im Punktl(p):

h(p) =2pxx+2pyy−(p2x+p2y)

Höhe der Tangentialebeneh(p)in beliebigem Punktq ∈R2: h(p)(q) = 2pxqx +2pyqy−(p2x+p2y)

l(q) = qx2+q2y

l(q)−h(p)(q) = (qx2+qy2) + (px2+p2y)−2pxqx −2pyqy

= (d(x,y))2

172

(13)

Voronoi-Diagramm

I Höhe der Tangentialebeneh(p)inqrepräsentiert (zusammen mitl(q)) den Abstand zwischenpundq

I Tangentialebenenh(p),h(q)schneiden sich in Punkten (rx,ry, . . .)mitd(r,p) =d(r,q)(Voronoi-Kanten)

Für jede PunktmengeP⊆R2:

H(P) = {h(p)|p ∈P}

E(H) = max

h∈H h

Projektion der Schnitte (Strecken) der inE benachbarten Ebenen auf die Ebenez =0:

Voronoi-Diagramm vonP

Berechnung von Voronoi-Diagrammen imR2durch Berechnung konvexer Hüllen imR3möglich

(14)

Höher-dimensionale konvexe Hüllen

Einheits-Paraboloid inRd+1: U=

(

(x1, . . . ,xd+1)Rd+1|xd+1=

d

X

i=1

x2 )

Lifiting: Projektionl:Rd Rd+1von Punkten auf Einheitsparaboloid durch

∀x Rd :l(x) =l(x1, . . . ,xd) = (x1, . . . ,xd,

d

X

i=1

x2)

für gegebene PunktmengepRd:

I Punktmengel(P) ={l(p)|pP} ⊆Rd+1

I konvexe Hülle conv(l(P))

I Delone-Zerlegung fürP:

Projektion der (unteren) konvexen Hülle aufRd

I Voronoi-Diagramm fürP:

Projektion der Schnitte der Tangentialräume

174

(15)

Kantenanzahl in konvexen Hüllen

Anzahl der Kanten der konvexen Hülle vonP⊆Rd mit|P|=n:

d =1: ≤2, O(1)

d =2: ≤n, O(n)

d =3: ≤3n−6, O(n)

d >3: (Upper bound theorem) O(nbd/2c)

Referenzen

ÄHNLICHE DOKUMENTE

[r]

Definition: Eine Strategie heißt vollst¨ andig, wenn es f¨ ur jedes Logik- Programm F und jede Zielklausel G, f¨ ur die es eine erfolgreiche Berechnung von F bei Eingabe von G

Falls der Wolf satt ist oder der Bauer anwesend ist, wird die Ziege nicht gefressen?. Formulieren Sie diese Bedingungen durch

Falls eine Punktmenge nur ein Element enthält, ist dieser Punkt die konvexe Hülle Ansonsten zerlege die Punktmenge so in zwei Hälften, dass alle Punkte der einen Menge links von

Heften Sie bitte ihre L¨osungen zusammen und schreiben Sie die Namen aller Personen ihrer Arbeitsgruppe auf die oberste Seite sowie die Tutoriumsgruppe, den Tutor und die Uhrzeit..

Gesucht ist eine bijektive Abbildung zwischen den ungekürzten Brüchen und den natür- lichen Zahlen..

Auch das Abbildungsverhalten ist sofort klar: In Richtung der ersten Achse passiert nichts, in Richtung der zweiten Achse haben wir den Kontraktionsfaktor p − q... In

In der Regel werden zwei oder drei Beispiele mit der quadratischen Ergän- zung durchgerechnet, und dann wird mit Hilfe der quadratischen Ergänzung die