Die Präsentation wird geladen. Bitte warten

Die Präsentation wird geladen. Bitte warten

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

Ähnliche Präsentationen


Präsentation zum Thema: "Konvexe Hüllen Im dreidimensionalen Raum. Allg. Grundlagen: Polyeder Polyeder stellen eine durch Punkte, Kanten und Polygone definierte Oberfläche dar."—  Präsentation transkript:

1 Konvexe Hüllen Im dreidimensionalen Raum

2 Allg. Grundlagen: Polyeder Polyeder stellen eine durch Punkte, Kanten und Polygone definierte Oberfläche dar. Um ungeordnete Oberflächensammlungen von hinreichend abgeschlossenen Volumen unterscheiden zu können, führen wir die Bezeichnung proper ein. 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.

3 Polytope – konvexe Polyeder Die Konvexität eines Polyeders lässt sich durch die folgenden äquivalenten Sätze bestimmen. a)Für jedes Paar von Dreiecken, die eine Kante gemein haben, gilt, dass der innere Winkel zwischen den beiden Dreiecken nicht größer als π sein darf. b)Die Winkelsumme aller Kanten um einen Punkt darf nicht größer als 2* π sein. α <= π

4 Eulersche Formel Def.: 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 Torus dar. 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 eines Polyeders, so gilt: P – K + F = 2 Um Eulers Formel zu beweisen muss das Polyeder zunächst in einen planaren Graphen umgewandelt werden: 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 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 Kanten eingeschlossen. f bildet die umschließende Fläche. Das gestreckte Polyeder bildet damit nun einen 2-dimensionalen Graph.

5 Eulersche Formel Induktionsbeweis Induktionsanfang: 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 = 2 Induktionsschritt: Sei G n-1 ein Graph mit n-1 Kanten, p n-1 Punkten und f n-1 Flächen, für den Eulers Formel gelte. D.h. p n-1 – (n-1) + f n-1 = 2 Annahme: Eulers Formel gilt für G n Für die neue Kante gelte die Einschränkung, dass sie an den bestehenden Graph anknüpfen muss. Daraus ergeben sich die folgenden beiden Möglichkeiten: 1.Die Kante teilt eine bestehende Fläche, d.h. sie knüpft an bestehende Punkte an. Daraus folgt p n = p n-1 bzw. f n = f n-1 +1 => p n – n + f n = p n-1 – n + f n-1 +1 = p n-1 – (n-1) + f n-1 = 2 2.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 p n = p n-1 +1 bzw. f n = f n-1 => p n – n + f n = p n-1 +1 – n + f n-1 = p n-1 – (n-1) + f n-1 = 2 qed.

6 Bildung konvexer Hüllen aus Punktmengen Divide and Conquer Ermittlung der konvexen Hülle durch Aufteilung der Punktmenge und verschmelzen konvexer Hüllen Laufzeit: O (n log n) Incremental Algorithm Ausgehend von einem Tetraeder wird die Gesamthülle durch schrittweises hinzufügen der verbleibenden Punkte. Laufzeit: O (n²) bzw. in optimierter Form O (n log n)

7 Konvexe Hüllen Grundlagen 1: Das Objektnetz Um Objekte algorithmisch erfassen zu können wird eine strikte Struktur benötigt. Diese stellt nur eine mögliche solche Struktur dar. Vertex Position: x, y, z / p[3] Edge Face Vertex Edge Face 3 pro Fläche(3 pro Fläche) 2 pro Kante

8 Konvexe Hüllen Grundlagen 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, Entfernen 2)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.

9 Realisierung der Objekt-Listenstruktur Face Edge VerticesEdgesFaces

10 Konvexe Hüllen Grundlagen 3: Flächenorientierung Um zugewandte von rückseitigen Oberflächen unterscheiden zu können, muss die Orientierung der Oberfläche aus Richtung des Blickpunktes bestimmt werden. Blickpunkt Zur Bestimmung der Orientierung gibt es unter anderem die folgenden Möglichkeiten: Ermittlung des Volumen- Vorzeichens Berechnung der Orientierung über die Normale

11 Bestimmung des Tetraeder- Volumens 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)

12 Bestimmung der Orientierung mittels Normale Normale (n) Blickrichtung (d) v0 v1 p0 p1 p2 p3 Leicht ersichtlich ist der anfallende Aufwand erheblich geringer. Auch ist der Wertebereich um eine Potenz geringer.

13 Konvexe Hüllen Grundlagen 4: Inside-check Um zu bestimmen, ob ein gegebener Punkt innerhalb oder außerhalb eines konvexen Körpers liegt, muss die Orientierung jeder Fläche gegenüber dem gegebenen Punkt bestimmt werden. 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 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 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

14 Divide and Conquer Ähnlich wie im 2-dimensionalen Raum kann die kleinste konvexe Hülle über Rekursion in O(n log(n)) bestimmt werden. Die Menge der Punkte wird entlang einer Koordinaten- Achse in zwei Gruppen unterteilt und deren konvexe 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.

15 Divide and Conquer Schritt1: 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 Z Y 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

16 Divide and Conquer Schritt2: 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: α α i-1. Wenn β i den globalen Extrempunkt bildet, dann liegt der nächste lokale Extrempunkt α i im Gegenuhrzeigersinn um P ausgehend vom letzten lokalen Extrempunkt α i-1. αiαiαiαi βiβiβiβi

17 Divide and Conquer Schritt3: Aufräumen1 A B Der 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.

18 Divide and Conquer Schritt3: 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.

19 Incremental Algorithm Ausgehend von einem bestehenden konvexen Körper wird durch hinzufügen eines einzigen Punktes ein neuer größerer konvexer Körper gebildet. Ausgehend vom kleinsten Körper, dem Tetraeder, werden in jedem Schritt innere Punkte, Kanten und Oberflächen 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.

20 Hinzufügen von Punkten Schritt 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

21 Hinzufügen von Punkten Schritt 2: Kanten identifizieren P Abgewandte Kanten Zugewandte Kanten Tangenten- Kanten Wie teilen die Kanten der Hülle in drei Kategorien ein. Abgewandte Kanten, die an zwei abgewandte Flächen grenzen. Zugewandte Kanten, die an zwei zugewandte Flächen grenzen und Tangenten- Kanten, die an jeweils eine zugewandte und eine abgewandte Fläche grenzen.

22 Hinzufügen von Punkten Schritt 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.

23 Hinzufügen von Punkten Schritt 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.

24 Randomized Incremental Algorithm 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 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 werden: 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 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. 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 eine relevant ist. Nach jeder Iteration müssen diese Listen aktualisiert werden. Durch die Teilung wird der 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.

25 Randomized Incremental Algorithm Hinzufügen von Punkten I 1.) Bestimmung der Schattenkanten: Zunächst werden alle sichtbaren Flächen des neuen Punktes p durchlaufen und gleichzeitig deren Kanten markiert. Kanten, die nur an eine sichtbare Fläche grenzen, bilden den Schattenpfad von p. 2.) Bildung der neuen Flächen: Ausgehend vom identifizierten Schattenpfad entsteht für jede Kante des Pfades eine neue Fläche. Die Kollisionsliste jeder neuen Fläche muss nur über den Punkten der Kollisionslisten der, an die jeweilige Schattenkante grenzenden, Flächen gebildet werden. f p f f0f1 Beim Hinzufügen von f über p und k kann die anzulegende Kollisionsliste für f nur Punkte beinhalten, die entweder von f0 oder f1 sichtbar sind. p f0 f1 f k

26 Randomized Incremental Algorithm Hinzufügen von Punkten II 3.) Bei der Aktualisierung der Punkt-Kollisionslisten müssen ebenfalls nur die Punkte berücksichtigt werden, die von den Schattenkanten gesehen werden (sichtbar für eine der an die Kanten angrenzenden Flächen sind). Punkte, die von den zu löschenden Flächen, nicht jedoch von den Schattenkanten, gesehen werden, liegen zwingend innerhalb der neuen konvexen Hülle und müssen gelöscht werden. Die obere Schranke O (n log n) stellt die erwartete maximale Laufzeit dar. Diese basiert auf der Einschränkung der Problemzone auf einen angenommen kleinen Anteil aller noch hinzuzufügenden Punkte.

27 Quellen: Computational Geometry in C – Joseph ORourke Verfasst von Stefan Elsen


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

Ähnliche Präsentationen


Google-Anzeigen