Vorlesung 3 27. April 2000 Polygon Overlay Geoinformation II 6. Sem. Vorlesung 3 27. April 2000 Polygon Overlay
Verwaltung der aktiven Elemente F B S2 S3 C S4 D A S1 E B E C D
AVL-Baum: L-Rotation +2 T1 T2 T3 k1 k2 +1 x
Eine Variante des AVL-Baums mit einer doppelt verketteten Liste der Blätter für die Menge der aktiven Elemente
für die Haltepunkte ... ...mit den Operationen Einfügen eines gefundenen Schnittpunktes Finden und Entfernen des nächsten (also minimalen) Elements ... ... genügt ein „normaler“ AVL-Baum obwohl man mit Kanonen auf Spatzen schießt besser: ein Heap bei Interesse: Vorlesung 2 (heute), Diskrete Mathematik
Overlay von Polygonen (Landkarten) bisher: Overlay von Netzen genügt: Bestimmung der Schnittpunkte bei Polygonen Konstruktion der neuen Polygone
Polygon Overlay Problem: Konstruktion der neuen Flächen A B C
Polygon-Overlay der Schnitt zweier Kanten führt zu vier neun Kanten Problem: Aggregation der neuen Polygone aus den alten und den neuen Kanten Vererbung der Attribute der alten Maschen auf die neuen Maschen Vegetation Niederschlag wichtigsten Teilproblem: Aggregation der Kante Konstruktion einer neuen Verzeigerung zwischen den Kanten
Datenstruktur für Landkarten zur Erinnerung Spaghetti Knoten-Kanten-Strukturen geflügelte Kante Variante: doppelt-geflügelte Doppelkanten twin(e) beachte den Umlaufsinn der Kanten Masche liegt immer links
zur Erinnerung: Datenstrukturen für Landkarten
Spaghetti Flächen: x y A B C A: 2.0 0.0 5.0 1.0 7.0 3.0 5.0 4.0 5.0 1.0 7.0 3.0 5.0 4.0 1.0 1.0 B: 5.0 4.0 7.0 3.0 7.0 6.0 5.0 6.0 C: 5.0 4.0 5.0 7.0 0.0 3.0 x y Spaghetti (5.0 4.0) (5.0 1.0) (2.0 0.0) (7.0 3.0) (1.0 1.0) (7.0 6.0) (5.0 6.0) (5.0 7.0) (0.0 3.0) A B C
Spaghetti 2.0, 5.0 P1 3.0, 6.0 P2 P1 P3 P5 7.0, 2.0 P4 Vorteile: bequem für Flächenberechnung gut für Graphikprogramme Zeichnen von Polygonen Nachteile: Topologie nur implizit fehleranfällig wenig änderungsfreundlich Beispiel: Korrektur von Punktkoordinaten P1 P2 P1 P3 P5 P4
Knoten-Maschen-Struktur Kante End- knoten linke Masche Anfangs- knoten Knoten-Maschen-Struktur P1 E6 E11 P2 P3 P6 P7 P8 P9 A B C P5 P4 E1 E2 E3 E4 E5 E7 E8 E9 E10 Außen rechte Masche E1 P1 P2 A Außen E2 P2 P3 A Außen E3 P3 P4 A B E4 P4 P5 A C E5 P5 P1 A Außen E6 P3 P6 B Außen .............................................. Kanten: Knoten: P1 2.0 0.0 P2 5.0 1.0 ..............................................
Knoten-Maschen-Struktur Kante End- knoten linke Masche Anfangs- knoten P8 rechte Masche Außen E9 Kanten: P7 E7 E1 P1 P2 A Außen E2 P2 P3 A Außen E3 P3 P4 A B E4 P4 P5 A C E5 P5 P1 A Außen E6 P3 P6 B Außen .............................................. E10 P6 E8 B E6 C P4 P9 E3 P3 E4 E11 A E2 P5 P2 E5 E1 Knoten: P1 P1 2.0 0.0 P2 5.0 1.0 ..............................................
Kanten mit Flügeln
Geflügelte Kanten Kanten: Außen B C A P8 E9 E7 P7 P6 E10 E8 E6 Nachfolger im Umring der rechten Masche P8 Vorgänger im Umring der linken Masche Außen E9 P7 E7 P6 E10 Kanten: E8 B E6 E1 P1 P2 A Außen E5 E2 E2 P2 P3 A Außen E1 E6 E3 P3 P4 A B E2 E8 E4 P4 P5 A C E3 E11 E5 P5 P1 A Außen E4 E1 E6 P3 P6 B Außen E3 E7 ..................................................... C P4 E3 P9 E4 P3 E11 A E2 P5 P2 E5 E1 P1
Geflügelte Kanten Kanten: Außen B C A P8 E9 E7 P7 P6 E10 E8 E6 Nachfolger im Umring der rechten Masche P8 Vorgänger im Umring der linken Masche Außen E9 P7 E7 P6 E10 Kanten: E8 B E6 E1 P1 P2 A Außen E5 E2 E2 P2 P3 A Außen E1 E6 E3 P3 P4 A B E2 E8 E4 P4 P5 A C E3 E11 E5 P5 P1 A Außen E4 E1 E6 P3 P6 B Außen E3 E7 ..................................................... C P4 E3 P9 E4 P3 E11 A E2 P5 P2 E5 E1 P1
Geflügelte Kanten Kanten: Außen B C A P8 E9 E7 P7 P6 E10 E8 E6 Nachfolger im Umring der rechten Masche P8 Vorgänger im Umring der linken Masche Außen E9 P7 E7 P6 E10 Kanten: E8 B E6 E1 P1 P2 A Außen E5 E2 E2 P2 P3 A Außen E1 E6 E3 P3 P4 A B E2 E8 E4 P4 P5 A C E3 E11 E5 P5 P1 A Außen E4 E1 E6 P3 P6 B Außen E3 E7 ..................................................... C P4 E3 P9 E4 P3 E11 A E2 P5 P2 E5 E1 P1
Geflügelte Kanten Kanten: Außen B C A P8 E9 E7 P7 P6 E10 E8 E6 Nachfolger im Umring der rechten Masche P8 Vorgänger im Umring der linken Masche Außen E9 P7 E7 P6 E10 Kanten: E8 B E6 E1 P1 P2 A Außen E5 E2 E2 P2 P3 A Außen E1 E6 E3 P3 P4 A B E2 E8 E4 P4 P5 A C E3 E11 E5 P5 P1 A Außen E4 E1 E6 P3 P6 B Außen E3 E7 ..................................................... C P4 E3 P9 E4 P3 E11 A E2 P5 P2 E5 E1 P1
Geflügelte Kanten Kanten: Außen B C A P8 E9 E7 P7 P6 E10 E8 E6 Nachfolger im Umring der rechten Masche P8 Vorgänger im Umring der linken Masche Außen E9 P7 E7 P6 E10 Kanten: E8 B E6 E1 P1 P2 A Außen E5 E2 E2 P2 P3 A Außen E1 E6 E3 P3 P4 A B E2 E8 E4 P4 P5 A C E3 E11 E5 P5 P1 A Außen E4 E1 E6 P3 P6 B Außen E3 E7 ..................................................... C P4 E3 P9 E4 P3 E11 A E2 P5 P2 E5 E1 P1
Datenstruktur für Landkarten zur Erinnerung Spaghetti Knoten-Kanten-Strukturen geflügelte Kante Variante: doppelt-geflügelte Doppelkanten twin(e) beachte den Umlaufsinn der Kanten Masche liegt immer links
Von Kanten zu Halbkanten
Polygon Overlay A C B Problem: Konstruktion der neue Flächen wir beschränken uns hier auf einen schwierigen Sonderfall alle anderen Fälle leiten sich als Vereinfachungen daraus ab A C B
Maschenumring eines Knotens („Umbrella“) IV II III
Problem Konstruktion der neuen Maschen Update der alten Maschen hier: Update der Verzeigerung der Kanten explizite Konstruktion der Maschen ist dann einfach
Der neue Regenschirm I II VI III V IV
Beachte Entstehung zweier neuer Maschen Umring gegeben durch die zu v inzidenten Kanten sowie die Aufteilung von e in e‘ und e‘‘ Problem: Konstruktion und Update der Vorgänger-Nachfolger-Relationen zwischen Kanten Konstruktion zunächst implizit explizite Konstruktion und Attributierung siehe später
Geometrische Situation v
Darstellung der Halbkanten v
Nachfolger und Vorgänger von e
Wo müssen wir etwas tun? am Knoten v an den beiden Endknoten von e neue Maschen konstruieren wie finden wir diese? Umlauf definiert Ordnung Nachbarschaft benachbarte Kanten gehören zur gleichen Masche an den beiden Endknoten von e
Aufteilung von e in e` und e``
Aufteilung von e in e` und e``
Aufteilung von e in e` und e``
Korrektur am Knoten v e`` v e`
Korrektur am Knoten v e`` v e` Erste Halbkante gegen den Uhrzeigersinn von e``mit v als Zielpunkt Erste Halbkante im Uhrzeigersinn von e`` mit v als Ursprung e`` v Erste Halbkante im Uhrzeigersinn von e` mit v als Ursprung Erste Halbkante gegen den Uhrzeigersinn von e` mit v als Zielpunkt e`
Maschenkonstruktion im Prinzip einfach alle Kanten durchlaufen Markierung aller besuchten Kanten liefert Abbruchkriterium Vererbung der Attribute aus den alten Kanten einsammeln
Spezialfall äußere, unbeschränkte Masche Löcher als Übung: Vorgehen am Schnittpunkt zweier Kanten explizite Aufzählung der neuen Maschen und ihrer Attribute Behandlung der unbeschränkten äußeren Masche Behandlung von Löchern