Konvexe Hüllen Im dreidimensionalen Raum. Allg. Grundlagen: Polyeder Polyeder stellen eine durch...

27
Konvexe Hüllen Konvexe Hüllen Im dreidimensionalen Raum Im dreidimensionalen Raum

Transcript of Konvexe Hüllen Im dreidimensionalen Raum. Allg. Grundlagen: Polyeder Polyeder stellen eine durch...

Page 1: Konvexe Hüllen Im dreidimensionalen Raum. Allg. Grundlagen: Polyeder Polyeder stellen eine durch Punkte, Kanten und Polygone definierte Oberfläche dar.

Konvexe HüllenKonvexe Hüllen

Im dreidimensionalen RaumIm dreidimensionalen Raum

Page 2: Konvexe Hüllen Im dreidimensionalen Raum. Allg. Grundlagen: Polyeder Polyeder stellen eine durch Punkte, Kanten und Polygone definierte Oberfläche dar.

Allg. Grundlagen: PolyederAllg. Grundlagen: PolyederPolyeder stellen eine durch Punkte, Kanten und Polygone Polyeder stellen eine durch Punkte, Kanten und Polygone

definierte Oberfläche dar.definierte Oberfläche dar.Um ungeordnete Oberflächensammlungen von hinreichend Um ungeordnete Oberflächensammlungen von hinreichend

abgeschlossenen Volumen unterscheiden zu können, abgeschlossenen Volumen unterscheiden zu können, führen wir die Bezeichnung ‚proper‘ ein.führen wir die Bezeichnung ‚proper‘ ein.

Ein Polyeder ist ‚proper‘ gdw. Ein Polyeder ist ‚proper‘ gdw. (1) für jedes Paar von Polygonen gilt, dass sie

a) Disjunkt sind.b) Einen Punkt gemein haben.c) Zwei Punkte und die zugehörige Kante

gemeinsam haben.(2) die Umgebung eines jedes Punktes flach auf eine

Ebene projizierbar ist und eine den Punkt umschließende Scheibe ergibt. Hierbei dürfen sich Dreiecke nicht überlappen.

(3) von jedem Punkt der Oberfläche jeder weitere über Flächen und Kanten erreichbar ist.

Page 3: Konvexe Hüllen Im dreidimensionalen Raum. Allg. Grundlagen: Polyeder Polyeder stellen eine durch Punkte, Kanten und Polygone definierte Oberfläche dar.

Polytope – Polytope – konvexe Polyederkonvexe Polyeder

Die Konvexität eines Polyeders lässt sich durch die Die Konvexität eines Polyeders lässt sich durch die folgenden äquivalenten Sätze bestimmen.folgenden äquivalenten Sätze bestimmen.

a)a) Für jedes Paar von Dreiecken, die eine Kante gemein haben, gilt, Für jedes Paar von Dreiecken, die eine Kante gemein haben, gilt, dass der innere Winkel zwischen den beiden Dreiecken nicht größer dass der innere Winkel zwischen den beiden Dreiecken nicht größer

alsals ππ sein darf.sein darf.

b)b) Die Winkelsumme aller Kanten um einen Punkt darf nicht größer als Die Winkelsumme aller Kanten um einen Punkt darf nicht größer als

2*2* π π sein.sein.

α <= πα <= π 2i

Page 4: Konvexe Hüllen Im dreidimensionalen Raum. Allg. Grundlagen: Polyeder Polyeder stellen eine durch Punkte, Kanten und Polygone definierte Oberfläche dar.

Eulersche FormelEulersche Formel

Def.: Def.: Der Genus eines Polyeders gibt die Anzahl der ‚Tunnel‘ an, die durch das Der Genus eines Polyeders gibt die Anzahl der ‚Tunnel‘ an, die durch das Polyeder hindurch führen. Ein einfaches Polyeder vom Genus 1 stellt der Polyeder hindurch führen. Ein einfaches Polyeder vom Genus 1 stellt der Torus dar.Torus dar.

Für Polyeder vom Genus 0 stellte Leonard Euler 1758 die folgende Formel auf:Für Polyeder vom Genus 0 stellte Leonard Euler 1758 die folgende Formel auf:Sei P die Anzahl aller Punkte, K die Anzahl aller Kanten und F die Anzahl aller Flächen Sei P die Anzahl aller Punkte, K die Anzahl aller Kanten und F die Anzahl aller Flächen

eines Polyeders, so gilt:eines Polyeders, so gilt:

P – K + F = 2P – K + F = 2

Um Eulers Formel zu beweisen muss das Polyeder zunächst in einen planaren Graphen Um Eulers Formel zu beweisen muss das Polyeder zunächst in einen planaren Graphen umgewandelt werden:umgewandelt werden:

Wird aus einem Polyeder eine Fläche f entfernt, so ist es möglich, das Polyeder so auf Wird aus einem Polyeder eine Fläche f entfernt, so ist es möglich, das Polyeder so auf eine Ebene zu strecken, dass sich keine zwei Kanten schneiden, keine zwei eine Ebene zu strecken, dass sich keine zwei Kanten schneiden, keine zwei Punkte zusammenfallen und kein Punkt innerhalb einer Fläche liegt. Auf dieser Punkte zusammenfallen und kein Punkt innerhalb einer Fläche liegt. Auf dieser Ebene ist nun jede Fläche des Polyeders mit Ausnahme von f von jeweils n Ebene ist nun jede Fläche des Polyeders mit Ausnahme von f von jeweils n Kanten eingeschlossen. f bildet die umschließende Fläche.Kanten eingeschlossen. f bildet die umschließende Fläche.

Das gestreckte Polyeder bildet damit nun einen 2-dimensionalen Graph.Das gestreckte Polyeder bildet damit nun einen 2-dimensionalen Graph.

Page 5: Konvexe Hüllen Im dreidimensionalen Raum. Allg. Grundlagen: Polyeder Polyeder stellen eine durch Punkte, Kanten und Polygone definierte Oberfläche dar.

Eulersche FormelEulersche FormelInduktionsbeweisInduktionsbeweis

Induktionsanfang:Induktionsanfang:Sei G ein Graph mit zwei Punkten und einer Kante. Die einzige Fläche ist Sei G ein Graph mit zwei Punkten und einer Kante. Die einzige Fläche ist die umschließende. D.h. P = 2, K = 1, F = 1 => P – K + F = 2 – 1 +1 = 2die umschließende. D.h. P = 2, K = 1, F = 1 => P – K + F = 2 – 1 +1 = 2

Induktionsschritt:Induktionsschritt:

Sei GSei Gn-1n-1 ein Graph mit n-1 Kanten, p ein Graph mit n-1 Kanten, pn-1n-1 Punkten und f Punkten und fn-1n-1 Flächen, für den Flächen, für den Eulers Formel gelte. D.h. pEulers Formel gelte. D.h. pn-1n-1 – (n-1) + f – (n-1) + fn-1n-1 = 2 = 2

Annahme: Eulers Formel gilt für GAnnahme: Eulers Formel gilt für Gnn

Für die neue Kante gelte die Einschränkung, dass sie an den Für die neue Kante gelte die Einschränkung, dass sie an den bestehenden Graph anknüpfen muss. Daraus ergeben sich die folgenden bestehenden Graph anknüpfen muss. Daraus ergeben sich die folgenden beiden Möglichkeiten:beiden Möglichkeiten:

1.1. Die Kante teilt eine bestehende Fläche, d.h. sie knüpft an bestehende Punkte an. Die Kante teilt eine bestehende Fläche, d.h. sie knüpft an bestehende Punkte an. Daraus folgt pDaraus folgt pnn = p = pn-1n-1 bzw. f bzw. fnn = f = fn-1n-1 +1 +1

=> p=> pnn – n + f – n + fnn = p = pn-1n-1 – n + f – n + fn-1n-1+1 = p+1 = pn-1n-1 – (n-1) + f – (n-1) + fn-1n-1 = 2 = 2

2.2. Die Kante teilt keine bestehende Fläche, d.h. es muss genau ein weiterer Punkt Die Kante teilt keine bestehende Fläche, d.h. es muss genau ein weiterer Punkt hinzugefügt werden. Die Flächenanzahl hingegen bleibt gleich. Daraus folgt phinzugefügt werden. Die Flächenanzahl hingegen bleibt gleich. Daraus folgt pnn = p = pn-1n-1 +1 bzw. f+1 bzw. fnn = f = fn-1n-1

=> p=> pnn – n + f – n + fnn = p = pn-1n-1 +1 – n + f +1 – n + fn-1n-1 = p = pn-1n-1 – (n-1) + f – (n-1) + fn-1n-1 = 2 = 2

qed.qed.

Page 6: Konvexe Hüllen Im dreidimensionalen Raum. Allg. Grundlagen: Polyeder Polyeder stellen eine durch Punkte, Kanten und Polygone definierte Oberfläche dar.

Bildung konvexer Hüllen aus Bildung konvexer Hüllen aus PunktmengenPunktmengen

Divide and ConquerDivide and Conquer

Ermittlung der konvexen Hülle durch Aufteilung der Ermittlung der konvexen Hülle durch Aufteilung der Punktmenge und verschmelzen konvexer HüllenPunktmenge und verschmelzen konvexer Hüllen

Laufzeit: O (n log n)Laufzeit: O (n log n)

Incremental AlgorithmIncremental Algorithm

Ausgehend von einem Tetraeder wird die Gesamthülle Ausgehend von einem Tetraeder wird die Gesamthülle durch schrittweises hinzufügen der verbleibenden durch schrittweises hinzufügen der verbleibenden Punkte.Punkte.

Laufzeit: O (n²) bzw. in optimierter Form O (n log n)Laufzeit: O (n²) bzw. in optimierter Form O (n log n)

Page 7: Konvexe Hüllen Im dreidimensionalen Raum. Allg. Grundlagen: Polyeder Polyeder stellen eine durch Punkte, Kanten und Polygone definierte Oberfläche dar.

Konvexe HüllenKonvexe HüllenGrundlagen 1: Das ObjektnetzGrundlagen 1: Das Objektnetz

Um Objekte algorithmisch erfassen zu können wird Um Objekte algorithmisch erfassen zu können wird eine strikte Struktur benötigt. Diese stellt nur eine eine strikte Struktur benötigt. Diese stellt nur eine mögliche solche Struktur dar.mögliche solche Struktur dar.

VertexVertexPosition: x, y, z / p[3]

EdgeEdge

FaceFace

Vertex

Edge

Face3 pro Fläche (3 pro Fläche)

2 pro Kante

2 pro Kante

Page 8: Konvexe Hüllen Im dreidimensionalen Raum. Allg. Grundlagen: Polyeder Polyeder stellen eine durch Punkte, Kanten und Polygone definierte Oberfläche dar.

Konvexe Hüllen Konvexe Hüllen Grundlagen 2: ListenstrukturenGrundlagen 2: Listenstrukturen

Für die Berechnung von Objekten sind Listen unumgänglich. Die genaue Definition solcher Listen ist allerdings eher zweitrangig solange die verwendete Liste folgende Charakteristiken aufweist:

1) Standartoperationen: Hinzufügen, Löschen, Entfernen2) Pointerstabilität: Wird ein Element hinzugefügt oder

entfernt beeinflusst dies nicht die Speicheradressen anderer Elemente.

Zur Realisierung des Incremental Algorithm wird eine Liste für jeweils Punkte, Kanten und Flächen benötigt. Dabei muss sichergestellt werden, dass Flächen und Kanten auf Elemente der jeweiligen Punkt- bzw. Kanten-/Flächen-Listen zeigen.

Das entstehende Pointernetz muss mit großer Sorgfalt aufgebaut und verwaltet werden. Es ist empfehlenswert, stabile vorgefertigte Listen zu verwenden.

Page 9: Konvexe Hüllen Im dreidimensionalen Raum. Allg. Grundlagen: Polyeder Polyeder stellen eine durch Punkte, Kanten und Polygone definierte Oberfläche dar.

Realisierung derRealisierung derObjekt-ListenstrukturObjekt-Listenstruktur

FaceFace

EdgeEdge

VerticesVertices EdgesEdges FacesFaces

Page 10: Konvexe Hüllen Im dreidimensionalen Raum. Allg. Grundlagen: Polyeder Polyeder stellen eine durch Punkte, Kanten und Polygone definierte Oberfläche dar.

Konvexe Hüllen Konvexe Hüllen Grundlagen 3: FlächenorientierungGrundlagen 3: Flächenorientierung

Um zugewandte von rückseitigen Oberflächen Um zugewandte von rückseitigen Oberflächen unterscheiden zu können, muss die Orientierung der unterscheiden zu können, muss die Orientierung der Oberfläche aus Richtung des Blickpunktes bestimmt Oberfläche aus Richtung des Blickpunktes bestimmt werden.werden.

Blickpunkt

Zur Bestimmung der Orientierung gibt es unter anderem die folgenden Möglichkeiten:

•Ermittlung des Volumen-Vorzeichens

•Berechnung der Orientierung über die Normale

Page 11: Konvexe Hüllen Im dreidimensionalen Raum. Allg. Grundlagen: Polyeder Polyeder stellen eine durch Punkte, Kanten und Polygone definierte Oberfläche dar.

Bestimmung des Tetraeder-Bestimmung des Tetraeder-VolumensVolumens

zyxzyxzxyzxy

zyyzxyyzxyzx

yxzyxzyzxyxz

xzyxzyxyzxyz

xzyxyzzyxzxy

yzxyxzxzyxyz

zyx

zyx

zyx

zyx

dcbdcadcbdca

dbadbadcbdca

dcbdcadbadba

dcbdcadcbdca

dbadbacbacba

cbacbacbacba

ddd

ccc

bbb

aaa

dcbavol

********

********

********

********

********

********

1

1

1

1

),,,(

Die Formel liefert je nach Orientierung des Dreiecks abc gegenüber d ein positives bzw. negatives Resultat.

Dadurch eignet sich die Formel obschon ihres immensen Rechenaufwandes zur Ermittlung der Dreiecksorientierung.

(Wegfall bei 0-Punkt-Volumenbestimmung)(Wegfall bei 0-Punkt-Volumenbestimmung)

Page 12: Konvexe Hüllen Im dreidimensionalen Raum. Allg. Grundlagen: Polyeder Polyeder stellen eine durch Punkte, Kanten und Polygone definierte Oberfläche dar.

Bestimmung der Orientierung Bestimmung der Orientierung mittels Normalemittels Normale

Normale (n)

Blickrichtung (d)

v0

v1

p0

p1

p2

0

30

)02()01(10

**

**

**

dnzugewandt

ppd

ppppvvn

baba

baba

baba

ba

xyyx

zxxz

yzzy

p3

Leicht ersichtlich ist der anfallende Aufwand erheblich geringer. Auch ist der Wertebereich um eine Potenz geringer.

Page 13: Konvexe Hüllen Im dreidimensionalen Raum. Allg. Grundlagen: Polyeder Polyeder stellen eine durch Punkte, Kanten und Polygone definierte Oberfläche dar.

Konvexe HüllenKonvexe HüllenGrundlagen 4: Inside-checkGrundlagen 4: Inside-check

Um zu bestimmen, ob ein gegebener Punkt innerhalb oder außerhalb Um zu bestimmen, ob ein gegebener Punkt innerhalb oder außerhalb eines konvexen Körpers liegt, muss die Orientierung jeder Fläche eines konvexen Körpers liegt, muss die Orientierung jeder Fläche gegenüber dem gegebenen Punkt bestimmt werden. gegenüber dem gegebenen Punkt bestimmt werden.

Ein Punkt P liegt innerhalb eines konvexen Körpers K, gdw. für alle Ein Punkt P liegt innerhalb eines konvexen Körpers K, gdw. für alle Flächen F von K gilt, dass P sich auf der abgewandten Seite von F Flächen F von K gilt, dass P sich auf der abgewandten Seite von F befindet. Äquivalent dazu ist die Aussage, dass P in K liegt, gdw. für befindet. Äquivalent dazu ist die Aussage, dass P in K liegt, gdw. für alle F von K die gleiche Orientierung bezüglich P vorliegt. Dies gilt für alle F von K die gleiche Orientierung bezüglich P vorliegt. Dies gilt für 2- und 3-dimensionale konvexe Körper gleichermaßen.2- und 3-dimensionale konvexe Körper gleichermaßen.

Der schwarze Punkt liegt innerhalb des Körpers, da alle Seiten abgewandt sind.

Der weiße hingegen ‚sieht‘ eine Oberfläche und liegt damit außerhalb des Körpers

Page 14: Konvexe Hüllen Im dreidimensionalen Raum. Allg. Grundlagen: Polyeder Polyeder stellen eine durch Punkte, Kanten und Polygone definierte Oberfläche dar.

Divide and ConquerDivide and ConquerÄhnlich wie im 2-dimensionalen Raum kann die kleinste Ähnlich wie im 2-dimensionalen Raum kann die kleinste konvexe Hülle über Rekursion in O(n log(n)) bestimmt konvexe Hülle über Rekursion in O(n log(n)) bestimmt werden.werden.Die Menge der Punkte wird entlang einer Koordinaten-Die Menge der Punkte wird entlang einer Koordinaten-Achse in zwei Gruppen unterteilt und deren konvexe Achse in zwei Gruppen unterteilt und deren konvexe Hüllen in folgender Weise zu einer verschmolzen.Hüllen in folgender Weise zu einer verschmolzen.

1) Zunächst muss eine untere Tangentenachse t gefunden werden, die je einen Punkt beider Objekte schneidet. Alle Punkte beider Objekte müssen sich auf der gleichen Seite einer durch t und Z gebildeten Ebene befinden.

2) Um diese Achse muss nun ein Winkelextrem-Punkt gefunden werden, der mit den bereits gefundenen zwei Punkten ein Dreieck der neuen Konvexen Hülle bildet.

3) Von den zwei weiteren Kanten des gebildeten Dreiecks wird die ausgesucht, wie sich zwischen den beiden Volumen erstreckt und ausgehend von dieser Schritt 2) wiederholt, bis die gefundene Achse der ursprünglichen entspricht.

4) Als letztes müssen alle Dreiecke gelöscht werden, die innerhalb der neuen konvexen Hülle liegen.

Page 15: Konvexe Hüllen Im dreidimensionalen Raum. Allg. Grundlagen: Polyeder Polyeder stellen eine durch Punkte, Kanten und Polygone definierte Oberfläche dar.

Divide and ConquerDivide and ConquerSchritt1: BasiskantenbestimmungSchritt1: Basiskantenbestimmung

A

B

Zunächst werden von beiden Objekten die Punkt mit der je niedrigsten Y-Koordinate ausgesucht und auf ihnen eine Ebene entlang der Achse PQ und der Koordinatenachsen Z errichtet. Zur Orientierungshilfe wird auf ihr das Dreieck PQR konstruiert.

Findet sich kein Extrempunkt werden A und B vertauscht und der Prozess wird über einem redefinierten Q fortgeführt. Der Prozess ist abgeschlossen, wenn sich P und Q nicht mehr ändern. Der Verfahren arbeitet

ZY

P

Q

Für jeden Nachbar von Q wird eine Orientierungsprüfung nach PQR ausgeführt. Ist das Dreieck dem Punkt zugewandt, wird dies der neue Punkt Q. PQR rotiert dabei um die Z-Achse.

R

Page 16: Konvexe Hüllen Im dreidimensionalen Raum. Allg. Grundlagen: Polyeder Polyeder stellen eine durch Punkte, Kanten und Polygone definierte Oberfläche dar.

Divide and ConquerDivide and ConquerSchritt2: Gift-WrappingSchritt2: Gift-Wrapping

Zur Bestimmung der nächsten Oberfläche müssen ausschließlich die Umgebungen von P und Q betrachtet werden. Für jeden der beiden Kegel wird ein lokaler Extrempunkt entlang der P – Q –Achse mittels Orientierungstests bestimmt.

Q

Q‘

Der ermittelte globale Extrempunkt bildet mit P und Q die nächste Oberfläche, die neu entstandene Kante die Krümmungsachse.

Zusätzlich wird auch der nichtglobale Extrempunkt αα gespeichert..

P

Lemma:

Wenn βi den globalen Extrempunkt bildet, dann liegt der nächste lokale Extrempunkt ααi im Gegenuhrzeigersinn um P ausgehend vom letzten lokalen Extrempunkt ααi-1i-1..

ααii

ββii

Page 17: Konvexe Hüllen Im dreidimensionalen Raum. Allg. Grundlagen: Polyeder Polyeder stellen eine durch Punkte, Kanten und Polygone definierte Oberfläche dar.

Divide and ConquerDivide and ConquerSchritt3: Aufräumen1Schritt3: Aufräumen1

A

BDer Gift-Wrapping – Algorithmus beendet in dem Augenblick, wo die neu definierte Krümmungskante der Anfangskante entsprich.

Der Algorithmus liefert zwar in eindeutiger Weise die Schattenkanten zwischen denen die hinzugefügten Flächen definiert wurden, nicht jedoch die Oberflächen und/oder Punkte, die nun innerhalb der konvexen Hülle liegen.

Eine mögliche Lösung stellt eine Art von Floodfill-Algorithmus dar.

Page 18: Konvexe Hüllen Im dreidimensionalen Raum. Allg. Grundlagen: Polyeder Polyeder stellen eine durch Punkte, Kanten und Polygone definierte Oberfläche dar.

Divide and ConquerDivide and ConquerSchritt3: Aufräumen2Schritt3: Aufräumen2

Beginnend an einer identifizierten Kante wird das erste verdeckte Dreieck markiert.

Ausgehend von diesem springt der Algorithmus zu dessen zwei Nachbardreiecken und markiert dabei sowohl die Kanten, über die er läuft, als auch die Dreiecke in die er springt.

Dabei darf der Algorithmus weder über Randkanten noch über bereits markierte Kanten bzw. in markierte Dreiecke springen.

Erst wenn keine weiteren Dreiecke oder Kanten markiert werden konnte können die markierten Elemente gelöscht werden.

Page 19: Konvexe Hüllen Im dreidimensionalen Raum. Allg. Grundlagen: Polyeder Polyeder stellen eine durch Punkte, Kanten und Polygone definierte Oberfläche dar.

Incremental AlgorithmIncremental Algorithm

Ausgehend von einem bestehenden konvexen Körper wird Ausgehend von einem bestehenden konvexen Körper wird durch hinzufügen eines einzigen Punktes ein neuer durch hinzufügen eines einzigen Punktes ein neuer größerer konvexer Körper gebildet.größerer konvexer Körper gebildet.

Ausgehend vom kleinsten Körper, dem Tetraeder, werden in Ausgehend vom kleinsten Körper, dem Tetraeder, werden in jedem Schritt innere Punkte, Kanten und Oberflächen jedem Schritt innere Punkte, Kanten und Oberflächen gelöscht und/oder neue hinzugefügt.gelöscht und/oder neue hinzugefügt.

Schritt 1) Tetraeder-Bildung:

Ausgehend von einem beliebig gewählten Punkt werden zwei weitere linear unabhängige Punkte gesucht um das Basisdreieck zu bilden.

Ein vierter Punkt wird so gewählt, dass er außerhalb der aufgespannten Ebene liegt und mit den drei vorherigen Punkten eine Raum aufspannt. Die korrekte Orientierung kann mit Hilfe von Orientierungstests bestimmt werden. Das erste Dreieck muss vom vierten Punkt abgewandt sein.

Page 20: Konvexe Hüllen Im dreidimensionalen Raum. Allg. Grundlagen: Polyeder Polyeder stellen eine durch Punkte, Kanten und Polygone definierte Oberfläche dar.

Hinzufügen von PunktenHinzufügen von PunktenSchritt 1: Zugewandte Flächen identifizierenSchritt 1: Zugewandte Flächen identifizieren

Durch einfache Orientierungsüberprüfung aller Flächen gegenüber P können zugewandet Flächen in linearer Zeit identifiziert werden.

P

Page 21: Konvexe Hüllen Im dreidimensionalen Raum. Allg. Grundlagen: Polyeder Polyeder stellen eine durch Punkte, Kanten und Polygone definierte Oberfläche dar.

Hinzufügen von PunktenHinzufügen von PunktenSchritt 2: Kanten identifizierenSchritt 2: Kanten identifizieren

P

Wie teilen die Kanten der Hülle in drei Kategorien ein. Abgewandte Abgewandte KantenKanten, die an zwei abgewandte Flächen grenzen. Zugewandte Zugewandte KantenKanten, die an zwei zugewandte Flächen grenzen und Tangenten-Tangenten-KantenKanten, die an jeweils eine zugewandte und eine abgewandte Fläche grenzen.

Page 22: Konvexe Hüllen Im dreidimensionalen Raum. Allg. Grundlagen: Polyeder Polyeder stellen eine durch Punkte, Kanten und Polygone definierte Oberfläche dar.

Hinzufügen von PunktenHinzufügen von PunktenSchritt 3: Elemente löschenSchritt 3: Elemente löschen

P

Nun werden alle zugewandten Kanten und Flächen gelöscht.

In der verwendeten Datenstruktur sollten jedoch vor dem Löschen Verweise offener Kanten auf zu löschenden Elemente korrigiert bzw. gegebenenfalls auf NULL gesetzt werden.

Zu bemerken ist noch, dass die nun offenen Kanten einen geschlossenen Kreis bilden.

Page 23: Konvexe Hüllen Im dreidimensionalen Raum. Allg. Grundlagen: Polyeder Polyeder stellen eine durch Punkte, Kanten und Polygone definierte Oberfläche dar.

Hinzufügen von PunktenHinzufügen von PunktenSchritt 4: neue Kanten und Flächen bildenSchritt 4: neue Kanten und Flächen bilden

P

An jeder offenen Kante wird nun eine neue Fläche gebildet. Das neue Dreieck wird durch die zwei Punkte der Kante und den neuen Punkt P gebildet. Die korrekte Orientierung kann an der gegenüberliegende Fläche der Kante abgelesen werden.

Zum schnelleren Bilden der neuen Kanten kann es sinnvoll sein, die offenen Kanten zu verketten.

Page 24: Konvexe Hüllen Im dreidimensionalen Raum. Allg. Grundlagen: Polyeder Polyeder stellen eine durch Punkte, Kanten und Polygone definierte Oberfläche dar.

Randomized Incremental AlgorithmRandomized Incremental Algorithm

Wie bereits gesagt benötigt der Incremental Algorithm eine O(n²)-Laufzeit. Sind jedoch zu Wie bereits gesagt benötigt der Incremental Algorithm eine O(n²)-Laufzeit. Sind jedoch zu Anfang Anzahl und Positionen aller Punkte bekannt, so kann eine modifizierte Anfang Anzahl und Positionen aller Punkte bekannt, so kann eine modifizierte Version des Incremental Algorithm Hüllen in O (n log n) (erwartete Zeit) bilden.Version des Incremental Algorithm Hüllen in O (n log n) (erwartete Zeit) bilden.

Zur Realisierung müssen zu Beginn weitere Informationen in die Datenstruktur eingefügt Zur Realisierung müssen zu Beginn weitere Informationen in die Datenstruktur eingefügt werden:werden:

1.) Für jeden Vertex wird eine „Konflikt“ - Liste aller Flächen angelegt, die für ihn sichtbar 1.) Für jeden Vertex wird eine „Konflikt“ - Liste aller Flächen angelegt, die für ihn sichtbar sind. Ausgehend vom ersten minimalen Tetraeder sind zu diesem Zeitpunkt für jeden sind. Ausgehend vom ersten minimalen Tetraeder sind zu diesem Zeitpunkt für jeden noch hinzuzufügenden Vertex 1 bis 3 Flächen sichtbar. Vertices, die keine Flächen noch hinzuzufügenden Vertex 1 bis 3 Flächen sichtbar. Vertices, die keine Flächen sehen, liegen innerhalb der Hülle und können gelöscht werden.sehen, liegen innerhalb der Hülle und können gelöscht werden.

2.) Für jede Fläche wird eine Konfliktliste aller Vertices angelegt, die diese ‚sehen‘ 2.) Für jede Fläche wird eine Konfliktliste aller Vertices angelegt, die diese ‚sehen‘ können. Jede Fläche teilt den Vertex-Raum in zwei Hemisphären, von denen nur können. Jede Fläche teilt den Vertex-Raum in zwei Hemisphären, von denen nur eine relevant ist.eine relevant ist.

Nach jeder Iteration müssen diese Listen aktualisiert werden. Durch die Teilung wird der Nach jeder Iteration müssen diese Listen aktualisiert werden. Durch die Teilung wird der Algorithmus jedoch für bekannte Punkte erheblich schneller.Algorithmus jedoch für bekannte Punkte erheblich schneller.

In die Konfliktliste der grünen Fläche werden alle weißen Punkte eingetragen. Umgekehrt ist die grüne Fläche Element der Konfliktliste jedes weißen Punktes.

Page 25: Konvexe Hüllen Im dreidimensionalen Raum. Allg. Grundlagen: Polyeder Polyeder stellen eine durch Punkte, Kanten und Polygone definierte Oberfläche dar.

Randomized Incremental AlgorithmRandomized Incremental AlgorithmHinzufügen von Punkten IHinzufügen von Punkten I

1.) Bestimmung der Schattenkanten:1.) Bestimmung der Schattenkanten:

Zunächst werden alle sichtbaren Flächen des neuen Punktes p Zunächst werden alle sichtbaren Flächen des neuen Punktes p durchlaufen und gleichzeitig deren Kanten markiert. Kanten, die nur durchlaufen und gleichzeitig deren Kanten markiert. Kanten, die nur an eine sichtbare Fläche grenzen, bilden den Schattenpfad von p.an eine sichtbare Fläche grenzen, bilden den Schattenpfad von p.

2.) Bildung der neuen Flächen:2.) Bildung der neuen Flächen:

Ausgehend vom identifizierten Schattenpfad entsteht für jede Kante Ausgehend vom identifizierten Schattenpfad entsteht für jede Kante des Pfades eine neue Fläche. Die Kollisionsliste jeder neuen Fläche des Pfades eine neue Fläche. Die Kollisionsliste jeder neuen Fläche muss nur über den Punkten der Kollisionslisten der, an die jeweilige muss nur über den Punkten der Kollisionslisten der, an die jeweilige Schattenkante grenzenden, Flächen gebildet werden.Schattenkante grenzenden, Flächen gebildet werden.

Beim Hinzufügen von f f über pp und k kann die anzulegende Kollisionsliste für ff nur Punkte beinhalten, die entweder von f0f0 oder f1f1 sichtbar sind.

ppf0f0

f1f1

ff

k

Page 26: Konvexe Hüllen Im dreidimensionalen Raum. Allg. Grundlagen: Polyeder Polyeder stellen eine durch Punkte, Kanten und Polygone definierte Oberfläche dar.

Randomized Incremental AlgorithmRandomized Incremental AlgorithmHinzufügen von Punkten IIHinzufügen von Punkten II

3.) Bei der Aktualisierung der Punkt-Kollisionslisten müssen ebenfalls 3.) Bei der Aktualisierung der Punkt-Kollisionslisten müssen ebenfalls nur die Punkte berücksichtigt werden, die von den Schattenkanten nur die Punkte berücksichtigt werden, die von den Schattenkanten gesehen werden (sichtbar für eine der an die Kanten angrenzenden gesehen werden (sichtbar für eine der an die Kanten angrenzenden Flächen sind). Punkte, die von den zu löschenden Flächen, nicht Flächen sind). Punkte, die von den zu löschenden Flächen, nicht jedoch von den Schattenkanten, gesehen werden, liegen zwingend jedoch von den Schattenkanten, gesehen werden, liegen zwingend innerhalb der neuen konvexen Hülle und müssen gelöscht werden.innerhalb der neuen konvexen Hülle und müssen gelöscht werden.

Die obere Schranke O (n log n) Die obere Schranke O (n log n) stellt die erwartete maximale stellt die erwartete maximale Laufzeit dar. Diese basiert auf der Laufzeit dar. Diese basiert auf der Einschränkung der Problemzone Einschränkung der Problemzone auf einen angenommen kleinen auf einen angenommen kleinen Anteil aller noch hinzuzufügenden Anteil aller noch hinzuzufügenden Punkte.Punkte.

Page 27: Konvexe Hüllen Im dreidimensionalen Raum. Allg. Grundlagen: Polyeder Polyeder stellen eine durch Punkte, Kanten und Polygone definierte Oberfläche dar.

Quellen:

„Computational Geometry in C“ – Joseph O‘Rourke

Verfasst von Stefan Elsen

16.2.2005