Seminarvortrag über Sichtbarkeitskomplex Inhaltsverzeichnis

Werbung
Seminarvortrag über Sichtbarkeitskomplex
Inhaltsverzeichnis
1 Einführung.................................................................................................................2
1.1 Begriffe ..............................................................................................................2
2 Sichtbarkeitsgraphen..................................................................................................3
2.1 Einführung..........................................................................................................3
2.2 Überblick zur Berechnung....................................................................................4
3 Sichtbarkeitskomplex (SBK)........................................................................................4
3.1.1 Motivation für den Sichtbarkeitskomplex........................................................4
3.1.2 Überblick......................................................................................................5
3.1.3 Der zugrunde liegende Raum........................................................................5
3.1.4 Die kombinatorische Struktur........................................................................6
3.1.5 Der Unterkomplex eines Hindernisses............................................................6
3.1.6 Visualisierung des SBK..................................................................................6
3.1.7 Berechnung der Sicht aus einem Punkt oder einem konvexen Objekt heraus....7
3.1.8 Konstruktion des Sichtbarkeitskomplexes.......................................................8
3.1.9 Zulässige Pseudotriangulierungen................................................................10
3.1.10 Der Anfangs-SBK......................................................................................11
3.1.11 Durchgang 1.............................................................................................11
3.1.12 Durchgang 2.............................................................................................11
3.1.13 Komplexität des Algorithmus......................................................................12
4 Referenzen .............................................................................................................12
1
1 Einführung
–
–
–
Sichtbarkeit in der algorithmischen Geometrie
Vermeidung von Hindernissen, Ray Shooting
Hindernisse als Polygone oder glatte Objekte
1.1 Begriffe
●
●
●
●
●
●
●
●
●
●
●
Sichtbarkeit ist eine mathematische Abstraktion der realen Sichtbarkeit. Zwei
Punkte im Euklidischen Raum sind unter einer Menge mit Hindernissen sichtbar
voneinander, wenn die Strecke, die sie verbindet, keine Hindernisse kreuzt.
Sichtbarkeitspolygon für einen Punkt p auf der Fläche zwischen nicht transparenten
Hindernissen ist eine möglicherweise nicht beschränkte polygonale Region aller
Punkte der Fläche, die aus p sichtbar sind.
Eine geometrische Figur M wird konvex genannt, wenn mit je zwei ihrer (beliebig
gewählten) Punkte auch deren Verbindungsstrecke ganz in der Menge liegt.
Als konvexe Hülle einer Menge X wird die minimale konvexe Menge bezeichnet, die
X enthält.
Als O1 wird das unendliche umschließende Hindernis bezeichnet.
Freier Raum ist das Komplement F der Vereinigung der Menge von Hindernissen
in O1.
Maximale freie Strecke ist eine Strecke maximaler Länge im freien Raum.
Jede begrenzte Folge von Punkten auf dem Rand eines konvexen Objektes O
unterteilt den Rand in kurvenförmige Strecken, genannt Bögen.
Eine Bitangente ist eine freie Strecke, die zwei Objekte berührt.
Ein glattes Objekt hat einen Rand in gerundeter Form, wobei zu jedem Punkt nur
eine Tangente möglich ist.
Eine Kette (chain) ist eine einfache Kurve, die aus einer abwechselnden Folge
s1 ; s2 ; ::; sm von Bitangenten und Bögen besteht, so das si und si+1 einen
gemeinsamen Endpunkt haben, an dem die Bitangente tangential zum Bogen ist.
Die Kette wird als konvex bezeichnet, wenn die Verbindung ihrer Endpunkte eine
einfache geschlossene Kurve ergibt, die eine konvexe Region begrenzt.
2 Sichtbarkeitsgraphen
2.1 Einführung
●
Überblick
Sichtbarkeit ist ein sehr wichtiges Konzept. Bewegungsplanung in der Robotik,
Objekterkennung in Computer Vision, Beleuchtung in der Computergraphik und viele
andere Gebiete, in den ein komplettes Bild einer Szene benötigt wird, sind darauf
angewiesen. Die Probleme der Sichtbarkeitsbestimmung von einem Punkt oder einem
Polygon heraus bei unterschiedlichen Bedingungen der Dynamik
sollten effizient
behandelt werden, ohne dass bei jeder Änderung eine weitere Berechnung der gesamten
2
Umgebung notwendig ist.
●
Was ist ein Sichtbarkeitsgraph (SBG) ?
Betrachten wir eine Menge O der von paarweise disjunkten Objekten auf der Fläche. In
der relevanten Klasse der Probleme treten diese Objekte als Hindernisse, entweder in
Verbindung mit Sichtbarkeitsproblemen, wenn sie die Sicht aus anderen geometrischen
Objekten heraus blockieren, oder bei der Bewegungsplanung, wenn sie diesen Objekten
bei der Bewegung an einer geraden Linie im Weg stehen. Ein Sichtbarkeitsgraph (SBG) ist
ein zentraler Begriff in diesem Kontext. SBG ist wie folgt definiert: Knoten sind die
Eckpunkte der Szene, ein Bogen verbindet zwei Knoten A und B falls sie gegenseitig
sichtbar sind, d. h. die Strecke [AB] keine Hindernisse kreuzt. Es ist nur dann möglich, von
A nach B zu gehen, wenn B von A sichtbar ist. Zum Sichtbarkeitsgraphen gehören außer
Knoten und Bögen ebenfalls ein Start- und Zielpunkt. Ein SBG kann so aussehen (Abb. 1):
Abbildung 1: Sichtbarkeitsgraph. Quelle: [BG6]
Die Berechnung eines Sichtbarkeitsgraphen dient dem Ziel einer kollisionsfreien
Bewegungsplanung. Außerdem ist es nicht nur möglich, einen Pfad vom Start zum Ziel zu
finden, falls dieser existiert, sondern auch explizit nach einem kürzesten Pfad zu suchen.
●
Anwendung der Sichtbarkeitsgraphen
Sichtbarkeitsgraphen sind eine fundamentale geometrische Struktur. Sie werden in vielen
Bereichen eingesetzt, darunter Rendering, Beleuchtung, Bewegungsplanung,
Patternerkennung, Sensornetzwerke, Seefahrt.
●
Tangentensichtbarkeitsgraph
Das Konzept des Sichtbarkeitsgraphen kann auch auf nichtpolygonale Szenen erweitert
werden unter Berücksichtigung von Bitangenten und glatten Objekten. In diesem Fall wird
der Sichtbarkeitsgraph als Tangentensichtbarkeitsgraph (TVG) bezeichnet. Die Menge der
Eckpunkte ist O - die Menge der konvexen Objekte der Szene. Außerdem, jede
gemeinsame Tangente von zwei Objekten O1 ; O2 2 O, deren Endpunkte einander sehen
können, entspricht einer Kante (O1 ; O2 ) von TVG.
3
Abbildung 2. Tangentensichtbarkeitsgraph
Quelle: [PV3]
2.2 Überblick zur Berechnung
Sowie SBG einer polygonalen Szene als auch TVG können optimal in O(k + n log n) Zeit
berechnet werden. Dabei ist n die Anzahl der Polygone oder glatten Objekte und k die
Größe des Sichtbarkeitsgraphen.
●
Algorithmen und Laufzeiten (Überblick)
○ Lee: O(n2 log n)
○ Welzl: O(n2 )
○ Asano, Guibas, Hershberger, Imai: O(n2 )
○ Ghosh and Mount: O(k + n log n)
○ Pseudotriangulierung (Computing the Visibility Graph via Pseudo-triangulations
– M. Pocchiola, G. Vegter): O(k + n log n), k – Anzahl der Bitangenten.
3 Sichtbarkeitskomplex (SBK)
3.1.1
Motivation für den Sichtbarkeitskomplex
Der Sichtbarkeitsgraph ist wegen seiner Struktur nicht ausreichend, um eine Sicht von
einem sich bewegenden Punkt in einer sich ständig verändernden Umgebung zu
unterstützen. Jederzeit den Objekt neu zu berechnen, der sich am Ende des aktuellen
Sichtstrahls befindet ist umständlich und zu rechenintensiv für Probleme der Sichtbarkeit.
Um eine Lösung dafür zu finden, haben Pocciola und Vegter [PV1] eine neue
Datenstruktur vorgeschlagen – den Sichtbarkeitskomplex. Die Idee im großen und ganzen
ist die Klassifikation der Sichtstrahlen nach der Sichtbarkeit. Um den Objekt am Ende des
Sichtstrahls zu bestimmen, braucht man dann nur die Menge der Sichtstrahlen zu
identifizieren, die den aktuellen Strahl enthält, und die Sichtbarkeitseigenschaften dieser
Menge auf den konkreten Fall zu übertragen.
3.1.2
Überblick
Betrachten wir eine Menge O von paarweise disjunkten streng konvexen glatten Objekten.
4
Die Komplexität jedes Objektes betrage O(1)
O(1). Der Sichtbarkeitskomplex (SBK) repräsentiert Mengen der Sichtstrahlen, die die
gleichen Sichtbarkeitseigenschaften besitzen. Es verfügt über genügend Informationen,
um eine Sicht um einen sich bewegenden Sichtstrahl aufrecht zu erhalten. Um SBK
repräsentieren zu können, nutzt man eine Dualitätstransformation. Anhand dieser ergibt
sich eine Darstellung im Dualraum. Eine Gerade y cosµ ¡ x sinµ = u wird im Dualraum zu
einem Punkt (µ; u). Eine Menge der Linien, die durch einen Punkt gehen ist im Dualraum
eine sinusförmige Kurve.
3.1.3
Der zugrunde liegende Raum
Gegeben ist ein Punkt p 2 F .
Wir suchen nach dem Objekt, der aus p in einer Richtung u 2 S 1 (Einheitskreis) sichtbar
ist. Wir reduzieren das Problem auf @F (die Randpunkte von F ).
Der Punkt, den wir sehen, wird in Form von p + ru dargestellt für einen positiven skalaren
r . Falls der Sichtbarkeitspolygon in die Sichtrichtung nicht geschlossen ist, ist r = 1.
Sei die Menge V0 ½ @F £ S 1 £ R definiert als (x; y; r) 2 V0 . Dabei gilt:
● r > 0
● x; x + ru 2 @F (Start- und Endpunkt vom Sichtstrahl liegen auf dem Rand von F )
● (x; x + ru) ½ F (Der Strahl liegt im freien Raum bis auf seine Endpunkte).
Als V1 bezeichnen wir den Abschluss von V0 als Unterraum von R2 £ S 1 £ R.
Mit einem » = (x; y; r) aus V1 assoziieren wir eine geschlossene Strecke
seg(») = [x; x + ru] (Jeder Element v aus V1 ist also Strecke).
Man kann sehen, dass 8(x; u) 2 @F £ S 1 höchstens ein r 2 R gibt mit (x; u; r) 2 V0 .
(Jeder Randpunkt des freien Raums kann in eine bestimmte Richtung nur mit einem
anderen solchen Punkt verbunden werden). Daher sind sowie V0 als auch V1 2D-Mengen.
Eins der wichtigsten Ziele ist die Bestimmung der Sicht aus einem sich stetig bewegenden
Punkt p(t) entlang einer sich ständig ändernden Richtung u(t). Dabei ergibt sich eine
Kurve ° : t ! (p(t); u(t)).
Wir können zu ° eine Kurve 
 : t ! (pu(t) (t); u(t); r(t)) zuordnen, (Sicht von p(t)
entlang u(t) ist pu(t) (t) + r(t)u(t) ), die nicht stetig sein muss.
Wir möchten jedoch ° eine stetige Kurve zuordnen. Deswegen gehen wir wie folgt vor:
Für »1 ; »2 2 V1 mit »i = (xi ; ui ; ri ) sagen wir »1 ´ »2 , wenn und nur wenn:
● r1 ; r2 > 0
● seg(»1 ) ½ seg(»2 ) oder seg(»2 ) ½ seg(»1 )
Der transitive Abschluss dieser Relation ist eine Äquivalenzrelation auf V1 welche wir
ebenfalls als ´ bezeichnen.
V ist der Quotientenraum von V1 bzgl. ´ , wird als zugrunde liegender Raum des SBK
bezeichnet.
Für ein festes u0 aus aus S 1 ist V ∩{u=u0 } lokal eine 1D Menge, die als Querschnitt
bei u = u0 bezeichnet wird.
Das Bild von 
 ist nach der Quotientenabbildung q : V1 ! V eine stetige Kurve in V .
5
3.1.4
Die kombinatorische Struktur
Wir wandeln V in einen zweidimensionalen Zellkomplex um.
Bei q : V1 ! V kann man folgende Definitionen machen:
Definition: Eine Fläche (Kante, Ecke) ist eine zusammenhängende Komponente der
Punktemenge x 2 V , für die die Anzahl der Punkte in q ¡1 (x) gleich 1 (bzw. 3, >3) ist.
Definition: Eine Kante entspricht einer Menge der Strecken, deren Endpunkte an
Objekträndern liegen. Dabei berühren die Strecken das gleiche Hindernis.
Definition: Eine Ecke entspricht einer Bitangente.
Definition: Der aus der genannten Komponenten bestehende zweidimensionale
Zellkomplex wird als Sichtbarkeitskomplex einer Menge der Hindernisse O bezeichnet.
3.1.5
Der Unterkomplex eines Hindernisses
Jedem O 2 O wird ein Unterkomplex in folgender Weise zugeordnet:
Betrachten wir V0 (O) = f(x; u; r) 2 V0 ; 8x 2 @Og , eine geschlossene Teilmenge von V0 .
Diese Teilmenge kann als eine Menge der Strahlen beschrieben werden, die auf dem
Rand von O anfangen und in den freien Raum zeigen. Die Quotientenabbildung
q : V1 ! V bildet sie auf die Teilmenge V (O) von V ab, die als planarer Unterkomplex
des SBK ( P (O) ) bezeichnet wird. [ Figure 2 / PV1 als Beispiel].
Beobachtung: Jede Fläche gehört zu zwei Unterkomplexen und jede Ecke zu drei.
Um zu sehen, dass P (O) in der Tat planar ist, bilden wir auf die Ebene ab.
Erinnerung: Geradendarstellung mit Polarkoordinaten, Parameterpaar (µ; u) entspricht
Anstieg / Entfernung vom Startpunkt. Alle auf der Gerade liegenden Punkte (x; y) erfüllen
die Gleichung ycosµ ¡ xsinµ = u .
Konvention: Weiterhin betrachten wir nur die Strecken mit Anstieg in [0; ¼] .
Nichthorizontale Linien zeigen dann nur nach oben.
S
Der SBK wird als eine Menge von planaren Unterkomplexen P (O) , O 2 O fO1 g
dargestellt. Dabei hat jede Kante einen Pointer auf die andere Kante, was O(1) – Zugriff
auf Kanten und zugehörige Flächen ermöglicht.
3.1.6
Visualisierung des SBK
Einen Überblick der wesentlichen Bestandteile bietet die Abbildung 3. Ein Sichtstrahl, der
aus einem Objekten Ol zum Objekten Or verläuft, wird mit einer Markierung (Ol ; Or )
gekennzeichnet. Der SBK ist eine Quotiententopologie des Raums mit Sichtstrahlen unter
folgender Kondition »: r1 » r2 wenn r1 sich zu r2 bewegen kann mit einer Markierung.
6
Abb. 3: SBK im Dualraum
Quelle: [R5]
Die wichtigsten Konzepte vom SBK sind Fläche (face), Kante (edge) und Ecke (vertex).
Zwei aufeinanderfolgende Kanten entsprechen Strecken, die einzelne unterschiedliche
Objekte berühren. Falls es jedoch zu m Berührungen in einer Region kommt (wenn aus
einem Objekten mehrere andere sichtbar sind), besteht eine Kante aus m+1 Unterkanten.
Die Vereinigung dieser Unterkanten wird als fette Kante bezeichnet.
Weitere Begriffe: Fette Kante (fat edge), minimale Ecke (minimal vertex).
3.1.7
Berechnung der Sicht aus einem Punkt oder einem konvexen Objekt heraus
Das SBK kann genutzt werden, um die Sicht (View) aus einem konvexen Objekt ° auf die
Menge der Hindernisse zu berechnen. Mit anderen Worten, es wird ein
Sichtbarkeitspolygon des Objektes erstellt.
Berechne die Berührungen der Sicht aus ° in der polaren Ordnung, angefangen bei der
gegen den Uhrzeigersinn gerichteten Tangente t von ° mit Anstieg 0 . Wenn der l über
der Menge aller Tangenten von ° liegt, dann beschreibt es eine Kurve 
 im
Unterkomplex P(O1 ) . Wenn ° außerhalb der konvexen Hülle von O liegt, dann kreuzt

 den Rand der Fläche in P(O1 ) in maximal zwei Punkten. Die Folge der
Schnittpunkte von 
 mit Kanten von P(O1 ) entspricht der Sicht aus ° :
●
●
Berechne die erste Berührung von der Sicht (O(log n) Zeit mit Hilfe einer trivialen
Datenbstruktur).
Sei t der aktuelle Schnittpunkt von 
 mit einer Kante von ° , die am rechten Rand
von Fläche f liegt. Um den zweiten Schnittpunkt (mit dem linken Rand von f ) zu
finden, ist eine binäre Suche in der Menge der Kanten im Rand von f notwendig.
Das dauert O (log n) (Diese Suchmethode ist bekannt als Crossing Faces).
Um den zweiten Schnittpunkt zu ermitteln, kann man auch anders vorgehen. Die Methode
ist bekannt als Berechnung der sichtbaren Zone. Die Idee liegt darin, den zweiten
Schnittpunkt zu suchen, indem man den linken Rand durchläuft, beginnend mit der
minimalen Ecke, bis eine Kante gefunden wird, die die Linie l0 enthält, die ° berührt.
Offensichtlich ist l0 der verbleibende Schnittpunkt von 
 und einer Kante von P(O1 ) .
Die Folge der Kanten, die durchlaufen werden, wird als sichtbare Zone bezeichnet.
Obwohl wir O(n) Zeit brauchen können um eine einzelne Berührung in der Sicht aus ° zu
7
finden, ist die amortisierte Komplexität viel besser.
Es ist eine Erweiterung notwendig beim Durchlaufen der fetten Kanten, weil man die
gekreuzte Unterkante bestimmen muss. Deswegen wird die Zeit für das Durchlaufen von
diesen als B  bezeichnet. B =O k log n , wenn die Sicht aus ° aus k Berührungen
besteht und die Flächen der sichtbaren Zone gekreuzt werden.
Beim Durchlaufen der fetten Kanten ist es notwendig, die Ecken zu bestimmen, die die
gekreuzte Unterkante begrenzen, also die Bitangenten, die am nächsten zur Strecke l
(Kreuzungspunkt im Dualraum) von beiden Seiten liegen. Diese werden als CX(l) und
CCX(l) bezeichnet.
Diese Berechnung kann man mit Hilfe eines Algorithmus für Berechnung des SG
durchführen, das von Ghosh und Mount vorgeschlagen wurde. Den Teilbogen des
Hindernisses, gebildet durch Berührungen mit Bitangenten, betrachtet man als Seite eines
Pseudodreiecks. Dann entsprechen die Bitangenten dieser Region den Kanten eines
Sichtbarkeitsgraphen, und man kann den Algorithmus anwenden. Die Laufzeit beträgt
O(k), wo k Anzahl der Ecken im SBK ist.
Daher:
Theorem: Gegeben sei ein konvexes Objekt ° , das außerhalb der konvexen Hülle der
Menge der Hindernisse liegt. Die Sicht aus ° besteht aus k Berührungen. Die Zeit, um
diese Sicht zu berechnen, ist
(i) O(k log n), für Crossing Faces
(ii) O(log n + k + B  ), wenn die sichtbare Zone von ° traversiert wird.
Anmerkung: Im Theorem wird davon ausgegangen, dass die Komplexität eines konvexen
Objektes O(1) ist. Sollte der Objekt jedoch aus m Bögen und Strecken bestehen, kann die
Sicht in O(log n + k + m + B  ) berechnet werden, vorausgesetzt dass das Objekt
außerhalb der konvexen Hülle liegt.
3.1.8
Konstruktion des Sichtbarkeitskomplexes
Gegeben seien drei konvexe Objekte O1, O2 und O3 , so dass O3 außerhalb der konvexen
Hülle von O1 und O2 , CH(O1 [ O2 ) liegt. σ0 ist der Rand der konvexen Hülle, geschnitten
an deren minimalem Punkt m0 (Abb. 4a). Der Unterkomplex P(σ0) weist zwei Flächen auf,
die Menge der Strahlen entsprechen, die aus σ0 nach oben zeigen. Am Ende dieser
Strahlen sieht man entweder O3 oder O1 .
Abb. 4a: Quelle: [PV2]
8
Die Idee hinter der Konstruktion des SBK ist die Erweiterung des freien Raums durch das
Hinzufügen der Pseudodreiecke.
Wir beginnen mit dem freien Raum, der das Komplement von CH(O1 [ O2 ) [ O3 ist. Wir
fügen einen Pseudodreieck a0 a1 a2 zum freien Raum hinzu (Abb. 4b) – das gleicht dem
Entfernen der Bitangente s = a0 a1. Die Seiten a1 a2 und a0 a2 werden dann zu neuen
Grenzen des freien Raums.
Abb. 4b: Unterkomplex der Seite a0a2 des Pseudodreiecks Quelle: [PV2]
Der Unterkomplex der Kette a0a2 besteht vor der Entfernung von s aus zwei Teilen. Mit der
Entfernung von s ändert sich auch das Unterkomplex – entlang der Strahlen in dieser
Region sehen wir nun O1.
Die Kette ¿0 zerfällt nach der Entfernung von s in zwei Teile. Das Teil mit dem Endpunkt a0
wird zur Kette a0 a2 hinzugefügt, daraus ergibt sich eine neue Kette m0 a2 (Abb. 4c).
Abb. 4c: Quelle: [PV2]
9
Der Unterkomplex der neuen Kette wird aufgebaut mit Hilfe von zwei Unterkomplexen
P (¿0 ) und P (a0 a2 ). Diese Operation wird als Surgery(Chirurgie) bezeichnet. Man
schneidet P (¿0 ) entlang der kanonischen Abbildung von a0 a2 und a2 a1 in zwei Stücke. P1
entspricht dabei der Menge der Strahlen, die entweder (i) a0 a2 und s (in dieser Ordnung)
oder (ii) m0 a0 schneiden. Strahlen der Menge (i) formen den Schattenbereich von P1. Als
Strahlen, die aus a2 a0 ausgehen, gehören sie zum Schattenbereich von P (a2 a0 ) auf Abb.
4b. Daher kann man den Unterkomplex von der Kette m0 a2 erhalten, in dem man den
Schattenbereich von P (a0 a2 ) (s) durch den Stück P1 von P(σ0) ersetzt.
Der vorgestellte Beispiel benutzt Pseudotriangulierungen des freien Raums. Der AnfangsSBK ist eine Menge von Unterkomplexen der Seiten des Dreiecks. Die Bearbeitung eines
einzelnen Pseudodreiecks gleicht einem Update des SBK. Dies geschieht in zwei
Schritten: 1. Update des Unterkomplexes der Seiten des Dreiecks (->Strahlen in den
freien Raum aus dem Dreieck heraus), 2. Update der Sicht entlang der Strahlen die ins
Innere des Pseudodreiecks zeigen. Der zweite Teil wird nicht im Beispiel besprochen, er
beinhaltet den Update des Unterkomplexes des Hindernisses außerhalb der konvexen
Hülle.
Kurze Zusammenfassung des Verfahrens:
● Fange an mit dem leeren freien Raum
● Hinzufügen der Pseudodreiecke in einer speziellen Ordnung (die effiziente
Updates des SBK ermöglicht)
● eine Triangulierung, die eine solche Ordnung ermöglicht, bezeichnet man als
zulässig
● Surgery-Operation für jedes Pseudodreieck (Update des SBK in zwei Schritten)
3.1.9
Zulässige Pseudotriangulierungen
Def: Eine Pseudotriangulierung auf der Menge der konvexen Hindernisse ist eine
Unterteilung der konvexen Hülle von O, so dass jede Region entweder im Inneren eines
Hindernisses liegt oder ein Pseudodreieck ist.
Sei T die folgende Pseudotriangulierung: für jede nichthorizontale Strecke t sei T t
eine Folge der Pseudodreiecke, die von t gekreuzt und nach wachsender y-Koordinate
geordnet sind.
Def: Eine zulässige Pseudotriangulierung ist ein Paar T ,  , bestehend aus der
T
 auf der Menge der
Pseudotriangulierung
und einer linearen Ordnung
Pseudodreiecke von T, so dass:
(i) Für jede freie nichthorizontale Strecke t ist die Folge T t unimodal bezüglich
 : erst ist sie steigend, dann fallend.
(ii) Wenn beide Endpunkte von t ein Hindernis berühren, dann ist T t fallend im
Bezug auf  .
(iii) In den zu O 2 O inzidenten Pseudodreiecken gibt es zwei Pseudodreiecke R0 und
R1, so dass wenn man aus R0 entlang des Randes von O zu R1 geht wird dabei
eine Folge der Pseudodreiecke durchlaufen, die aufsteigend bzgl.  ist,
ungeachtet dessen ob man sich im oder gegen den Uhrzeigersinn bewegt.
Behauptung 1: Jede Pseudotriangulierung einer Szene von n konvexen Hindernissen in
allgemeiner Position hat 2n-2 Pseudodreiecke und 3n-3 Bitangenten. Es gibt eine
10
zulässige Pseudotriangulierung
3.1.10
T ,  , die in O(n log n) erstellt werden kann.
Der Anfangs-SBK
Nach dem Aufbau der zulässigen Pseudotriangulierung berechnet der Algorithmus die
Unterkomplexe, die den Ketten entsprechen, welche die Ränder der Pseudodreiecke
bilden. Diese Unterkomplexe werden erweitert von Fragmenten, welche den Strahlen
entsprechen, die von einer Kette ausgehen, entlang welcher eine Bitangente im Rand des
Pseudodreiecks sichtbar ist.
Lemma: Gegeben sei eine zulässige Pseudotriangulierung einer Menge von n konvexen
Hindernissen. Der Anfangs-SBK, der aus einer Folge von erweiterten Unterkomplexen
aller Ketten in der Pseudotriangulierung besteht, kann in O(n) aufgebaut werden.
Beweis: Anhand der Behauptung 1 kann man leicht sehen, dass es O(n) Bitangenten in
einer Pseudotriangulierung gibt. Bei jeder davon gibt es O(1) Erweiterungen. Daher ist die
für die Konstruktion eines Unterkomplexes aus allen Ketten in der Pseudotriangulierung
gebrauchte Gesamtzeit O(n).
3.1.11
Durchgang 1
Aufgabe: Update der Sicht entlang der Strahlen die ins freie Raum aus dem Dreieck
heraus zeigen.
Lemma 11: Die Gesamtzeit, die notwendig ist, um den Durchgang 1 an allen
Pseudodreiecken durchzuführen ist O(n log n + k + B), wobei k die Nummer der Bögen im
TVG ist und B die Zeit, die notwendig ist um fette Kanten durchzugehen.
Beweis-Schema: Die Folgen der Kanten und Flächen werden in einer konkatenierbaren
Schlange gespeichert. Das erlaubt uns, den ersten Schnittpunkt in O(log n) zu finden.
Diese Kosten werden O(1) mal pro Bitangente der Pseudotriangulierung in Anspruch
genommen. Das ergibt O(n log n). Da es jedoch fette Kanten geben kann (Komplexität >
O(1)), werden diese gesondert betrachtet. Die Anzahl der Bögen dominiert die allgemeine
Laufzeit nicht.
3.1.12
Durchgang 2
Aufgabe: Update der Sicht entlang der Strahlen, die ins Innere des Pseudodreiecks
zeigen.
Lemma 12: Das kanonische Bild von p in P 1  ist eine Kurve, gebunden durch Punkte
die t und hp entsprechen und in einer einzigen Fläche von P 1  liegen.
Lemma 13:
(i) Eine Linie t entspricht einem Punkt auf dem Rand von P 0  .
(ii) Die Kurve ° liegt in einer einzigen Fläche von P 0  .
11
Lemma 14: Die Gesamtzeit für die Ausführung des Durchgangs 2 für alle Pseudodreiecke
ist O(n log n).
3.1.13
Komplexität des Algorithmus
Aufgrund der Behauptung 1 und der Lemmas 10, 11, 14 sieht man, dass die Gesamtzeit
des Aufbaus O(n log n + k) ist, unter Voraussetzung dass wir zeigen können, dass die
Gesamtzeit B beim Durchlaufen der fetten Kanten O(n) ist. Dies wurde unter Einsatz einer
split-find-Datenstruktur in der Fachliteratur bereits gezeigt.
Theorem: Der SBK P einer Menge von n paarweise disjunkten konvexen Hindernissen
kann in O(n log n + k) Zeit berechnet werden, wo k die Größe von P (oder, äquivalent
dazu, die Größe des zugehörigen TVG).
4 Referenzen
1. [PV1] The Visibility Complex, M. Pocchiola and G. Vegter, International Journal of Computational
Geometry and Applications, 6(3):279-308, 1996.
2. [PV2] The Visibility Complex, M. Pocchiola and G. Vegter, Extended Abstract, ACM 0-89791-5836, 1993
3. [PV3] Topologically sweeping visibility complexes via pseudotriangulations, M. Pocchiola and
G. Vegter, Discrete & Computational Geometry, 16(4):419-453, 1996.
4. [LW3] An algorithm for planning collision-free paths among polyhedral obstacles, T.LozanoPérez, and M.A. Wesley, Communications of the ACM, 22(10):560-570, 1979
5. [DP4] The visibility complex made visibly simple: an introduction to 2D structures of
visibility, Frédo Durand and Claude Puech, 11th Computational Geometry, ACM 0-89791-7243/95/0006, 1995
6. [R5] Dynamic Visibility in polygonal scenes with the Visibility Complex. Rivière, Stéphane
7. [BG6] 3D Visibility Graph. Bygi, Mojtaba Nouri, Ghodsi, Mohammad, Department of Computer
Engineering Sharif University of Technology, Tehran.
12
Herunterladen