Die Präsentation wird geladen. Bitte warten

Die Präsentation wird geladen. Bitte warten

Institut für Kartographie und Geoinformation Prof. Dr. Lutz Plümer Geoinformation II Vorlesung 8 08.06.00 Foliendesign: cand. geod. Jörg Steinrücken.

Ähnliche Präsentationen


Präsentation zum Thema: "Institut für Kartographie und Geoinformation Prof. Dr. Lutz Plümer Geoinformation II Vorlesung 8 08.06.00 Foliendesign: cand. geod. Jörg Steinrücken."—  Präsentation transkript:

1

2 Institut für Kartographie und Geoinformation Prof. Dr. Lutz Plümer Geoinformation II Vorlesung 8 08.06.00 Foliendesign: cand. geod. Jörg Steinrücken

3 Lutz Plümer - Geoinformation II - SS 2000 - Vorlesung 8 - 08.06.002 Zur Erinnerung: Punktsuche in Landkarten In welcher Masche liegt q? Außen x y Landkarte S mit n Kanten q

4 Lutz Plümer - Geoinformation II - SS 2000 - Vorlesung 8 - 08.06.003 Außen q Lösung 1: Zerlegung in vertikale Streifen x y

5 Lutz Plümer - Geoinformation II - SS 2000 - Vorlesung 8 - 08.06.004 Nachteil: O(n²) Speicherplatz im Worst Case

6 Lutz Plümer - Geoinformation II - SS 2000 - Vorlesung 8 - 08.06.005 Lösung 2: Trapezkarte R

7 Lutz Plümer - Geoinformation II - SS 2000 - Vorlesung 8 - 08.06.006 Trapezkarte: Konstruktionsprinzip Die Trapezkarte T(S) einer Landkarte S wird wie folgt konstruiert: –Bilde ein umschließendes Rechteck R Vermeidung der unbeschränkten Masche Außen –Konstruiere für jeden Endpunkt P eines Segments aus S eine obere und eine untere vertikale Extension (Linie); diese Linien enden am Schnittpunkt mit dem nächsten Segment aus S oder an R Diese Konstruktion zerlegt R in disjunkte Trapeze, die von (höchstens) 4 Seiten begrenzt werden: –Ein oder zwei vertikale Seiten, gebildet aus den Extensionen –Eine obere und eine untere Seite, gebildet aus den Segmenten

8 Lutz Plümer - Geoinformation II - SS 2000 - Vorlesung 8 - 08.06.007 Trapezkarte: vereinfachende Annahme Es gibt keine zwei Knoten mit gleicher x-Koordinate, d.h. es gibt keine vertikalen Kanten Falls diese Annahme nicht erfüllt ist, kann sie durch Rotation um den Ursprung + Scherung mit einem sehr kleinen Winkel, der topologisch nichts kaputt macht, hergestellt werden Später werden wir sehen, dass diese Transformation rein virtuell ist

9 Lutz Plümer - Geoinformation II - SS 2000 - Vorlesung 8 - 08.06.008 5 Fälle für die vertikalen (linken) Kanten 1. Kante entartet zu einem Punkt 2. Die untere vertikale Er- weiterung trifft auf eine Kante von S 3. Die obere vertikale Er- weiterung trifft auf eine Kante von S 4. Kante besteht aus oberer und unterer Erweiterung 5. Kante besteht aus einer Kante von R

10 Lutz Plümer - Geoinformation II - SS 2000 - Vorlesung 8 - 08.06.009 Bezeichnungen leftprightp top bottom

11 Lutz Plümer - Geoinformation II - SS 2000 - Vorlesung 8 - 08.06.0010 Trapezkarte - Eigenschaften Satz: Eine Trapezkarte einer Landkarte S mit n Kanten enthält höchstens (a) 6n + 4 vertikale Linien und (b) 3n + 1 Trapeze. Beweis: (a) Ein Knoten der Trapezkarte ist entweder –ein Eckpunkt von R 4 –ein Knoten der Karte S 2n –ein Punkt, bei dem eine Erweiterung auf eine Kante von S trifft 4n Insgesamt: 6n + 4

12 Lutz Plümer - Geoinformation II - SS 2000 - Vorlesung 8 - 08.06.0011 Trapezkarte - Eigenschaften Satz: Eine Trapezkarte einer Landkarte S mit n Kanten enthält höchstens 6n + 4 vertikale Linien und sowie 3n + 1 Trapeze. Beweis: (b): aus a) mit Eulers Formel

13 Lutz Plümer - Geoinformation II - SS 2000 - Vorlesung 8 - 08.06.0012 Trapezkarte - Eigenschaften Zwei Trapeze T und T heißen adjazent, wenn sie sich entlang einer vertikalen Linie berühren T T Es gilt entweder top(T) = top(T) oder bottom(T) = bottom(T) TT T T

14 Lutz Plümer - Geoinformation II - SS 2000 - Vorlesung 8 - 08.06.0013 Probleme und weiteres Vorgehen Probleme: Konstruktion der Trapezkarte T(S) Unterstützung der Suche in einer Trapezkarte Idee für das weitere Vorgehen: Unterstützung der Suche durch eine Art binärer Suchbaum D(S) mit 2 Sorten von Knoten –X-Knoten für Endpunkte / Extensionen Links oder Rechts? –Y-Knoten für Segmente Oben oder Unten? Trapezkarte und Baum werden simultan konstruiert

15 Lutz Plümer - Geoinformation II - SS 2000 - Vorlesung 8 - 08.06.0014 T(S) undD(S) p1p1 A q1q1 s1s1 B C p2p2 q2q2 s2s2 s2s2 D E F G D E F G A B C p1p1 q1q1 s1s1 p2p2 q2q2 s2s2

16 Lutz Plümer - Geoinformation II - SS 2000 - Vorlesung 8 - 08.06.0015 Schrittweise Konstruktion von T(S) und D(S)

17 Lutz Plümer - Geoinformation II - SS 2000 - Vorlesung 8 - 08.06.0016 Trapezkarte und Suchstruktur zweier Kanten X p1p1

18 Lutz Plümer - Geoinformation II - SS 2000 - Vorlesung 8 - 08.06.0017 Trapezkarte und Suchstruktur zweier Kanten p1p1 p1p1 p1p1

19 Lutz Plümer - Geoinformation II - SS 2000 - Vorlesung 8 - 08.06.0018 Trapezkarte und Suchstruktur zweier Kanten X A X p1p1 q1q1 A p1p1

20 Lutz Plümer - Geoinformation II - SS 2000 - Vorlesung 8 - 08.06.0019 Trapezkarte und Suchstruktur zweier Kanten A q1q1 p1p1 A q1q1 s1s1 s1s1 s1s1 q1q1 p1p1

21 Lutz Plümer - Geoinformation II - SS 2000 - Vorlesung 8 - 08.06.0020 X Trapezkarte und Suchstruktur zweier Kanten A p1p1 A q1q1 s1s1 B B X Y Y p2p2 s1s1 p1p1 q1q1

22 Lutz Plümer - Geoinformation II - SS 2000 - Vorlesung 8 - 08.06.0021 Trapezkarte und Suchstruktur zweier Kanten A B p1p1 A q1q1 s1s1 B Y Y p2p2 p2p2 s1s1 q1q1 p2p2 p1p1

23 Lutz Plümer - Geoinformation II - SS 2000 - Vorlesung 8 - 08.06.0022 Trapezkarte und Suchstruktur zweier Kanten A B p1p1 A q1q1 s1s1 B Y Y p2p2 C C X X q2q2 s1s1 q1q1 p2p2 p1p1

24 Lutz Plümer - Geoinformation II - SS 2000 - Vorlesung 8 - 08.06.0023 Trapezkarte und Suchstruktur zweier Kanten A B C X p1p1 A q1q1 s1s1 B C p2p2 X q2q2 q2q2 q2q2 s2s2 s1s1 p2p2 q1q1 p1p1

25 Lutz Plümer - Geoinformation II - SS 2000 - Vorlesung 8 - 08.06.0024 A B C Trapezkarte und Suchstruktur zweier Kanten p1p1 A q1q1 s1s1 B C p2p2 q2q2 p2p2 s2s2 s2s2 p1p1 q1q1 s1s1 q2q2 s2s2 s2s2 s2s2

26 Lutz Plümer - Geoinformation II - SS 2000 - Vorlesung 8 - 08.06.0025 D E F G A B C Trapezkarte und Suchstruktur zweier Kanten p1p1 A q1q1 s1s1 B C p2p2 q2q2 s2s2 s2s2 p1p1 q1q1 s1s1 D E F G p2p2 q2q2 s2s2

27 Lutz Plümer - Geoinformation II - SS 2000 - Vorlesung 8 - 08.06.0026 Beachte: T(S) und D(S) werden simultan konstruiert D(S) ist kein Baum, sondern ein DAG, ein directed acyclic graph, ein gerichteter azyklischer Graph Dieser DAG ist zusammenhängend und hat genau eine Wurzel Unterschied zum Baum: innere Knoten können mehrere Vorgänger haben Die Blätter von D(S) und die Trapeze von T(S) referenzieren sich gegenseitig Wie stets hängt die Tiefe (=Güte) des Baumes von der Reihenfolge der Bearbeitung der Segmente ab Idee: Zufällige Permutation der Segmente von S

28 Lutz Plümer - Geoinformation II - SS 2000 - Vorlesung 8 - 08.06.0027 Datenstruktur für T(S) Möglich wäre eine doppelt verkettete Kantenliste (s. Overlay) Wegen der einfachen Struktur der Trapeze bietet sich folgende Alternative an: Knoten (mit Koordinaten) Segmente (mit Referenzen auf Knoten) Trapeze mit Referenzen auf: –Top –Bottom –Leftp –Rightp –alle (maximal 4) Nachbarn Beachte: Die Geometrie der Trapeze ist nur implizit, kann aber in konstanter Zeit rekonstruiert werden

29 Lutz Plümer - Geoinformation II - SS 2000 - Vorlesung 8 - 08.06.0028 Skizze: Konstruktion von T(S) und D(S) Input: Eine Menge S von n Segmenten 1.Konstruiere ein umschließendes Rechteck R 2.Berechne eine Permutation s 1, s 2,...,s n von S 3.for i= 1 to n do Konstruiere T(S i ) und D(S i ) mit S i = {s 1, s 2,...,s i } unter Verwendung von T(S i-1 ) und D(S i-1 ) Schleifeninvariante: T(S i-1 ) ist eine Trapezkarte und D(S i-1 ) ist eine Suchstruktur für diese Trapezkarte Der Unterschied zwischen i-1 und i betrifft genau die Trapeze in T(S i-1 ), die von s i geschnitten werden

30 Lutz Plümer - Geoinformation II - SS 2000 - Vorlesung 8 - 08.06.0029 Von T(S i-1 ) und D(S i-1 ) zu T(S i ) und D(S i ) Fall 1: s i liegt in genau einem Trapez Input: Das Segment s i, T(S i-1 ) und D(S i-1 ) Idee: Nutze die Suchstruktur D(S i-1 ), um schnell zu finden Vorgehen: Modifiziere T(S i-1 ) und D(S i-1 ) in der auf den folgenden Folien beschriebenen Weise:

31 Lutz Plümer - Geoinformation II - SS 2000 - Vorlesung 8 - 08.06.0030 Einfügen einer Kante (I) D(S i-1 ) pipi T(S i-1 )

32 Lutz Plümer - Geoinformation II - SS 2000 - Vorlesung 8 - 08.06.0031 Einfügen einer Kante (I) D(S i-1 ) pipi pipi sisi sisi sisi qiqi qiqi pipi qiqi

33 Lutz Plümer - Geoinformation II - SS 2000 - Vorlesung 8 - 08.06.0032 Einfügen einer Kante (I) C D B A D(S i-1 ) pipi qiqi sisi A C B D pipi qiqi sisi T(S i ) D(S i )

34 Lutz Plümer - Geoinformation II - SS 2000 - Vorlesung 8 - 08.06.0033 Von T(S i-1 ) und D(S i-1 ) zu T(S i ) und D(S i ) Fall2 Fall 2: s i liegt in mehrere Trapezen 1, 2,... n Input: Das Segment s i, T(S i-1 ) und D(S i-1 ) Teilziel: Bestimmung von 1, 2,... n Beobachtungen: i ist rechter Nachbar von i-1 Jedes Trapez hat maximal 2 rechte Nachbarn Der richtige kann mit rightp( ) rasch identifiziert werden: –wenn rightp( ) oberhalb von s i, dann wähle den unteren rechten Nachbarn, sonst den oberen –Der Übergang von i zu i+1 ist also einfach Nutze D(S i-1 ) um 1 schnell zu finden Modifiziere T(S i-1 ) und D(S i-1 ) nun auf die folgende Weise:

35 Lutz Plümer - Geoinformation II - SS 2000 - Vorlesung 8 - 08.06.0034 Einfügen einer Kante (II) 3 D(S i-1 ) 1 2 0 3 0 1 2 qiqi T(S i-1 ) pipi

36 Lutz Plümer - Geoinformation II - SS 2000 - Vorlesung 8 - 08.06.0035 Einfügen einer Kante (II) 0 1 2 qiqi sisi qiqi qiqi pipi D(S i-1 ) 1 2 0

37 Lutz Plümer - Geoinformation II - SS 2000 - Vorlesung 8 - 08.06.0036 Einfügen einer Kante (II) D(S i-1 ) qiqi sisi sisi sisi sisi qiqi pipi sisi sisi sisi sisi sisi

38 Lutz Plümer - Geoinformation II - SS 2000 - Vorlesung 8 - 08.06.0037 Einfügen einer Kante (II) D(S i-1 ) qiqi sisi sisi sisi A B D E F B D sisi A C F E C sisi pipi qiqi T(S i ) D(S i )

39 Schönen Dank für Ihre Aufmerksamkeit und Auf Wiedersehen


Herunterladen ppt "Institut für Kartographie und Geoinformation Prof. Dr. Lutz Plümer Geoinformation II Vorlesung 8 08.06.00 Foliendesign: cand. geod. Jörg Steinrücken."

Ähnliche Präsentationen


Google-Anzeigen