3D-Netzgenerierung für Fließgewässer Von der Fakultät für Mathematik, Informatik und Naturwissenschaften der Rheinisch-Westfälischen Technischen Hochschule Aachen zur Erlangung des akademischen Grades einer Doktorin der Naturwissenschaften genehmigte Dissertation vorgelegt von Diplom-Informatikerin Irmgard Dittrich geborene Spies aus Eschweiler Berichter: Universitätsprofessor em. Dr. rer. nat. Walter Oberschelp Universitätsprofessor Dr. rer. nat. Juraj Hromkovic Tag der mündlichen Prüfung: 16. August 2001 Diese Dissertation ist auf den Internetseiten der Hochschulbibliothek online verfügbar. ii iii Wir erkennen die Wahrheit nicht nur durch die Vernunft, ” sondern auch durch das Herz.“ Blaise Pascal iv v Danksagung Diese Arbeit entstand hauptsächlich während meiner Tätigkeit als wissenschaftliche Mitarbeiterin am Lehrstuhl für Angewandte Mathematik insbesondere Informatik bzw. am Lehrstuhl für Informatik VII im Rahmen eines DFG-Projekts Numerische Simulation von Strömung in natürlichen Fließ” gewässern“ in Zusammenarbeit mit dem Lehrstuhl und Institut für Wasserbau und Wasserwirtschaft der RWTH Aachen. Mein ganz besonderer Dank gilt Herrn Prof. (em.) Dr. Walter Oberschelp für seine einfühlsame Betreuung, die interessanten Diskussionen und wertvollen Anregungen. Durch seine Unterstützung wurde diese Arbeit erst ermöglicht. Trotz seiner vielen Interessen hat er sich - auch als Emeritus - immer viel Zeit genommen. Herrn Prof. Dr. Juraj Hromkovic danke ich für die Übernahme des Korreferates. Herrn Prof. Dr. Wolfgang Thomas danke ich für seine Förderung und für die Arbeitsmöglichkeiten am Lehrstuhl. Ein besonderer Dank gilt auch der DFG, die dieses Projekt finanziell unterstützt hat und somit diese Arbeit überhaupt ermöglicht hat. Insbesondere bedanke ich mich bei Dr. Robert Schneiders, meinem ehemaligen Kollegen, für den wissenschaftlichen Austausch und für wertvolle Hinweise. Meinen (ehemaligen) Kolleginnen und Kollegen sei Dank für anregende Diskussionen und ihre Hilfsbereitschaft bei Rechnerproblemen. Den im Rahmen des DFG-Projekts beschäftigten wissenschaftlichen Hilfskräften und den ehemaligen Diplomanden O. Könen, S. Schumann, K. Stolze und M. Yoantoro danke ich für ihre Unterstützung durch Forschung, Programmierung und Hilfeleistungen wie z.B. das Zeichnen von Bildern. Bei Prof. Dr. Jürgen Köngeter, Leiter des Lehrstuhls und Instituts für Wasserbau und Wasserwirtschaft, und seinen (ehemaligen) Angestellten, insbesondere R. Kowalski, D. Schwanenberg, Dr. M. Schröder und Dr. P. Ruland, bedanke ich mich für die wertvollen Diskussionen und Erklärungen aus wasserbaulicher Sicht. Außerdem bedanke ich mich für die Arbeit mit dem Schriftverkehr mit der DFG, der zu großen Teilen durch das Institut für Wasserbau und Wasserwirtschaft durchgeführt wurde. Ein herzlicher Dank gilt meinem Mann Ralf für sein großes Verständnis und seine liebevolle Unterstützung sowie meiner Familie für ihren wertvollen Rückhalt. Aachen im Dezember 2001, Irmgard Dittrich vi Zusammenfassung Diese Arbeit entstand im Rahmen des DFG-Projekts Numerische Simula” tion von Strömung in natürlichen Fließgewässern“, das der Lehrstuhl für Angewandte Mathematik insbesondere Informatik bzw. der Lehrstuhl für Informatik VII in Zusammenarbeit mit dem Lehrstuhl und Institut für Wasserbau und Wasserwirtschaft der RWTH Aachen durchführte. Physikalische Vorgänge können durch partielle Differentialgleichungen, die u.a. numerisch mit der Finite-Elemente-Methode gelöst werden und angepasste Netze benötigen, simuliert werden. Bisher wurden bei Simulationen für Fließgewässer vorwiegend ein- oder zweidimensionale Berechnungsverfahren eingesetzt. Jedoch verlangen komplexe Geometrien mit komplexen Strömungsvorgängen ein vollständig dreidimensionales numerisches Simulationssystem mit freier Oberfläche, wofür bestimmte Nebenbedingungen und Anforderungen eingehalten werden müssen. Verfahren zur 3DNetzgenerierung sind für diesen Problembereich mit den hier geltenden Restriktionen bisher nicht bekannt. In dieser Arbeit wird ein neues Lösungskonzept zur Ermittlung solcher 3D-Netze vorgestellt. Ein wesentlicher Schritt ist die Erstellung einer sogenannten 2D-Karte“ (P-Netz), welche bereits ” (bis auf Optimierung) alle wesentlichen Steuerungen für die 3D-Vernetzung enthält. Die Erzeugung von nicht-erlaubten und deswegen noch zu zerlegenden 3D-Elementen ist i.a. nicht vermeidbar. Die P-Vernetzung orientiert sich deswegen hauptsächlich an der Geringhaltung der Generierung von Elementen der P-Ebene, aus denen bei der 3D-Vernetzung zu zerlegende Elemente entstehen. Die Zerlegung der zu zerlegenden 3D-Elemente stellt ein Optimierungsproblem dar. Dieses Problem wird auf ein graphentheoretisches Orientierungsproblem übertragen, für das im Rahmen dieser Arbeit ein neuer effizienter Algorithmus entwickelt wurde. Algorithmen hierzu sind aus der Literatur nicht bekannt. Diese Dissertation stellt somit in mehrfacher Hinsicht neue und wichtige Forschungsergebnisse dar. vii Abstract This work originated in the course of the DFG-projekt Numerical simulation ” of flow in natural flow waters“ which the Institute of Applied Mathematics especially Information Science resp. the Institute of Information Science VII leaded in cooperation with the Institute of Hydraulic Engineering and Water Resources Management of the Aachen University of Technology. Physical processes can be simulated by partial differential equations that can be solved i.e. numerical with the finite-element-method and requires adjusted nets. So far for simulations of flow waters mainly one or two dimensional methods of calculations were used. However complex geometries with complex flow procedures demand a complete three dimensional numerical simulation system with free surface flow, for which certain additional conditions and requirements have to be kept. Methods for the 3D-netgeneration for this problem-area with the here valid restrictions are not known so far. In this work a new solution-concept for the generation of such 3D-nets is presented. An essential step is the creation of a thus named 2D-map“ (P-net), ” which already contains (except for optimization) all essential controls for the 3D-netgeneration. The production of not allowed and therefore still to be decomposed 3D-elements is in general not preventible. The P-netgeneration orientates mainly at the reduction of the generation of elements of the p-plane which will become to be decomposed elements by the 3D-generation. The decomposition of the to be decomposed 3D-elements represents an optimization problem. This problem is transfered to an optimization problem of graph theory, for which a new efficient algorithm is developed in the course of this work. Algorithms for that problem are not known in the literature. Therefore this dissertation presents new and important results of research in several respects. viii Inhaltsverzeichnis 1 Einleitung 1 2 Netzgenerierung in der Literatur 5 3 Aufgabenstellung und Lösungskonzept 3.1 Aufgabenstellung . . . . . . . . . . . . . . . . . . . . 3.2 Beschreibung der zu vernetzenden Geometrie . . . . . 3.3 Netzgenerierung durch Projektion . . . . . . . . . . . 3.4 Verfeinerungsanforderungen und Regionen-Erzeugung 3.5 Weitere Anforderungen und Probleme . . . . . . . . . 3.6 Zusammenfassung und Lösungsschema . . . . . . . . 4 Die P-Vernetzung: Probleme und Aufgaben 4.1 Konfliktelemente und deren Auswirkungen . . . 4.1.1 Zuordnung der Tiefenwerte . . . . . . . . 4.1.2 Konfliktelemente . . . . . . . . . . . . . 4.1.3 Konfliktvierecke . . . . . . . . . . . . . . 4.1.4 Konfliktdreiecke . . . . . . . . . . . . . . 4.1.5 Erzeugung des Erstnetz . . . . . . . . . 4.1.6 Konfliktdreiecke und daraus resultierende 4.2 Aufgaben der P-Vernetzung . . . . . . . . . . . 4.2.1 Zacken . . . . . . . . . . . . . . . . . . . 4.2.2 Schmale Regionen . . . . . . . . . . . . . 4.2.3 Anpassung und Zerlegungspfade . . . . . 4.2.4 Übersicht . . . . . . . . . . . . . . . . . 5 Lösungen zur P-Vernetzung 5.1 Vernetzung der Ecken . . . . . . . . . . . . 5.1.1 Tiefenwertkombinationen der Ecken 5.1.2 Anforderung an Zerlegungspfade . . 5.1.3 ±20◦ -Ecken . . . . . . . . . . . . . ix . . . . . . . . . . . . . . . . . . 9 10 13 16 23 28 33 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Zerlegungen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 37 38 38 40 43 55 61 62 66 68 70 73 74 . . . . 77 78 78 87 89 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . x INHALTSVERZEICHNIS 5.2 5.3 5.4 5.5 5.6 5.1.4 ±90◦ -Ecken . . . . . . . . . . . . . . . . . . . . . 5.1.5 ±180◦ -Ecken . . . . . . . . . . . . . . . . . . . . 5.1.6 ±270◦ -Ecken . . . . . . . . . . . . . . . . . . . . 5.1.7 ±340◦ -Ecken . . . . . . . . . . . . . . . . . . . . 5.1.8 Direkt benachbarte Ecken . . . . . . . . . . . . . 5.1.9 Einhaltung der Anforderung an Zerlegungspfade . 5.1.10 Beispiel Wurm . . . . . . . . . . . . . . . . . . . Vernetzung von schmalen Regionen . . . . . . . . . . . . 5.2.1 Schmale Regionen . . . . . . . . . . . . . . . . . . 5.2.2 Übergänge schmaler Regionen . . . . . . . . . . . 5.2.3 Beispiel Wurm . . . . . . . . . . . . . . . . . . . Vernetzung von Zacken . . . . . . . . . . . . . . . . . . . 5.3.1 Freiliegende Zacken . . . . . . . . . . . . . . . . . 5.3.2 Zacken nahe bei Knoten von Polygonabschnitten . 5.3.3 Beispiel Wurm . . . . . . . . . . . . . . . . . . . Anpassungselemente und Anschlußknoten . . . . . . . . . Zerlegungspfade innerhalb von Regionen . . . . . . . . . 5.5.1 Darstellung des Verfahrens . . . . . . . . . . . . . 5.5.2 Qualitätsberechnung . . . . . . . . . . . . . . . . 5.5.3 Generierung eines Zerlegungspfades . . . . . . . . Fertigstellung des P-Netzes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6 Zerlegungsgraphen 6.1 Detektion aller Zerlegungsgraphen . . . . . . . . . . . . . . . 6.2 Zerlegungen und Zerlegungsgraphen . . . . . . . . . . . . . . 6.3 Lösung des Minzuproblems . . . . . . . . . . . . . . . . . . . 6.3.1 Eine Äquivalenzeigenschaft eines zulässig orientierten Differenzgraphen . . . . . . . . . . . . . . . . . . . . 6.3.2 Eine Äquivalenzeigenschaft eines zulässig optimal orientierten Differenzgraphen . . . . . . . . . . . . . . . 6.3.3 Ein effizientes Verfahren zur Ermittlung einer zulässigen minimalen Orientierung für Differenzgraphen . . 6.3.4 Aufwand für Algorithmus 6.3 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 93 93 94 95 96 101 102 103 105 119 123 124 125 139 152 153 158 159 165 180 196 199 . 200 . 206 . 212 . 213 . 217 . 225 . 238 7 Zusammenfassung und Ausblick 247 Literaturverzeichnis 251 Index 255 Abbildungsverzeichnis 3.1 3.2 3.3 3.4 3.5 3.6 3.7 3.8 3.9 3.10 3.11 3.12 3.13 3.14 3.15 3.16 3.17 3.18 3.19 3.20 4.1 4.2 4.3 4.4 4.5 (i) konformes Netz (ii) nicht konformes Netz . . . . . . . . . . Darstellung eines möglichen Gesamtnetzes für das Wurmbeispiel Querprofil . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Uferpolygone . . . . . . . . . . . . . . . . . . . . . . . . . . . Ein- und Auslaufebene . . . . . . . . . . . . . . . . . . . . . . Projektion auf eine Horizontalebene für das Wurmbeispiel (vergl. Abb. 3.2) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Berandungspolygon für das Wurmbeispiel . . . . . . . . . . . . Generierung eines Elementstapels . . . . . . . . . . . . . . . . Schnittpolygone (und Berandungspolygon) für das Wurmbeispiel Erzeugung der Knoten für die Dreieckmodelle . . . . . . . . . Knoten- und Elementschichten . . . . . . . . . . . . . . . . . . Verfeinerungspolygone und -bereiche . . . . . . . . . . . . . . Schnitt- und Verfeinerungspolygone (und Berandungspolygon) für das Wurmbeispiel . . . . . . . . . . . . . . . . . . . . . . . Anpassung der Polygone und Erzeugung von P-Regionen für das Wurmbeispiel . . . . . . . . . . . . . . . . . . . . . . . . . (i) Schmale Region (ii) Ausreißerregion . . . . . . . . . . . . . Seitenansicht eines Elementstapels . . . . . . . . . . . . . . . . Zerlegung eines benachbarten Elements . . . . . . . . . . . . . P-Zerlegungspfad ZP und Konfliktelemente K1 und K2 mit Zl(ZP)=Zl(K1)=Zl(K2)=2 . . . . . . . . . . . . . . . . . . . . Mögliche Schnitte und Berührungen zweier übereinanderliegender Dreiecke . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Zuordnung der Tiefenwerte an den Querprofilen . . . . Zuordnung der Tiefenwerte für die P-Knoten für einen ausschnitt des Wurmbeispiels . . . . . . . . . . . . . . Konfliktdreieckkandidaten . . . . . . . . . . . . . . . . Konfliktviereckkandidaten . . . . . . . . . . . . . . . . *-4-Elemente und W-Prisma . . . . . . . . . . . . . . . xi . . . Teil. . . . . . . . . . . . 10 11 14 15 16 17 18 20 20 21 23 24 25 26 28 30 31 32 34 36 . 40 . . . . 41 42 42 44 xii ABBILDUNGSVERZEICHNIS 4.6 4.7 4.8 4.9 4.10 4.11 4.12 4.13 4.14 4.15 4.16 4.17 4.18 4.19 4.20 4.21 4.22 4.23 4.24 4.25 4.26 4.27 4.28 4.29 4.30 4.31 5.1 5.2 5.3 5.4 5.5 5.6 5.7 5.8 5.9 Zerlegung eines 1-4-Elements . . . . . . . . . . . . . . . . . . Zerlegung eines 2-4-Elements . . . . . . . . . . . . . . . . . . Zerlegung eines 3-4-Elements . . . . . . . . . . . . . . . . . . Zerlegung eines W-Prismas . . . . . . . . . . . . . . . . . . . Zerlegung eines Hexaeders in zwei Prismen . . . . . . . . . . Zerlegung eines Hexaeders in Tetraeder . . . . . . . . . . . . (i) 3-4-Template (ii) PRIS-W-Template (iii) 2-4-Template (iv) 1-4-Template (v) HEX-Template . . . . . . . . . . . . . . . Beispiel für Algorithmus 4.1 . . . . . . . . . . . . . . . . . . Resultierende Zerlegung im 3D-Netz . . . . . . . . . . . . . Skizze zum Beweis . . . . . . . . . . . . . . . . . . . . . . . Aus P-Dreiecken entstandene Elemente im Erstnetz . . . . . Zerlegung eines 2-3-Elements . . . . . . . . . . . . . . . . . . (i) 2-3-Template (ii) 1-3-Template (iii) PRIS-S-Template . . Beispiel für Algorithmus 4.2 . . . . . . . . . . . . . . . . . . Resultierende Zerlegung im 3D-Netz . . . . . . . . . . . . . Konfliktdreiecke in der Übersicht . . . . . . . . . . . . . . . Konfliktdreieck mit zugehörigen Zerlegungspfaden . . . . . . Entstehung von Zerlegungsgraphen . . . . . . . . . . . . . . Seiten-/Anschlußknoten und Spitzenknoten einer Zacke . . . Verschiedenes Auftreten von Zacken . . . . . . . . . . . . . . Schmale Regionen . . . . . . . . . . . . . . . . . . . . . . . . Übergangsbereich bei schmalen Regionen . . . . . . . . . . . a) Nicht-notwendige schmale P-Region b) Lösung ohne die schmale Region . . . . . . . . . . . . . . . . . . . . . . . . . ±90◦ -Kriterium . . . . . . . . . . . . . . . . . . . . . . . . . Viereckreihen . . . . . . . . . . . . . . . . . . . . . . . . . . Detaillierte Auflistung für die P-Vernetzung (vergl. Schema 3.20 III) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 45 46 46 47 47 48 . . . . . . . . . . . . . . . . 49 52 53 54 56 56 57 58 59 60 64 65 67 69 70 71 . 72 . 73 . 74 . 75 Schnitt eines Schnittpolygons mit einem Verfeinerungspolygon Weitere Schnittkombinationen . . . . . . . . . . . . . . . . . . Berührung eines Schnittpolygons mit einem Verfeinerungspolygon . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Weitere Berührungskombinationen . . . . . . . . . . . . . . . Berührungsmöglichkeiten für Abb.5.3 . . . . . . . . . . . . . . Weitere Berührungskombinationen . . . . . . . . . . . . . . . Weitere Berührungskombinationen . . . . . . . . . . . . . . . Topologische Sortierung für Abb. 5.5 (i) b) . . . . . . . . . . . Aus den Schnitten und Berührungen resultierende Fälle für die Ecken . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 79 80 81 82 83 84 84 85 86 ABBILDUNGSVERZEICHNIS 5.10 5.11 5.12 5.13 5.14 5.15 5.16 5.17 5.18 5.19 5.20 5.21 5.22 5.23 5.24 5.25 5.26 5.27 5.28 5.29 5.30 5.31 5.32 5.33 5.34 5.35 5.36 5.37 5.38 5.39 5.40 5.41 5.42 5.43 5.44 5.45 Aus Abb. 5.9 resultierende Tiefenwertkombinationen/Typen Skizze zum Beweis . . . . . . . . . . . . . . . . . . . . . . . Vernetzung von ±20◦ -Ecken . . . . . . . . . . . . . . . . . . Vernetzung an einer Verbindungskante . . . . . . . . . . . . Mögliche weitere Vernetzung von ±20◦ -Ecken bei Typ 5-7 . . Vernetzung von ±90◦ -Ecken . . . . . . . . . . . . . . . . . . Vernetzung von ±180◦ -Ecken . . . . . . . . . . . . . . . . . Vernetzung von ±270◦ -Ecken . . . . . . . . . . . . . . . . . Vernetzung von ±340◦ -Ecken . . . . . . . . . . . . . . . . . Vernetzung der ersten Ausnahme . . . . . . . . . . . . . . . Vernetzung der zweiten Ausnahme bei kleinem Abstand . . . Zwei benachbarte Ecken, die jeweils an genau vier Regionen grenzen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Zwei benachbarte Ecken, die jeweils an genau drei Regionen grenzen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Skizze zum Beweis . . . . . . . . . . . . . . . . . . . . . . . Vernetzung der Ecken für das Wurmbeispiel . . . . . . . . . Vernetzung einer schmalen Region . . . . . . . . . . . . . . . Vernetzung benachbarter schmaler Regionen . . . . . . . . . Vernetzung innerhalb eines Blocks . . . . . . . . . . . . . . . Vernetzung innerhalb eines Blocks, falls der erste Polygonteil auf dem Uferpolygon liegt . . . . . . . . . . . . . . . . . . . Aufteilung von schmalen Regionen durch ein Verfeinerungspolygon . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Tiefenwertzuordnung für diese Regionen . . . . . . . . . . . Kehrtwende mit wenigen Kanten . . . . . . . . . . . . . . . Vernetzung einer Kehrtwende mit wenigen Kanten . . . . . . Schmale Region und breiter Teil der Region . . . . . . . . . Vernetzung am Übergang einer schmalen Region . . . . . . . Vernetzung am Übergang einer schmalen Region . . . . . . . Vernetzung am Übergang einer schmalen Region . . . . . . . Verbesserte Vernetzung am Übergang einer schmalen Region Vernetzung der schmalen Regionen für das Wurmbeispiel . . (Nicht mögliche) Aneinanderreihung von Zacken . . . . . . . Vernetzung nebeneinanderliegender Zacken . . . . . . . . . . Skizze zum Beweis . . . . . . . . . . . . . . . . . . . . . . . Ermittlung eines Knotens zur Erzeugung von EinKantenDreiecken . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Anpassung benachbarter EinKantenDreiecke . . . . . . . . . Generierung gegenüberliegender EinKantenDreiecke . . . . . Generierung eines Vierecks an einer Verbindungskante . . . . xiii . . . . . . . . . . . 87 88 90 91 92 93 94 95 95 97 98 . 98 . . . . . . 99 101 103 106 109 112 . 114 . . . . . . . . . . . . . 116 117 118 119 119 119 120 121 122 123 125 127 130 . . . . 130 131 132 132 xiv ABBILDUNGSVERZEICHNIS 5.46 5.47 5.48 5.49 5.50 5.51 5.52 5.53 5.54 5.55 5.56 5.57 5.58 5.59 5.60 5.61 5.62 5.63 5.64 5.65 5.66 5.67 5.68 5.69 5.70 5.71 5.72 5.73 5.74 5.75 5.76 5.77 5.78 5.79 Begrenzung für die Vernetzung von Kanten . . . . . . . . . . Vernetzung von ±20◦ -Zacken . . . . . . . . . . . . . . . . . . Vernetzung von ±60◦ -Zacken . . . . . . . . . . . . . . . . . . Vernetzung von ±100◦ -Zacken . . . . . . . . . . . . . . . . . Vernetzung nahe beieinander liegender Zacken . . . . . . . . Vernetzung nahe beieinander liegender Zacken (Beispiel) . . Vernetzung nahe beieinander liegender Zacken (Beispiel) . . Vernetzung nahe beieinander liegender Zacken (Beispiel) . . Vernetzung nahe beieinander liegender Zacken (Beispiel) . . Knoten nahe bei nebeneinanderliegenden Zacken . . . . . . . Vernetzung nebeneinanderliegender Zacken mit nahe liegendem Knoten (Beispiel) . . . . . . . . . . . . . . . . . . . . . Zwei Knoten nahe bei nebeneinanderliegenden Zacken . . . . Vernetzung der Zacken für das Wurmbeispiel . . . . . . . . . Korrigierte Vernetzung der Zacken für das Wurmbeispiel . . Fälle für zu vernetzende Anschlußknoten . . . . . . . . . . . Vernetzung an Anschlußknoten . . . . . . . . . . . . . . . . Vernetzung nebeneinanderliegender Anschlußknoten . . . . . Vernetzung zweifacher Anschlußknoten . . . . . . . . . . . . Vernetzung mit Viereckreihen für das Wurmbeispiel . . . . . I-Dreiecke innerhalb einer Region . . . . . . . . . . . . . . . Beispiel für die Zuordnung von Elementen zur Generierung von Zerlegungspfaden . . . . . . . . . . . . . . . . . . . . . . Nicht verbindbare Elemente . . . . . . . . . . . . . . . . . . Schematische Darstellung nicht verbindbarer Paare . . . . . Senkrechtvektoren . . . . . . . . . . . . . . . . . . . . . . . . Verschiedene Kantenpaare zur Bestimmung der Qualität ihrer Lage zueinander . . . . . . . . . . . . . . . . . . . . . . . . . Ideallage zweier Kanten zueinander . . . . . . . . . . . . . . Veranschaulichung von D für verschiedene Kantenlagen . . . Abweichende Winkel α und β . . . . . . . . . . . . . . . . . Unterschiedliche Kantenlagen bei gleichem durchschnittlichen Abweichungswinkel . . . . . . . . . . . . . . . . . . . . . . . Unterschiedliche Kantenlage bei gleichen Abweichungswinkeln zu Abb.5.74 (i) . . . . . . . . . . . . . . . . . . . . . . . . . Unterschiedliche Kantenlagen bei gleich großem V1 und V2 . γ als kleinster Winkel zwischen den Geraden, auf denen V1 und V2 liegen . . . . . . . . . . . . . . . . . . . . . . . . . . α1 , β1 , α2 und β2 . . . . . . . . . . . . . . . . . . . . . . . . Erzeugung einer Zwischenkante kz zwischen den Kanten k1 und k2 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 136 137 138 138 140 141 142 146 147 149 . . . . . . . . . . 150 152 153 154 154 155 157 157 158 159 . . . . 162 162 165 168 . . . . 169 170 171 172 . 173 . 174 . 174 . 175 . 177 . 178 ABBILDUNGSVERZEICHNIS 5.80 5.81 5.82 5.83 5.84 5.85 5.86 5.87 5.88 5.89 5.90 5.91 5.92 Verbindungen zu und zwischen den (Zwischen-)Kanten . . . . Kreisbögen zwischen zwei Kanten . . . . . . . . . . . . . . . . Zwei ineinanderliegende Kreise . . . . . . . . . . . . . . . . . . Ermittlung des Kreismittelpunkts Ma . . . . . . . . . . . . . . Abweichung zwischen Kanten und Kreisbögen . . . . . . . . . Skizze zum Beweis . . . . . . . . . . . . . . . . . . . . . . . . Ermittlung von bi mit |bi | = |ba | . . . . . . . . . . . . . . . . . Ermittlung von bi , das Winkelanforderung erfüllt . . . . . . . Berechnung von |Mi Ma | . . . . . . . . . . . . . . . . . . . . . Verhalten von Kreisen mit gleicher Sehne . . . . . . . . . . . . Konstruktion von bi . . . . . . . . . . . . . . . . . . . . . . . . Konstruktion eines Polygonzugs auf einem Kreisbogen . . . . . Konstruktion eines Zerlegungspfades mit Hilfe der beiden Kreisbögen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5.93 Komplette Vernetzung der Regionen für das Wurmbeispiel . . 6.1 6.2 6.3 6.4 6.5 6.6 6.7 6.8 6.9 6.10 6.11 6.12 6.13 6.14 6.15 6.16 xv 179 182 182 184 185 188 189 190 191 192 193 194 195 197 Detektion Zerlegungsgraph für einen Teil der Vernetzung für das Wurmbeispiel . . . . . . . . . . . . . . . . . . . . . . . . . 202 Zerlegungsgraph für Abb. 6.1 . . . . . . . . . . . . . . . . . . . 203 a) Einhaltung einer Zerlegungsrichtung eines 3D-Zerlegungspfades b) Orientierung der zugeordneten Z-Kante . . . . . . . . . . . 206 Möglichkeiten der Zerlegung von 2-3-Elementen . . . . . . . . 207 Möglichkeiten der Zerlegung von S-Prismen . . . . . . . . . . 208 (i) a) + (ii) a) nicht tetraedisierbare S-Prismen (i) b) nicht tetraedisierbares Schönhardt-Polyeder (ii) b) gegenorientierte Version des Schönhardt-Polyeder . . . . . . . . . . . . . . . . 209 Zuordnungen für die Zerlegungen von S-Prismen im Zerlegungsgraphen . . . . . . . . . . . . . . . . . . . . . . . . . . . 210 Weg . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 213 Zerlegung der Komponente K12 in disjunkte Wege . . . . . . . 214 Schleifen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 217 (i) Zulässige nicht minimale Orientierung für Komponente K12 (ii) Zulässige minimale Orientierung für Komponente K12 . . . 220 (i) Zerlegung in disjunkte Wege für Komponente K12 (vergl. Abb. 6.9) (ii) Umzudrehende Teilwege sind fettmarkiert . . . . 221 Möglichkeiten der Nachbarschaften eines Teilweges . . . . . . . 221 (i) (bewerteter) Zerlegungsgraph (Komponente K12 ) (ii) (bewerteter) Differenzgraph (Komponente K12 ) . . . . . . . . . . 226 Lösung des Minzuproblems für den Differenzgraphen aus Abb. 6.14 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 228 Halbweg, der an A beginnt und an B endet . . . . . . . . . . . 231 xvi ABBILDUNGSVERZEICHNIS 6.17 6.18 6.19 6.20 6.21 6.22 Fall AZi . . . . . . Fall AB . . . . . . Fall Zi Zj . . . . . . Fall Zi B . . . . . . Schleifen . . . . . . Halbweg als T-Weg . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 233 234 235 236 237 240 Kapitel 1 Einleitung Durch die schnelle Entwicklung von Rechnerkapazitäten und die immer preiswerter werdenden Speicherkapazitäten hat die Bedeutung der Simulation von physikalischen Vorgängen in den letzten Jahren kontinuierlich zugenommen. Physikalische Vorgänge können durch partielle Differentialgleichungen, die u.a. numerisch mit der Finite-Elemente-Methode gelöst werden und angepaßte Netze benötigen, simuliert werden. Simulationen dienen der Forschung und Wirtschaft in vielen verschiedenen Bereichen, wie z.B. beim Produktdesign im Maschinen-, Auto- und Flugzeugbau oder im Bereich der Chemie oder des Elektromagnetismus sowie zur Berechnung von Strömungen im Wasser oder in der Luft. Es werden oft sehr verschiedene physikalische Vorgänge simuliert, wie z.B. Formgebungen, thermische Druckentwicklungen, elastische und plastische Verformungen oder Strömungen. Entsprechend müssen für unterschiedliche Bereiche Netze mit unterschiedlichen Nebenbedingungen generiert werden. Teilweise müssen z.B. nur Werkstücke vernetzt werden, teilweise Bereiche samt ihrer nahegelegenen Umgebung. Außerdem ist die benötigte Dimension der Netze unterschiedlich, für einige Anwendungen reicht die Vernetzung der Oberfläche aus, für andere ist ein dreidimensionales Netz nötig. Daraus ergibt sich eine Vielzahl von Netzanforderungen, weswegen eine Vielzahl von Netzgeneratoren entwickelt wurde. Die ersten Netzgeneratoren wurden bereits Anfang der 70er Jahre entwickelt, es folgten weitere Netzgeneratoren in den 80er Jahren. Diese Autoren entwickelten auch einige der bisjetzt benutzten Methoden wie die DelaunayTriangulation, das Advancing-Front-Verfahren und die Generierung von Octrees (vergl. Kapitel 2). In den 90er Jahren und bis jetzt wurde die Netzgenerierung in vielfacher Hinsicht weiter entwickelt. Näher wird darauf in Kapitel 2 eingegangen. Obwohl es sehr viele Anwendungen für Netzgeneratoren gibt, variieren die 1 2 KAPITEL 1. EINLEITUNG Bedingungen an die Netze für die einzelnen Probleme sehr. Dies hat zur Folge, daß oftmals für jedes dieser Probleme ein neuer Netzgenerator entwickelt werden muß, der genau die Nebenbedingungen und Anforderungen der aktuellen Aufgabe erfüllt. Beispiele für letzere sind die Forderung nach einem möglichst schnellen Remeshing oder die Integration von Verfeinerungsanforderungen. Diese werden zwar an viele Generatoren gestellt, müssen aber durch die unterschiedlichen Nebenbedingungen an die Netze meistens jeweils anders realisiert werden. Die vorliegende Arbeit entstand im Rahmen des DFG-Projekts Numeri” sche Simulation von Strömung in natürlichen Fließgewässern“, in dem es in Zusammenarbeit mit dem Institut für Wasserbau und Wasserwirtschaft der RWTH Aachen Aufgabe war, ein mathematisch-numerisches Simulationsmodell zu entwickeln, das die in natürlichen Flüssen wirkenden, hydrodynamischen Prozesse beschreibt und detaillierte Aussagen der Wasserbauforschung zur Verfügung stellt. Unter Fließgewässern werden alle Gewässer, die einen Ein- und Auslauf besitzen, also keine stehenden Gewässer sind, verstanden. Hierzu zählen insbesondere Flüsse. Kleinräumige Bereiche der Fließgewässer mit den dort vorkommenden natürlichen“ Situationen stellen komplexe Geometrien mit komplexen Strö” mungsvorgängen dar. Insbesondere die unregelmäßigen Geometrien natürlicher Gerinne sowie manche künstliche Einbauten führen zu erheblichen Sekundärströmungen. Deswegen verlangen solche Geometrien ein vollständig dreidimensionales numerisches Simulationssystem mit freier Wasseroberfläche um die hydraulische Situation ausreichend beschreiben zu können. Eine freie Wasseroberfläche kann i.a. nicht durch eine Ebene approximiert werden, da dies zu Ungenauigkeiten führen kann, die vermieden werden sollen. In der Vergangenheit wurden numerische Berechnungen im Wasserbau häufig mittels eines zweidimensionalen numerischen Simulationssystems durchgeführt, das aber aus den hier genannten Gründen für diese Situation zu ungenau ist. Es werden deswegen 3D-Netze benötigt, die bestimmte Nebenbedingungen und Anforderungen einhalten. Ein Verfahren hierzu wird in dieser Dissertation dargestellt. Dieses Verfahren stellt einen wichtigen Beitrag für die Praxis und ein Novum dar! Zu den wichtigsten Nebenbedingungen zählen die gewünschte überwiegende Erzeugung von Hexaedern, daneben sind nur Prismen und Tetraeder erlaubt (Elementbedingung), die Vertikalbedingung, die aussagt, daß die Knoten der Elemente, die in vertikaler Richtung verteilt sind, identische horizontale Koordinaten besitzen sollen und die Konformitätsbedingung (vergl. S. 10). Darüber hinaus ist zu beachten, daß ein Gelände, durch das ein Fließgewässer fließt, naturgemäß unterschiedliche Tiefen besitzt. 3 Durch Strömungsvorgänge verändert sich die Geometrie eines Fließgewässers ständig. Eine Simulation erfordert deswegen eine kontinuierliche Anpassung des Netzes an die veränderte Geometrie. Von Zeit zu Zeit ist somit eine Netzneugenerierung (Remeshing) notwendig. Für bestimmte Bereiche eines Fließgewässers, in denen z.B. eine schnellere Fließgeschwindigkeit besteht, soll eine (vertikale) Netzverfeinerung integriert werden. Die Einhaltung dieser Forderungen und Bedingungen erschweren die Netzgenerierung stark: Durch die Einhaltung der Vertikalbedingung und der Verfeinerungsanforderungen ist die Generierung von Elementen, die wegen der Elementbedingung zerlegt werden müssen, i.a. nicht vermeidbar. Die Konformitätbedingung führt dazu, daß in der Regel eine ganze Reihe weiterer Elemente in Tetraeder und Prismen zerlegt werden müssen. Aufgabe ist es, möglichst wenig zu zerlegende Elemente zu generieren, damit möglichst viele Hexaeder entstehen! Kapitel 2 behandelt aus der Literatur bekannte Netzgeneratoren. Im Kapitel 3 werden neben einer detaillierten Beschreibung der Anforderungen und Nebenbedingungen an den Netzgenerator grundlegende Begriffe geklärt und ein Lösungsansatz vorgestellt. Dieser Lösungsansatz sieht vor, zunächst eine Vernetzung auf einer Projektionsebene durchzuführen. Die darauffolgenden Kapitel gehen auf die Einzelprobleme und ihre Lösungen genauer ein. Insbesondere wird in Kapitel 6 ein aus der Generierung resultierendes graphentheoretisches Problem auf effiziente Weise gelöst. 4 KAPITEL 1. EINLEITUNG Kapitel 2 Netzgenerierung in der Literatur Aus der Literatur sind neben den Algorithmen zur Erzeugung strukturierter 1 Netze zahlreiche Methoden zur Generierung unstrukturierter 2 Netze bekannt: Für die 2D-Vernetzung 3 stellt die Delaunay-Triangulation [Geog91] eine bestmögliche Dreieckvernetzung dar, falls eine Punktmenge innerhalb des zu vernetzenden Bereiches gegeben ist. Advancing-Front-Verfahren sind Techniken, die vom Rand des zu vernetzenden Gebietes zur Mitte hin vernetzen. Hierfür sind Methoden für die Dreieckvernetzung [Geog91] [Lee99] sowie für die Viereckvernetzung (z.B. mittels Paving) [Blac91a] [Blac91b] [Lee99] [Zhon00] bekannt. Paving bedeutet Pflastern“: Vom Rand her werden Vier” ecke zur Mitte hin gepflastert“. Vierecknetze können auch mittels Quadtrees ” [Geog91] ermittelt werden. Dabei wird ein strukturiertes Netz auf die zu venetzende Fläche gelegt. Durch bestimmte Dekompositionen der Elemente werden Vierecke erzeugt, die das zu vernetzende Gebiet genauer approximieren. Darüberhinaus gibt es Verfahren zur Erzeugung hybrider 4 2D-Netz [Kucw00]. Neben der 2D-Vernetzung spielt die (unstrukturierte) 3D-Vernetzung 5 eine wesentliche Rolle bei der Netzgenerierung. Z.B. können analog zur Delaunay1 strukturiertes Netz: als Vierecknetz: alle inneren Knoten des Vierecknetzes besitzen den Grad vier als Hexaedernetz: alle inneren Knoten des Hexaedernetzes besitzen den Grad sechs 2 i.a. nicht strukturiert 3 Vernetzung von Flächen oder Oberflächen mit Vierecken und/oder Dreiecken 4 hybrides Netz: Netz mit verschiedenen Elementtypen (bei 2D-Netzen i.a. Drei- und Vierecke) 5 Vernetzung von Körpern 5 6 KAPITEL 2. NETZGENERIERUNG IN DER LITERATUR Triangulierung Tetraedernetze [Geog91] erzeugt werden. Hexaedernetze enthalten aufgrund der geringeren Anzahl von Elementen gegenüber Tetraedernetzen bei gleicher Genauigkeit weniger und bessere Elemente und sind somit für Simulationsberechnungen sehr viel effizienter und besser geeignet. Außerdem besitzen Hexaeder mit ihren Vierecksoberflächen bezüglich dieser Oberflächen einen höheren Freiheitsgrad als z.B. ein Tetraeder mit seinen Dreiecksoberflächen. Diese Gründe haben mit dazu geführt, daß in den letzten Jahren insbesondere Methoden zur Generierung von Netzen mit überwiegend Hexaedern entwickelt wurden. Eine davon stellt das von Blacker entwickelte Sweeping mittels Cooper tool dar [Blac96]. Diese Methode wurde in den letzten Jahren besonders intensiv verfolgt. Dabei wird ein zu vernetzender Körper in (ggfs. gebogene) zylinderförmige Teilstücke zerlegt. Jedes Teilstück besteht aus zwei Oberflächen, die den kreisförmigen Oberflächen eines Zylinders ähneln und einer Manteloberfläche. Für eine der kreisförmigen Oberflächen (Startoberfläche) eines Teilstücks wird ein Vierecknetz generiert. Grenzt eine Oberfläche an eine Oberfläche eines benachbarten Teilstücks, so ist zu beachten, daß die Vernetzung dieser Oberflächen identisch sein muß. Ausgehend von der Startoberfläche wird innerhalb eines Teilstücks durch ein spezielles Projektionsverfahren, das die Geometrie des zu vernetzenden (Teil-)Körpers berücksichtigt, ein Hexaedernetz erzeugt. Das daraus entstandene 2D-Netz auf der Oberfläche (Zieloberfläche), die innerhalb des Teilstücks der anfangs vernetzten Oberfläche gegenüberliegt, besitzt dann die gleiche Topologie wie das 2D-Netz der Startoberfläche. Zu diesem Sweepingalgorithmus gibt es zahlreiche Weiterentwicklungen: Das Verfahren zur Zerlegung eines zu vernetzenden Objektes wurde durch eine rekursive Methode, die konvexe Objektstücke und zylinderartige Teilstücke erzeugt, erweitert [Liu97]. Mit diesem Verfahren können z.B. auch Objekte mit spitz herausragenden oder eingedrückten Teilstücken vernetzt werden. Mit BMSweep [Stat98], einer weiteren Entwicklung der Methode die Knoten für die Erzeugung von Hexaedern zwischen zwei Oberflächen zu ermitteln, ist es möglich, z.B. für gedrehte (und gebogene) Teilstücke Hexaedernetze durch Sweeping zu ermitteln. In [Shef99] wird eine zusätzliche Methode zur Zerlegung eines zu vernetzenden Objektes in Teilstücke vorgestellt. Diese Methode basiert auf VoronoiGraphen. Das Sweeping wird in [Shep00] zum Multisweeping weiterentwickelt. Es ist damit möglich, von mehreren Startoberflächen ein Sweeping zu mehreren Zieloberflächen durchzuführen. Außerdem erlaubt dieses Verfahren die Vernetzung von Volumina, die zwischen den Start- und den Zieloberflächen 7 z.B. einseitig gebogen sind. In [Miyo00] wird noch mal die Anpassung zweier aneinandergrenzender 2Dvernetzter Oberflächen diskutiert, damit Nicht-Konformitäten 6 und Unterbrechungen in Elementen vermieden bzw. behoben werden. In [Bord00] wird schließlich eine Verfeinerung des Netzes bzw. der Teilstücke vorgestellt. Zum einen wird eine Verfeinerung auf der Startoberfläche dargestellt. Diese bewirkt eine Verfeinerung innerhalb des gesamten Teilstücks. Zum anderen wird gezeigt, wie weitere Hexaeder im bereits vernetzten Teilstück eingefügt werden. Die Methoden bewirken unterschiedliche Verfeinerungen. Neben dem Sweeping und den dafür benötigten Dekompositionsmethoden, die auch für andere Methoden angewendet werden können, sind aus der Literatur noch weitere grundlegende Techniken zur Erzeugung von Hexaedernetzen bekannt. Dazu gehören zum einen die Methoden zur Generierung eines Hexaedernetzes aus einem Tetraedernetz z.B.[Dohr99] und zum anderen Overlay-Techniken, die von einem Oberflächennetz zu einem approximierten inneren Netz durch Übergangselemente ein komplettes Volumennetz erzeugen z.B. [Schn95]. Darüberhinaus können mit dem Octree-Verfahren [Yerr84] sowohl Tetraeder- als auch Hexaedernetze generiert werden [Geog91]. Beim Octree-Verfahren (analog zur Quadtree-Technik s.o.) wird zuerst ein grobes strukturiertes Hexaedernetz generiert, das durch Dekomposition der Elemente immer feiner und dem zu vernetzenden Volumen angepaßter wird. Wie für die 2D-Vernetzung gibt es auch für die 3D-Vernetzung AdvancingFront-Techniken wie z.B. das Plastering z.B. [Step92]: Von einem Oberflächennetz ausgehend wird schichtenweise ein Hexaedernetz erzeugt. Durch Überschneidungen müssen dabei fast immer auch andere Elementtypen generiert werden. Da die Technik nicht besonders robust ist, wurde das WhiskerWeaving entwickelt, das ein Netz mittels Konvertieren des Oberflächennetzes in ein dazu duales Netz generiert [Taut96]. Plastering und Whisker-Weaving wurden im Rahmen des CUBIT-Projekts entwickelt. In [Blac00] werden verschiedene Methoden miteinander verglichen. Außer den Methoden zur Generierung eines reinen Hexaedernetzes oder eines reinen Tetraedernetzes sind oftmals auch Netzgeneratoren zur Generierung hybrider 3D-Netze 7 sinnvoll. Denn i.a. sind für die Simulation z.B. mittels FEM (Finite-Element-Methode) mehrere Elementypen erlaubt. Meistens sol6 Konformität s. Def. 1 S. 10 3D-Netz mit verschiedenen Elementtypen: z.B. Hexaeder, Prismen, Pyramiden, Tetraeder 7 8 KAPITEL 2. NETZGENERIERUNG IN DER LITERATUR len - wie oben erwähnt - Hexaeder bevorzugt werden. Aber nicht immer ist die Generierung eines reinen Hexaedernetzes möglich oder sie führt zu schlechten Elementen. In [Mesh00] wird eine Methode zur Generierung von Netzen vorgestellt, bei der ausschließlich Hexaeder, Prismen und Tetraeder erzeugt werden, wobei Hexaeder überwiegen. Die Generierung geschieht ausgehend von einem Tetraedernetz. Alle möglichen Dekompositionen eines Hexaeders in Tetraeder und eines Prismas in Tetraeder werden bezüglich ihrer Topologien als Graphen dargestellt. Das ursprüngliche Tetraedernetz wird ebenfalls bezüglich seiner Topologie als Graph dargestellt. Mittels Heuristiken werden dann in dem Graph für das Tetraedernetz Teilgraphen, die dem Graph für ein Hexaeder entsprechen, und wenn diese nicht mehr zu finden sind Teilgraphen, die dem Graph für ein Prisma entsprechen, ermittelt. Dieses Verfahren führt zu Netzen, die aus vielen Hexaedern und einigen Prismen und Tetraedern bestehen. Leider kann jedoch die Konformität 8 i.a. nicht eingehalten werden. In [Tuch97] wird ein HexTet-Generator vorgestellt, der ein Netz aus ausschließlich Hexaedern und Tetraedern erzeugt. Auch hier ist die Konformität der Elemente nicht gewährleistet. Verfahren, die mehrere Elementtypen zulassen und zu konformen Netzen führen, sind in [Meye98] [Owen00] dargestellt. Sie erlauben Pyramiden als Übergangselemente von Hexaedern zu Tetraedern. Die hier vorgestellten 3D-Netzgeneratoren können aufgrund der in Kapitel 3 dargestellten Nebenbedingungen zur Erzeugung eines 3D-Netzes für Fließgewässer nicht genutzt werden! Deutlicher wird dies in Kapitel 3. Netzgeneratoren zur Erzeugung von Netzen für Gewässer konnten nur für 2D-Netze gefunden werden: Olaf Horstmann vom Lehrstuhl für Bauinformatik an der BTU Cottbus beschäftigt sich mit der Generierung von Dreiecknetzen für Küstengewässer. Ilja Schmelzer vom Weierstrass-Institut in Berlin hat ein Netzgeneratorpaket für Delaunay-Triangulierung und -Tetraedisierung entwickelt, mit dem ein 2D-Netz für die Insel Rügen und das daran angrenzende Gewässer erzeugt wurde. Das Center for Coastal and Land-Margin Research in Oregon erforscht das Wellenverhalten an der Ostküste des Nordpazifiks. In diesem Zusammenhang wird ein auf der Delaunay-Triangulierung basierender Dreiecknetzgenerator vorgestellt. 8 Konformität s. Def. 1 S. 10 Kapitel 3 Aufgabenstellung und Lösungskonzept Die Erzeugung eines Netzes für ein Objekt unterliegt oft vielen Rand- und Nebenbedingungen. Hierdurch und durch die unterschiedlichen Formen verschiedener zu vernetzender Objekte werden entsprechend angepaßte Netzgeneratoren benötigt. In diesem Kapitel werden die Anforderungen, Vorarbeiten und Lösungsansätze für ein Verfahren zur Generierung von Netzen für Fließgewässer bei Vorgabe von Verfeinerungsanforderungen genauer diskutiert. Dabei werden bereits einige grundlegende Begriffe eingeführt. In Unterkapitel 3.6 S. 33 findet sich eine Übersicht (Schema 3.20) zu den Vorarbeiten und Lösungsansätzen, auf die in diesem Kapitel immer wieder verwiesen wird. Die folgenden Kapitel beschreiben die einzelnen Lösungsschritte vertieft. Ziel dieser Arbeit ist weniger die Erstellung eines fertigen Softwareprodukts als vielmehr eine detaillierte und möglichst umfassende Lösung zur Generierung von Netzen für Fließgewässer mit den noch zu nennenden Nebenbedingungen. Die Arbeit wird von einem Beispiel begleitet, daß einen Ablauf der Generierung eines Netzes für einen Abschnitt der Wurm (kleiner Fluß bei Aachen und Herzogenrath) aufzeigt. In den Abbildungen zu diesem Beispiel verbinden sich von Hand gezeichnete Ergebnisse mit von bereits erstellten Modulen erzeugten Resultaten. Ausgehend von einer Darstellung eines Endergebnisses (vergl. Abb. 3.2) wird das Verfahren beschrieben. Es kann davon ausgegangen werden, daß der zu vernetzende Bereich einen relativ hohen Schwierigkeitsgrad darstellt. 9 10 3.1 KAPITEL 3. AUFGABENSTELLUNG UND LÖSUNGSKONZEPT Aufgabenstellung Die mathematisch numerische Simulation von hydrodynamischen Prozessen in Fließgewässern mittels FEM erfordert eine möglichst gute Adaption der entsprechenden Geometrien. Die Simulation erfolgt mit Hilfe von 3D-Netzen, die den Fließgewässerbereich genügend genau approximieren. Für die Generierung der 3D-Netze sind folgende Rand- und Nebenbedingungen zu berücksichtigen: Für diese Simulation mittels FEM dürfen nur Netze aus Hexaedern, Prismen und Tetraedern generiert werden, wobei die Anzahl der Hexaeder aus Effizienz- und Freiheitsgradgründen weit überwiegen soll (Elementbedingung ). Bei gleichem Speicherplatzbedarf wird durch Hexaeder eine höhere Genauigkeit erzielt. Insbesondere dürfen die Netze wegen der Simulation mittels FEM keine Pyramiden enthalten. Definition 1. Ein 3D-Netz heißt konform, wenn der Schnitt je zweier Elemente des 3D-Netzes entweder leer ist, oder aus genau einem Knoten besteht, oder aus genau einer Kante besteht oder aus genau einem Oberflächenelement (der beiden betrachteten Elemente des 3D-Netzes) besteht (vergl. Abb. 3.1 (i)). Abbildung 3.1: (i) konformes Netz (ii) nicht konformes Netz In einem konformen 3D-Netz darf also z.B. keine Kante der Gesamtoberfläche eines Elements auf einem Oberflächenviereck oder -dreieck eines benachbarten Elements liegen, ohne auf dessen Kante zu liegen. Abb. 3.1 (i) zeigt ein konformes Netz. Es besteht aus zwei benachbarten Hexaedern, deren Schnitt ein Oberflächenviereck darstellt. Das Netz in Abb. 3.1 (ii) ist nicht konform. Es besteht aus einem Hexaeder und einem Prisma, deren Schnitt ein Oberflächendreieck des Prismas und somit kein Obeflächenelement des Hexaeders darstellt. 3.1. AUFGABENSTELLUNG 11 Bei der FEM-Simulation werden in Abhängigkeit der Knoten eines Elements für jedes Element Annäherungsfunktionen der gewünschten zu ermittelnden Funktion erzeugt. Diese Annäherungsfunktionen werden letztendlich zu einem zu lösenden Gleichungssystem, der sogenannten Steifigkeitsmatrix, zusammengeführt. Damit dieses Gleichungssystem eindeutig lösbar ist, müssen benachbarte Annäherungsfunktionen wenigstens stetig sein. Das bedeutet, daß das Netz konform sein muß. Die Konformität wird also ebenfalls von den zu generierenden 3D-Netzen gefordert (Konformitätsbedingung ). Wegen der Tiefenintegration zur Ermittlung einer freien Wasseroberfläche entsteht eine weitere entscheidende Bedingung: Die Knoten der Elemente sollen vertikal übereinander angeordnet sein, d.h. daß Knoten, die in vertikaler Richtung verteilt sind, identische horizontale Koordinaten besitzen sollen (Vertikalbedingung) (vergl. Abb. 3.2). Diese Bedingung ist notwendig, weil zur Berechnung der freien Wasseroberfläche eine tiefenintegrierte Kontinuitätsbedingung verwendet wird, in der die Wasseroberfläche eine flächenbezogene Größe darstellt, die mit einem vertikalen Integral verknüpft ist. Abbildung 3.2: Darstellung eines möglichen Gesamtnetzes für das Wurmbeispiel Neben diesen drei wichtigen Bedingungen ist zu berücksichtigen, daß sich die zu vernetzenden Geometrien durch stark unterschiedliche Abmessungen in den Raumrichtungen auszeichnen, so daß die Verhältnisse entsprechend groß sind (z.B. Längen-Höhen-Verhältnis>300, Längen-Breiten-Verhältnis>30). Außerdem sollen aus Effizienz- und Kostengründen während der Netzgenerierung möglichst keine Benutzereingriffe nötig sein. Darüberhinaus soll die Qualität der Elemente möglichst gut“ sein. Auf diesen Begriff wird in Un” terkapitel 3.5 genauer eingegangen. 12 KAPITEL 3. AUFGABENSTELLUNG UND LÖSUNGSKONZEPT Aus der Literatur ist kein Netzgenerator bekannt, der alle Bedingungen erfüllt und Netze für Fließgewässer generiert. Wie in Kapitel 2 deutlich wurde, gibt es verschiedene Netzgeneratoren zur Erzeugung hybrider 3D-Netze, die jedoch entweder Pyramiden benötigen (Verletzung der Elementbedingung) oder nicht konforme Netze erzeugen (Verletzung der Konformitätsbedingung). Das im Rahmen dieser Arbeit entwickelte und hier vorgestellte Verfahren beschreibt somit ein Novum. Wie bereits in der Einleitung erwähnt, ist für bestimmte Bereiche eine Verfeinerung an entsprechender Stelle des Netzes notwendig. Solche Bereiche entstehen dort, wo ein Strömungsgradient wesentlich höher ist als im Mittel, also z.B. eine hohe Wassergeschwindigkeit entstanden ist. Die Gradienten werden durch die drei Strömungsrichtungen und die Wasseroberfläche bestimmt. Deswegen kann eine Verfeinerung in vertikaler und in horizontaler Richtung nötig sein. Eine Biegung des Flußverlaufs durch konkave Uferberandungen verursacht z.B. einen Strömungsabriß in horizontaler Richtung, der eine Erhöhung der Geschwindigkeit und damit der Gradienten in horizontaler Richtung an diesen Stellen verursacht. Eine horizontale Verfeinerung ist nötig. Mit der erhöhten Wassergeschwindigkeit können Schwankungen des Wasserspiegels einhergehen, die eine leichte Erhöhung des vertikalen Gradienten verursachen. In diesem Fall kann eine leichte Verfeinerung in vertikaler Richtung nötig sein. Durch eine starke Vertiefung im Gelände können Rückstromzonen in vertikaler Richtung ausgebildet werden, wodurch eine starke Erhöhung der Strömungsgradienten in vertikaler Richtung verursacht wird. In solchen Bereichen ist eine starke Elementverfeinerung in vertikaler Richtung nötig. Um die Verfeinerungsanforderungen bestimmter Gebiete in vertikaler Richtung zu berücksichtigen, werden abgegrenzte Bereiche vorgegeben, in denen die Elementzahlen der vertikal untereinanderliegenden Elemente um einen vorgegebenen Faktor erhöht sein sollen. Die Realisierung von Verfeinerungsanforderungen soll unter Berücksichtigung der oben genannten Bedingungen stattfinden. Eine Netzneugenerierung (Remeshing) (vergl. Einleitung) sowie die Integration von Einbauten werden in dieser Arbeit nicht gesondert berücksichtigt. Ein Remeshing kann durch eine komplette Neugenerierung oder evtl. durch Neugenerierung von bestimmten Teilen stattfinden. 3.2. BESCHREIBUNG DER ZU VERNETZENDEN GEOMETRIE 3.2 13 Beschreibung der zu vernetzenden Geometrie Zur Generierung von Volumennetzen muß die Beschreibung der Oberfläche des zu vernetzenden Volumens vollständig gegeben sein. Oberflächen von Körpern, wie z.B. Kugeln oder Zylinder, sind eindeutig durch ihre entsprechenden mathematischen Maße beschrieben. Fließgewässer lassen sich nicht durch solche mathematischen Parameter beschreiben. Ihre Oberfläche ist zum einen durch das Gelände, durch das das Gewässer fließt begrenzt. Dieses bildet bezüglich der vertikalen Ausrichtung des Fließgewässers die Begrenzung nach unten. Ein Gelände bildet eine 2D-Mannigfaltigkeit, also eine Fläche in einem 3D-Raum. Nach oben hin ist die natürliche Begrenzung eines Fließgewässers durch seine Wasseroberfläche (ebenfalls eine 2DMannigfaltigkeit in einem 3D-Raum) gegeben. Diese beiden Oberflächen beschreiben fast die gesamte Oberfläche eines Fließgewässers. Da sowohl das Gelände als auch die Wasseroberfläche 2D-Mannigfaltigkeiten bilden und nicht durch einfache mathematische Körper beschreibbar sind, werden hierfür Approximationen gewählt. Dazu eignen sich besonders ähnlich wie z.B. für die Visualisierung von Objekten - Dreieckmodelle. Diese werden u.a. wegen der Planareigenschaft eines Dreiecks gewählt. Definition 2. Ein Dreieckmodell, das zur Approximation eines Geländes dient, heißt diskretes oder digitales Geländemodell. Es soll im folgenden die Bezeichnung digitales Geländemodell“ verwen” det werden, da diese im Wasserbau üblich ist. Digitale Geländemodelle werden häufig für numerische Berechnungen im Wasserbau benötigt. Die Dreiecke eines digitalen Geländemodells sind in ihrer Größe und Form idealerweise so an das Gelände angepaßt, daß sie die Höhen und Tiefen dieses genügend genau widerspiegeln. Die Genauigkeit hängt dabei von der gewünschten Genauigkeit der Approximation der zu vernetzenden Geometrie ab. Als Datenvorgabe zur Generierung von 3D-Netzen für Fließgewässer stehen Meßdaten auf überschneidungsfreien Querprofilen und/oder ein digitales Geländemodell und/oder ein Dreieckmodell für die Wasseroberfläche zur Verfügung. Unter Querprofilen werden senkrecht zur Horizontalebene stehende Ebenen verstanden, die durch beide Uferseiten begrenzt sind (vergl. Abb. 3.3). Als Meßdaten sind Knoten auf den Querprofilen gegeben, von denen jeweils die x- und y-Koordinaten bezüglich der horizontalen Lage und die 14 KAPITEL 3. AUFGABENSTELLUNG UND LÖSUNGSKONZEPT Abbildung 3.3: Querprofil z-Koordinaten bezüglich der Tiefe des Geländes und der Wasseroberfläche gegeben sind (s. Abb. 3.5). Steht ein digitales Geländemodell nicht zur Verfügung, so wird es mit Hilfe der Querprofilsdaten für das Gelände generiert. Dazu wurden Verfahren im Rahmen einer Diplomarbeit [Koen97] entwickelt, die auf dem Delaunay-Verfahren basieren. Die einzelnen Schritte sind in Schema 3.20 (Seite 36) im Kasten I(i) kurz dargstellt. Die Wasseroberfläche darf nicht als Ebene angenommen werden, da z.B. durch unterschiedliche Strömungsstärken neben dem allgemeinen Gefälle entlang des Fließgewässerverlaufs lokal unterschiedliche Höhen der Wasseroberfläche auftreten können. Insbesondere soll ja die freie Wasseroberfläche durch die FEM simuliert werden. Im Gegensatz zum Gelände differieren die Höhen der Wasseroberfläche jedoch relativ gering. Deswegen ist hierfür eine genaue Anpassung der Größe und Form der Dreiecke an die unterschiedlichen Höhen der Wasseroberfläche nicht nötig. Vereinfachend werden als Grundlage zur Berechnung eines Dreieckmodells für die Wasseroberfläche die Knoten und Dreiecke des digitalen Geländemodells gewählt. Lediglich die Tiefenkoordinaten der Knoten werden für die Approximation der Wasseroberfläche neu berechnet. Dies kann z.B. durch Interpolation der vorhandenen Punktdaten der Wasseroberfläche durch ähnliche Verfahren wie in [Koen97] geschehen. In Schema 3.20 wird dies im Kasten I(ii) a) berücksichtigt. Die Projektionen beider Dreieckmodelle auf eine Horizontalebene sind identisch. Die beiden Dreieckmodelle werden in der Regel über den überfluteten Bereich hinaus modelliert. Auf diese Weise entstehen Knoten auf den Dreieckmodellen, die nicht zum zu generierenden Volumennetz gehören, die trocken ” 3.2. BESCHREIBUNG DER ZU VERNETZENDEN GEOMETRIE 15 liegen“. Trocken liegende Knoten auf den Dreieckmodellen mit identischen Horizontalkoordinaten (x-, y-Koordinaten) besitzen auch identische Vertikalkoordinaten (z-Koordinaten). Der Übergang vom trockenen zum überfluteten Teil eines Geländes wird als Ufer bezeichnet. Analog kann für die Approximation definiert werden: Definition 3. Die Schnittpolygone eines digitalen Geländemodells mit einem zugehörigen Dreieckmodell für die Wasseroberfläche werden als Uferpolygone bezeichnet. Abbildung 3.4: Uferpolygone Damit Fließgewässer Wasser von einem Ort zum anderen transportieren können, muß das Gelände ein Gefälle besitzen. Deswegen muß an einer Stelle des zu vernetzenden Gebietes Wasser einlaufen, an der anderen Stelle Wasser auslaufen. Beide Stellen sind als Querprofile mit den als Datenvorgabe dazu gehörenden Knoten gegeben. Definition 4. Das Querprofil, an dem Wasser einläuft und das zu vernetzende Gebiet beginnt, heißt Einlaufebene. Das Querprofil, an dem Wasser ausläuft und das zu vernetzende Gebiet endet, heißt Auslaufebene. (vergl. Abb. 3.5) Ein- und Auslaufebene mit den darauf gelegenen Knoten gehören ebenfalls zur Datenvorgabe. Projiziert man die Ein- und Auslaufebenen auf die horizontale (z=0)Ebene, so entstehen zwei Strecken, die im folgenden als Ein- bzw. Auslaufstrecken bezeichnet werden. 16 KAPITEL 3. AUFGABENSTELLUNG UND LÖSUNGSKONZEPT Abbildung 3.5: Ein- und Auslaufebene Zusammen mit den Ein- und Auslaufebenen beschreiben das digitale Geländemodell und das Dreieckmodell für die Wasseroberfläche die gesamte Oberfläche des zu vernetzenden Gebietes. 3.3 Netzgenerierung durch Projektion Die wichtigsten einzuhaltenden Bedingungen für das zu generierende Netz bestehen - wie bereits erwähnt - in der Anordnung von in vertikaler Richtung verteilten Knoten in der Weise, daß diese identische horizontale Koordinaten besitzen (s. Vertikalbedingung, Seite 11), und in der ausschließlichen Erzeugung von Hexaedern, Tetraedern und Prismen, wobei möglichst viele Hexaeder erzeugt werden sollen (s. Elementbedingung, Seite 10). Werden alle Knoten und Elemente eines solchen 3D-Netzes auf eine Horizontalebene projiziert, so entsteht ein Netz aus Vierecken und ggfs. Dreiecken. In Abb. 3.6 ist eine Projektion auf eine Horizontalebene für das Wurmbeispiel (s. Abb. 3.2) dargestellt. Daraus wurde folgende Vorgehensweise entwickelt: Es wird zunächst ein Netz aus Vierecken und Dreiecken auf einer Horizontalebene generiert, das der Projektion des gewünschten 3D-Netzes auf die Horizontalebene entsprechen soll. Anschließend wird hieraus ein 3D-Netz erzeugt. Als Horizontalebene wird die (z=0)-Ebene gewählt, die im folgenden als Projektionsebene (kurz: P-Ebene) bezeichnet wird. Das Netz auf der P-Ebene wird als P-Netz bezeichnet, die Vier- und Dreiecke als P- 3.3. NETZGENERIERUNG DURCH PROJEKTION 17 Abbildung 3.6: Projektion auf eine Horizontalebene für das Wurmbeispiel (vergl. Abb. 3.2) Vier- und P-Dreiecke bzw. als P-Elemente und die Knoten als P-Knoten und die Kanten als P-Kanten. Die Vernetzung auf der P-Ebene heißt PVernetzung , der zu vernetzende Bereich P-Gebiet . Für die Vernetzung auf der P-Ebene müssen die Berandungen des P-Gebiets festliegen. Zum einen sind dies die Ein- und Auslaufstrecken. Aus diesen Ein- und Auslaufstrecken werden durch den Einsatz von Knoten in Abständen, die möglichst nahe einer Durchschnittskantenlänge 1 liegen, Ein- und Auslaufpolygone erzeugt. Zum anderen wird das zu vernetzende Gebiet durch die Projektion der Uferpolygone (P-Uferpolygone) auf der P-Ebene eingegrenzt. Definition 5. Der geschlossene Polygonzug, der durch die P-Uferpolygone und durch die Ein- und Auslaufpolygone bestimmt wird, heißt Berandungspolygon. (vergl. Abb. 3.7) Im folgenden wird unter dem Begriff 3D-Vernetzung die Erzeugung eines 3D-Netzes aus einem P-Netz verstanden. Um aus einem P-Netz ein gewünschtes 3D-Netz zu erzeugen, muß jedem P-Knoten eine gewisse Anzahl von Knoten in vertikaler Richtung zugeordnet werden. Diese Anzahl soll sich nach der Differenz zwischen den Knoten mit gleichen Horizontalkoordinaten auf den Dreieckmodellen für Wasseroberfläche und Gelände und in Abhängigkeit der Verfeinerungsanforderungen richten. Definition 6. Die Anzahl der Knoten, die einem P-Knoten K bei der 3DVernetzung zugeordnet werden, wird als sein Knotentiefenwert Kt(K) bezeichnet. 1 vergl. Unterkapitel 3.4, S. 27 18 KAPITEL 3. AUFGABENSTELLUNG UND LÖSUNGSKONZEPT Abbildung 3.7: Berandungspolygon für das Wurmbeispiel Für jeden P-Knoten K werden bei der 3D-Vernetzung (Schema 3.20 Kasten IV) Kt(K) Knoten mit gleichen Horizontalkoordinaten in äquidistanten Abständen zwischen digitalem Geländemodell und Dreieckmodell für die Wasseroberfläche generiert. Die Knoten auf den Dreieckmodellen gehören zu den Kt(K) Knoten. Die zugeordneten Knoten müssen bei der 3D-Vernetzung sinnvoll zu Elementen verbunden werden. Dazu werden zuerst zwischen den Knoten, die bei der 3D-Vernetzung einem P-Knoten zugeordnet werden, senkrechte Kanten generiert: Definition 7. Der (Kanten-)Tiefenwert T(K) eines P-Knotens K ist die Anzahl der senkrechten Kanten, die dem Knoten bei der 3D-Vernetzung zugeordnet wird. Bemerkung 3.1. Sei K ein P-Knoten. Dann gilt: T(K)=Kt(K)-1. Bei der 3D-Vernetzung können Elemente entstehen, die weder Hexaeder noch Prismen oder Tetraeder darstellen. Solche Elemente entstehen aus PElementen mit unterschiedlichen Tiefenwerten der P-Knoten. Die Elemente müssen zerlegt werden und zur Einhaltung der Konformität des Netzes müssen i.a. weitere Elemente zerlegt werden. Deswegen ist es sinnvoll, das zu vernetzende P-Gebiet so in Regionen einzuteilen, daß solche Elemente möglichst selten entstehen bzw. die dadurch entstehenden Zerlegungen kontrolliert werden können: Definition 8. Eine (P-)Region auf der P-Ebene besteht aus einem überschneidungsfreien, geschlossenen Polygonzug mit seinem Inneren, bei dem alle P-Knoten, die echt innerhalb des Polygonzugs eingesetzt werden, den gleichen Knotentiefenwert erhalten. 3.3. NETZGENERIERUNG DURCH PROJEKTION 19 Definition 9. Es sei K die Menge der P-Knoten eines P-Elements E. Dann ist der (Kanten-)Tiefenwert des P-Elements E definiert durch: T (E) = maxK∈K (T (K)). Definition 10. Es sei E die Menge der P-Elemente einer P-Region R. Dann ist der (Kanten-)Tiefenwert der P-Region R definiert durch: T (R) = maxE∈E (T (E)). Definition 11. Die Kontur K(R) einer P-Region R ist der sie beschreibende Polygonzug. Definition 12. Ein (P-)Randelement einer P-Region R ist ein P-Element des generierten P-Netzes, von dem mindestens ein P-Knoten auf K(R) liegt. Eine P-Region kann im Prinzip ähnlich einem Projektionsverfahren, auf das das in Kapitel 2 beschriebene Sweepingverfahren basiert, vernetzt werden. Das Projektionsverfahren vernetzt zunächst eine Oberfläche des zu vernetzenden Objekts (z.B. eine Kreisoberfläche eines Zylinders) und erzeugt daraus ein Volumennetz, wobei jedem Element der Oberfläche gleich viele und gleichartige Volumen-Elemente zugeordnet werden. Diese Art der Vernetzung wird in die 2 1/2-D Vernetzung eingeordnet, worunter die in dieser Arbeit dargestellte Vernetzung ebenfalls eingeordnet werden könnte. Da die Problematik hier jedoch wesentlich größer ist, wird dieser Begriff hier nicht verwendet. Entscheidener Unterschied zum Projektionsverfahren bildet hier die 3DVernetzung der Randelemente, da die P-Knoten der Kontur i.a. nicht den gleichen Tiefenwert wie die P-Knoten innerhalb der P-Region besitzen. Auf die Zuordnung der Tiefenwerte für die P-Knoten, die auf einer Kontur liegen, wird im ersten Abschnitt von Unterkapitel 4.1 genauer eingegangen. Aus Randelementen können bei der 3D-Vernetzung zunächst die oben erwähnten Elemente entstehen, die weder Hexaeder, Tetraeder noch Prismen darstellen. Diese Elemente sind nicht gänzlich zu vermeiden, werden aber durch die Methode der Einteilung in P-Regionen relativ gering gehalten. Die geringen Höhen-Breiten- und Höhen-Längen-Verhältnisse der zu vernetzenden Geometrie kommen dem Verfahren der P-Vernetzung entgegen, da dadurch die Tiefenwerte relativ wenig schwanken. Insbesondere wird auch die Vertikalbedingung durch das Verfahren eingehalten. Nach der Zuordnung der Knoten und Kanten für jeden P-Knoten bei der 3D-Vernetzung der P-Region, können jedem P-Element 3D-Elemente zugeordnet werden. 20 KAPITEL 3. AUFGABENSTELLUNG UND LÖSUNGSKONZEPT Definition 13. Die 3D-Elemente, die einem P-Element bei der 3D-Vernetzung zugeordnet werden, bilden einen Elementstapel (vergl. Abb. 3.8 a)). 5 5 4 4 Abbildung 3.8: Generierung eines Elementstapels Ein Verfahren zur Generierung eines Elementstapels findet sich in Unterkapitel 4.1. Zur Ermittlung von P-Regionen in einem P-Gebiet wurde das Verfahren für die P-Generierung wie folgt erweitert: Auf dem digitalen Geländemodell werden zunächst Höhenlinien“ als Polygonzüge erzeugt (vergl. Abb. 3.9). ” Abbildung 3.9: Schnittpolygone (und Berandungspolygon) für das Wurmbeispiel Höhenlinien sind bekannt als Schnitt eines Geländes mit Horizontalebenen, die auf bestimmten Höhen liegen. Die Höhenlinien teilen ein Gelände in 3.3. NETZGENERIERUNG DURCH PROJEKTION 21 disjunkte Regionen ein. Zwei Punkte, die in einer solchen Region liegen, weichen in ihrer Höhe somit nicht stark voneinander ab. Diese Eigenschaft soll für die Erzeugung von P-Regionen übertragen werden: In einer P-Region (ohne Berücksichtigung von Verfeinerungsanforderungen) sollen die Differenzen zwischen den höchsten und tiefsten Knoten, die den P-Knoten zugeordnet werden, möglichst wenig differieren, weil den P-Knoten innerhalb einer PRegion der gleiche Tiefenwert zugeordnet werden soll. Außerdem sollen die P-Regionen möglichst groß sein. Der Schnitt mit Horizontalebenen ist deswegen zur Berechnung der Höhen” linien“, die eine P-Region beschreiben, i.a. nicht sinnvoll, da das Gelände meistens abfallend ist. Sie werden deswegen durch den Schnitt von Dreieckmodellen, die an geeigneten Stellen zwischen dem Geländemodell und dem Dreieckmodell der Wasseroberfläche liegen, berechnet. Diese Höhendreieckmodelle werden wie folgt erzeugt: Die gewünschte maximale Ebenenanzahl für das Netz wird von außen vorgegeben bzw. mit Hilfe der gewünschten Gesamtanzahl der Elemente berechnet. Sie entspricht der Anzahl der Höhendreieckmodelle zuzüglich dem Dreieckmodell der Wasseroberfläche. Wie bereits erwähnt, sind die Projektionen auf die P-Ebene des Dreieckmodells für die Wasseroberfläche und des digitalen Geländemodells identisch. Das bedeutet, daß jedem Knoten des Dreieckmodells der Wasseroberfläche eindeutig ein Knoten des digitalen Geländemodells mit gleichen Horizontalkoordinaten zugeordnet werden kann. Direkt proportional zum Abstand zwischen einem Knoten des Dreieckmodells für die Wasseroberfläche und dem zugehörigen Knoten des digitalen Geländemodells werden zur Konstruktion der Höhendreieckmodelle Knoten zwischen diese beiden Knoten in äquidistanten Abständen mit gleichen Horizontalkoordinaten erzeugt (vergl. Abb.3.10). Knoten der Wasseroberfläche eingesetzte Knoten Knoten des digital. Geländemodels Abbildung 3.10: Erzeugung der Knoten für die Dreieckmodelle Die direkt unterhalb der Knoten des Dreieckmodells für die Wasseroberfläche liegenden Knoten werden einem ersten Höhendreieckmodell zugeordnet, die darunterliegenden Knoten einem zweiten, usw. bis alle Knoten wenigstens einem Höhendreieckmodell zugeordnet sind. Existiert kein 22 KAPITEL 3. AUFGABENSTELLUNG UND LÖSUNGSKONZEPT i-ter Knoten unterhalb eines Knotens des Dreieckmodells der Wasseroberfläche, so wird dem i-ten Höhendreieckmodell an dieser Stelle der zugehörige Knoten des digitalen Geländemodells zugeordnet. Zwischen den Knoten eines Höhendreieckmodells werden entsprechend dem digitalen Geländemodell Kanten eingesetzt, so daß die Projektionen auf die P-Ebene aller Dreieckmodelle identisch sind. Die Erzeugung der Höhendreieckmodelle ist in Schema 3.20 im Kasten I(ii) b) berücksichtigt. Definition 14. Der Schnitt eines Höhendreieckmodells oder des Dreieckmodells für die Wasseroberfläche mit dem digitalen Geländemodell heißt Höhenschnittpolygon. Definition 15. Die Projektion eines Höhenschnittpolygons auf die P-Ebene heißt Schnittpolygon. Die Schnittpolygone sind aufgrund ihrer Konstruktion überschneidungsfrei und grenzen Gebiete ein, in denen die Differenzen zwischen den höchsten und tiefsten Knoten, die den darin erzeugten P-Knoten zugeordnet würden, möglichst wenig differieren. Die Erzeugung der Schnittpolygone ist in Schema 3.20 in Kasten II (i) festgehalten. Vertikale Verfeinerungsanforderungen können nun ebenfalls in das Verfahren der P-Vernetzung integriert werden. Diese Bereiche können durch Polygonzüge auf der P-Ebene beschrieben werden, da sie unabhängig von der Vertikalrichtung sind. Definition 16. Ein Verfeinerungspolygon ist ein Polygonzug, auf der PEbene, das einen Bereich auf der P-Ebene beschreibt, für dessen Knoten, die nicht auf dem Verfeinerungspolygon liegen, eine Erhöhung des Tiefenwertes stattfindet. Eine Erhöhung des Tiefenwertes bewirkt bei der 3D-Vernetzung eine Verfeinerung in vertikaler Richtung. Detaillierter wird darauf im folgenden Unterkapitel 3.4 eingegangen. Die Verfeinerungspolygone werden mit den Schnittpolygonen so aneinander angepaßt und zusammengefügt, daß P-Regionen entstehen (vergl. Unterkapitel 3.4). Es sei hier schon auf die Abbildungen 3.13) und 3.14) verwiesen. Die Knoten, die einem P-Knoten zugeordnet werden, werden von oben (Dreieckmodell für die Wasseroberfläche) nach unten (digitales Geländemodell) beginnend mit 0 durchnummeriert. 3.4. VERFEINERUNGSANFORDERUNGEN UND REGIONEN-ERZEUGUNG23 Definition 17. (vergl. Abb. 3.11) Die i-te Knotenschicht (i ∈ IN0 ) eines 3D-Netzes für Fließgewässer besteht aus allen Knoten mit Nummer i. Sei K ein Knoten eines 3D-Netzes, dann ist S(K) die Knotenschicht, auf der K liegt. Zur i-ten (Element-)Schicht (i ∈ IN ) eines 3D-Netzes für Fließgewässer gehören alle Elemente, die mindestens einen Knoten auf der i-ten Knotenschicht und keinen Knoten auf einer höheren Knotenschicht besitzen. Sei E ein Element eines 3D-Netzes, dann ist S(E) die Elementschicht, auf der E liegt. 0te Knotenschicht 1. Schicht 1te Knotenschicht 2. Schicht 2te Knotenschicht Abbildung 3.11: Knoten- und Elementschichten Lemma 3.1. Gegeben sei eine vernetzte P-Region R. Es gelte: (*) ∀ P-Elemente E ∈ R gilt: ∃Ki mit Ki ist P-Knoten von E und Ki ∈ R\K(R) oder T(Ki )=T(R). (**) ∀ P-Knoten Kj ∈ K(R) gilt T (Kj ) ≤ T (R). Dann gilt: ∀ P-Elemente E ∈ R gilt: T(E)=T(R). Beweis. ∀ Knoten K ∈ R\K(R) gilt nach Definition 8: T(K)=T(R). ∀ PElemente E, die nicht Randelemente sind, gilt deswegen: T(E)=T(R). Wegen (*) gilt: Jedes Randelement E besitzt wenigstens einen Knoten Ki , für den gilt: T(Ki )=T(R). Wegen (**) gilt: Jedes Randelement E besitzt keinen Knoten Kl , für den gilt: T (Kl ) ≥T(R). Daraus folgt: ∀ Randelemente E gilt: T(E)=T(R). 3.4 Verfeinerungsanforderungen und RegionenErzeugung Verfeinerungspolygone umgrenzen Bereiche auf der P-Ebene, in denen der Tiefenwert erhöht werden soll. Dies führt bei der 3D-Vernetzung zu einer 24 KAPITEL 3. AUFGABENSTELLUNG UND LÖSUNGSKONZEPT (gewünschten) höheren Anzahl von Elementschichten in diesem Bereich. Verfeinerungspolygone sind entweder geschlossen oder sie beginnen und enden auf dem Berandungspolygon (vergl. Abb. 3.12). +1 *2 Verfeinerungsbereiche mit Verfeinerungsgraden 1 und Verdoppelung Verfeinerungspolygon Schnittpolygon Abbildung 3.12: Verfeinerungspolygone und -bereiche Definition 18. Der Verfeinerungsbereich Vb(P) zu einem Verfeinerungspolygon P, ist der (auf der P-Ebene liegende) Bereich, der von dem Verfeinerungspolygon oder von dem Verfeinerungspolygon und einem Teil des Berandungspolygons eingeschlossen wird (vergl. Abb. 3.12). Definition 19. Ein Verfeinerungsgrad S(Vb(P)) eines Verfeinerungsbereichs Vb(P) ist eine Zahl z ∈ IN , die zum Tiefenwert jeden P-Knotens K∈ V b(P )\P addiert wird (vergl. Abb. 3.12). Ein Verfeinerungsfaktor F(Vb(P)) eines Verfeinerungsbereichs Vb(P) ist eine Zahl z ∈ IN , die mit dem Tiefenwert jeden P-Knotens K ∈ V b(P )\P multipliziert wird. Bemerkung 3.2. Ein Verfeinerungsfaktor kann immer auch als Verfeinerungsgrad ausgedrückt werden, was im folgenden geschieht. Von den Verfeinerungspolygonen wird vorausgesetzt, daß sie sich nicht untereinander schneiden. Schnittpolygone und Verfeinerungspolygone sind nicht notwendigerweise überschneidungsfrei (vergl. Abb. 3.13). Durch die Schnitt- und Verfeinerungspolygone und das Berandungspolygon wird das zu vernetzende P-Gebiet bereits in bereichsdisjunkte zu vernetzende Bereiche mit folgenden Eigenschaften eingeteilt (vergl. Abb. 3.13): Ein Bereich wird durch i.a. mehrere Teile verschiedener Polygonzüge beschrieben. Jeder solche Teil eines Polygonzuges besteht aus einer Folge von P-Kanten und am Anfang und Ende evtl. aus einem Teil einer P-Kante. 3.4. VERFEINERUNGSANFORDERUNGEN UND REGIONEN-ERZEUGUNG25 1 2 1 3 2 1 3 2 2 0 0 2 3 4 2 1 4 3 6 8 1 4 2 2 2 6 2 1 Abbildung 3.13: Schnitt- und Verfeinerungspolygone (und Berandungspolygon) für das Wurmbeispiel Die Teile der Polygonzüge werden nicht geschnitten. Innerhalb eines Bereichs können ein oder mehrere Löcher liegen. In einem Bereich erhalten die P-Knoten im Inneren alle den gleichen Tiefenwert. Aus diesen Bereichen sollen durch Anpassung der Teile der Polygonzüge P-Regionen entstehen, die sich im Hinblick auf die spätere 3D-Vernetzung sinnvoll P-vernetzen lassen (vergl. auch Schema 3.20 Kasten II (ii)). Dazu müssen zunächst P-Knoten an den Schnitt- und Berührungspunkten zweier Polygonzüge erzeugt werden. Definition 20. Ein (induzierter) Schnittknoten entsteht auf einem Schnittoder Berührungspunkt zwischen einem Schnittpolygon und einem Verfeinerungspolygon oder zwischen dem Berandungspolygon und einem Verfeinerungspolygon oder zwischen einem Ein- oder Auslaufpolygon und einem Schnittpolygon oder einem Uferpolygon (vergl. Abb. 3.13 + 3.14)). Liegen zwei Polygonteile aufeinander, so entsteht ein induzierter Schnittknoten bei der ersten und bei der letzten Berührung der beiden Polygonteile. Definition 21. Ein (induzierter) Polygonabschnitt ist ein Abschnitt eines Schnittpolygons, eines Verfeinerungspolygons oder des Berandungspolygons, der von einem Schnittknoten bis zu einem nächsten Schnittknoten verläuft, und die Schnittknoten und die dazu inszidenten P-Kanten nicht enthält (vergl. Abb. 3.14). 26 KAPITEL 3. AUFGABENSTELLUNG UND LÖSUNGSKONZEPT Definition 22. Drei aufeinanderfolgende P-Knoten eines Bereichs, deren mittelster ein Schnittknoten ist, werden mit ihren beiden P-Kanten als Ecke bezeichnet. Die anderen beiden P-Knoten heißen Seitenknoten/Anschlußknoten (der Ecke). 1 2 1 3 2 1 3 2 0 2 0 3 2 4 1 4 3 6 8 1 4 2 2 2 6 2 1 Abbildung 3.14: Anpassung der Polygone und Erzeugung von P-Regionen für das Wurmbeispiel Aus einem Bereich ist nach Erzeugung der Schnittknoten (Schema 3.20 Kasten II (ii) a)) eine P-Region entstanden: Eine Anpassung für die später stattfindende P-Vernetzung erfolgt entlang aller Polygonabschnitte und an den Schnittknoten (Dies wird in den Diplomarbeiten [Schu97] [Koen97] ausführlich beschrieben). Dabei werden vor allen Dingen die Länge der P-Kanten und die Winkel zwischen ihnen im Hinblick auf eine spätere 3D-Vernetzung angepaßt (Schema 3.20 Kasten II (ii) b) + c)). Die Detektion der P-Regionen erfolgt anschließend (Schema 3.20 Kasten II (ii) d)) (s. wiederum [Schu97] [Koen97]). In Abb. 3.14 ist die Anpassung und Regionbildung für das Beispiel der Wurm dargestellt. Es sind gleichzeitig die Tiefenwerte der P-Regionen dargestellt. Es werden jetzt die wichtigsten Überlegungen und Schritte der Anpassung kurz dargestellt (vergl. auch Abb. 3.13 und 3.14): Bei der P-Vernetzung sollen möglichst viele P-Vierecke erzeugt werden um daraus bei der 3D-Vernetzung Hexaeder erzeugen zu können. Die Korrektur 3.4. VERFEINERUNGSANFORDERUNGEN UND REGIONEN-ERZEUGUNG27 der Polygonabschnitte ist deswegen besonders für die Randelemente wichtig. Die Lage und Größe der Konturkanten bestimmen die Größe und die Winkel innerhalb der P-Elemente. Eine Längenanpassung der P-Kanten an eine (Durchschnittskantenlänge, (DKL)) ist notwendig, weil die Elemente i.a. etwa gleich groß sein sollen. Die DKL hängt von der gewünschten Gesamtanzahl der Elemente ab und wird im voraus berechnet. In Bereichen, in denen eine Verfeinerung in horizontaler Richtung stattfinden soll, kann die DKL entsprechend kleiner gewählt werden. Da die Größe der Konturkanten die Größe der Elemente bestimmt, wird eine horizontale Verfeinerung hierdurch impliziert. Dies wird z.B. in Abb. 3.14 für den Bereich an der konkaven Biegung durchgeführt. Weitere Verfeinerungsanforderungen in horizontaler Richtung können ggfs. mittels Verfahren zur Verfeinerung von 2D-Netzen [Geog91] durchgeführt werden. Allerdings müßten diese an das in dieser Arbeit beschriebene Verfahren angepaßt werden! Die Anpassung der Polygone kann durch einige - in der Praxis relativ häufig auftretenden - Konstellationen der Polygone erschwert werden. Dazu gehören z.B. schmale Regionen (vergl. [Schu97]) (s. Abb. 3.15 (i)). Sie werden aus zwei (nicht auf dem Ein- oder Auslaufpolygon liegenden) Polygonteilen gebildet und sind dadurch gekennzeichnet, daß jeder P-Knoten des einen Teils nahe bei (Abstand ungefähr DKL) wenigstens einem P-Knoten des anderen Teils liegt. D.h. daß Teile der zugehörigen Polygone, die diese Eigenschaft nicht erfüllen, nicht mehr zur schmalen Region gehören. Eine schmale Region kann auch durch den Schnitt seiner beiden Polygonteile beendet werden: Die schmale Region endet dann vor dem Schnittknoten und enthält keine P-Kante der zugehörigen Ecke. Besteht im Bereich des Schnittknotens wenig Platz, so endet die schmale Region spätestens an einem P-Knoten, der zwei P-Kanten vom Schnittknoten entfernt ist. Eine schmale Region ist meistens Teil einer oder mehrere P-Regionen. Außerdem können Ausreißerregionen (vergl. [Schu97]) auftreten (s. Abb. 3.15 (ii)). Hier liegen zwei nichtbenachbarte P-Knoten eines Polygonabschnitts nahe beieinander, ohne daß die dazwischenliegenden nichtbenachbarten P-Knoten nahe beieinander liegen. Ausreißerregionen werden nach Möglichkeit entfernt bzw., wenn dies nicht zulässig ist, werden sie angepaßt. Detailliert wird dies in [Schu97] beschrieben. Die Anpassung der schmalen Regionen ist bereits Teil der P-Vernetzung, da sie die Vernetzung impliziert. Trotz Integration von Verfeinerungsanforderungen kann sie vom Prinzip von [Schu97] übernommen werden. Eine Anpassung von P-Kanten und P-Knoten der Polygonabschnitte erfordert eine Verschiebung von P-Knoten. Es sei daran erinnert, daß die PSchnittpolygone Projektionen der Schnittpolygone sind, die aus dem Schnitt 28 KAPITEL 3. AUFGABENSTELLUNG UND LÖSUNGSKONZEPT (i) (ii) Abbildung 3.15: (i) Schmale Region (ii) Ausreißerregion eines Höhendreieckmodells mit dem digitalen Geländemodell entstehen. Eine Verschiebung eines P-Knotens auf einem P-Schnittpolygon führt somit zu einer ungewollten Ungenauigkeit. Ein Fehlermaß für die Verschiebung eines P-Knotens bildet die Veränderung des Abstands zwischen dem jeweiligen Knoten auf dem Dreieckmodell der Wasseroberfläche und dem Knoten auf dem digitalen Geländemodell, die dem P-Knoten jeweils zugeordnet werden. In Abhängigkeit dieses Fehlermaßes soll die Anpassung der Polygone stattfinden. Auf die Erzeugung von P-Regionen wird in [Schu97] [Yoan99] genauer eingegangen. Besitzen die zu einem Polygonabschnitt benachbarten P-Regionen den gleichen Tiefenwert, so kann dieser Polygonabschnitt wegfallen und die zwei P-Regionen werden zu einer P-Region. Dies geschieht z.B. mit einem Polygonabschnitt im Bereich der konkaven Biegung in Abb. 3.14. In diesem Fall werden aus den Schnittknoten am entfernten Polygonabschnitt jeweils P-Knoten eines Polygonabschnitts und aus den benachbarten Polygonabschnitten an einem solchen (ursprünglichen) Schnittknoten jeweils ein Polygonabschnitt. Zum besseren Verständnis der P-Vernetzung, die in den Kapiteln 4 und 5 tiefergehend beschrieben wird, werden zunächst die Konsequenzen der PVernetzung auf die 3D-Vernetzung untersucht. 3.5 Weitere Anforderungen und Probleme Um die P-Vernetzung bezüglich der späteren 3D-Vernetzung zu optimieren, müssen die Auswirkungen der P-Vernetzung auf die 3D-Vernetzung verdeutlicht werden. Bei der Generierung eines Elementstapels aus einem P-Element soll die Qualität der Elemente berücksichtigt werden. Die Qualität der P- oder 3DElemente eines Netzes läßt sich an den Winkeln zwischen ihren P-Kanten 3.5. WEITERE ANFORDERUNGEN UND PROBLEME 29 messen. Für Vierecke, ob als P-Element oder als Oberfläche eines 3DElements, gilt: Definition 23. Ein Viereck heißt gut, wenn für seine vier Winkel αi (i ∈ 1,...,4) gilt: 90◦ -ω ≤ αi ≤90◦ +ω. Dabei ist ω ein von außen festzusetzendes Maß. Analog gilt für Dreiecke: Definition 24. Ein Dreieck heißt gut, wenn für seine drei Winkel αi (i ∈ 1,...,3) gilt: 60◦ -ω ≤ αi ≤60◦ +ω. Dabei ist ω ein von außen festzusetzendes Maß. Die Definition von guten Dreiecken und Vierecken impliziert eine möglichst geringe Abweichung der Längen der P-Kanten der Elemente voneinander. Dies ist insbesondere für die P-Vernetzung sinnvoll, da durch die abweichenden Längen sonst leicht P-Elemente entstehen, die zu stark in ihrer Größe voneinander abweichen. Die Qualität der Oberflächendreiecke und -vierecke der Volumenelemente ist abhängig von der Art wie die Knoten bei der Generierung eines Elementstapels miteinander verbunden werden. Unter der Voraussetzung, daß die Knoten einer Knotenschicht in ihrer Z-Koordinate nur gering voneinander abweichen gilt: Je mehr Kanten zwischen verschiedenen Knotenschichten generiert werden und je höher die Differenz zwischen diesen Knotenschichten ist, desto schlechter werden i.a. die Oberflächenvierecke und -dreiecke des Elementstapels. Denn solche Kanten schließen mit den senkrechten Kanten Winkel ein, die stark von 90◦ abweichen (vergl. Abb. 3.16 a)). Unter anderem wird deswegen folgende Forderung aufgestellt: Forderung 3.1. (Schichtforderung) Die Anzahl der Kanten im Elementstapel zwischen zwei Knoten, deren zugehörige P-Knoten benachbart sind und die auf verschiedenen Knotenschichten liegen, sowie deren Knotenschichtabstände sind zu minimieren. Im Elementstapel von Abb. 3.16 a) existieren wesentlich mehr der in der Schichtforderung benannten und zu vermeidenden Kanten als im Elementstapel von Abb. 3.16 b), bei dem die Schichtforderung eingehalten wurde. Ein weiterer, besonders entscheidender Vorteil der Schichtforderung wird im folgenden deutlich. 30 KAPITEL 3. AUFGABENSTELLUNG UND LÖSUNGSKONZEPT (a) (b) Abbildung 3.16: Seitenansicht eines Elementstapels Im Beweis von Lemma 3.1 wurde bereits deutlich, daß die Tiefenwerte der P-Knoten eines P-Elements nur bei Randelementen, also P-Elementen, die mit wenigstens einem P-Knoten auf der Kontur der zugehörigen P-Region liegen, unterschiedlich sein können. Aus einigen solcher P-Elemente können wie bereits erwähnt bei der 3D-Vernetzung nicht ausschließlich Hexaeder, Prismen und/oder Tetraeder erzeugt werden. Definition 25. Ein 3D-Element, das aus einem P-Element entsteht und weder ein Hexaeder noch ein Prisma noch ein Tetraeder darstellt, heißt NHPTElement (NichtHexaederPrismaTetraeder). Definition 26. Ein P-Element, aus dem unter Einhaltung der Schichtforderung (wenigstens) ein NHPT-Element entstehen muß, heißt Konfliktelement. Definition 27. Ein Konfliktlayer Kl(KE) eines Konfliktelements KE gibt eine Elementschicht an, auf der sich ein NHPT-Element des Elementstapels des Konfliktelements befindet. Ein Konfliktelement kann mehrere Konfliktlayer besitzen. Definition 28. Ein Konfliktelement, das ein P-Viereck ist, heißt Konfliktviereck. Definition 29. Ein Konfliktelement, das ein P-Dreieck ist, heißt Konfliktdreieck. Wegen der Einhaltung der Konformitätsbedingung (vergl. S. 11 und dort auch Abb. 3.1) müssen ggfs. benachbarte Elemente von bereits zerlegten Elementen ebenfalls zerlegt werden. Dies ist z.B. immer dann der Fall, wenn ein 3.5. WEITERE ANFORDERUNGEN UND PROBLEME 31 Oberflächenviereck und zwei Oberflächendreiecke zweier 3D-Elemente aneinanderstoßen (Abb. 3.17 a)). Dadurch wird die Zerlegung des Elements, zu dem das Oberflächenviereck gehört, (in der am Beispiel 3.17 b) dargestellten Weise) erforderlich. a) b) Abbildung 3.17: Zerlegung eines benachbarten Elements Eine solche Zerlegung ist nur möglich, wenn mindestens eine weitere Oberflächenseite des neu zu zerlegenden Elements zerlegt wird. Bei Hexaedern genügt die Zerlegung der gegenüberliegenden Viereckoberfläche, sofern keine weitere Viereckoberfläche zerlegt werden muß (Es entstehen zwei Prismen). Bei Prismen müssen alle drei Viereckoberflächen zerlegt werden (vergl. auch Lemma 4.2 Seite 45 und Folgerung 4.2 Seite 48). Grenzt eine neu zerlegte Oberflächenseite wiederum an eine nichtzerlegte Oberfläche eines weiteren Elements, so muß hier wieder eine entsprechende Zerlegung stattfinden. Dieser Zerlegungszwang kann sich fortsetzen und zu vielen zu zerlegenden Volumenelementen führen! Durch die Einhaltung der Schichtforderung wird gewährleistet, daß NHPTElemente nur auf den jeweils tiefer gelegenen Schichten entstehen und Zerlegungen damit besser zu kontrollieren sind, als wenn sie auf beliebigen Schichten entstehen! Es ist möglich, daß eine Zerlegung auf ein Hexaeder trifft, das an die Ein- oder Auslaufebene grenzt und dort endet. Das P-Viereck, aus dem ein solches Hexaeder entstanden ist, heißt Ein- bzw. Auslaufviereck . Zerlegungen, die sich im 3D-Netz fortsetzen, können auch im zugehörigen P-Netz dargestellt werden. Einige Begriffe dazu werden als Vorbereitung zur P-Vernetzung bereits hier definiert. Definition 30. Die P-Elemente, die zu einer Zerlegung gehören, die (bei Betrachtung auf der P-Ebene) von einem Konfliktviereck, einem Ein- oder Auslaufviereck oder einem P-Dreieck zu einem nächstgelegenen Konfliktviereck, einem Ein- oder Auslaufviereck oder P-Dreieck verläuft, bilden einen 32 KAPITEL 3. AUFGABENSTELLUNG UND LÖSUNGSKONZEPT (primitiven) (P-)Zerlegungspfad (vergl. Abb. 3.18). Die Anzahl seiner Vierecke (außer Ein- und Auslaufvierecke und Konfliktvierecke) beschreibt seine Länge. Definition 31. Die zu zerlegenden Elemente einer Elementschicht, die bei der 3D-Vernetzung aus einem Zerlegungspfad entstehen, bilden einen 3DZerlegungspfad zum P-Zerlegungspfad (vergl. Abb. 3.18). Bemerkung 3.3. Ein P-Zerlegungspfad kann auch die Länge null besitzen, wenn z.B. zwei P-Dreiecke direkt benachbart sind. Definition 32. Ein Zerlegungslayer Zl(E) eines P-Elements E eines Zerlegungspfades gibt eine Elementschicht an, auf der ein Element, das bei der 3D-Vernetzung aus E entsteht, zerlegt werden muß. (vergl. Abb. 3.18) Definition 33. Ein Zerlegungslayer Zl(ZP) eines Zerlegungspfades ZP gibt eine Elementschicht an, auf der die Elemente, die aus dem Zerlegungspfad bei der 3D-Vernetzung entstehen, zerlegt werden müssen. (vergl. Abb. 3.18) Ein Zerlegungspfad und ein P-Element können mehrere Zerlegungslayer besitzen. Zwischen dem Beginn und dem Ende eines Zerlegungspfades liegen ausschließlich P-Vierecke. Zerlegungsvierecke des P-Zerlegungspfades ZP 3D-Zerlegungspfad Konfliktelemente K1 und K2 Abbildung 3.18: P-Zerlegungspfad ZP und Konfliktelemente K1 und K2 mit Zl(ZP)=Zl(K1)=Zl(K2)=2 Definition 34. Ein P-Viereck eines Zerlegungspfades, das nicht Konfliktelement und Ein- oder Auslaufviereck ist, heißt Zerlegungsviereck.(vergl. Abb. 3.18) Konfliktelemente stellen immer Randelemente dar. Zerlegungspfade werden ausschließlich durch Konfliktelemente erzeugt. Die Anpassung der Polygonzüge [Schu97] [Yoan99] geschieht hauptsächlich zur Vermeidung von 3.6. ZUSAMMENFASSUNG UND LÖSUNGSSCHEMA 33 Konfliktelementen und damit auch Zerlegungsvierecken. Bei der Generierung des 3D-Netzes aus dem P-Netz entsteht zunächst ein Netz, das neben Hexaedern, Prismen und Tetraedern auch NHPT-Elemente enthält. Definition 35. Das Erstnetz ist das 3D-Netz, das aus einem P-Netz entsteht, ohne daß Elemente im 3D-Netz zerlegt werden. Die Erzeugung eines Erstnetzes bildet den ersten Schritt der 3D-Vernetzung (vergl. Schema 3.20 Kasten IV a)). Die Zerlegung der zu zerlegenden Elemente schließt die 3D-Vernetzung und damit auch die gesamte Vernetzung ab (vergl. Schema 3.20 Kasten IV b)). Ein Verfahren zur optimierten Zerlegung (die Art und Richtung der Zerlegung muß für jedes zu zerlegende Element bestimmt werden) der zu zerlegenden Elemente wird in Kapitel 6 beschrieben. Nach den Def. 30 und 31 gilt: Lemma 3.2. Alle zu zerlegenden Elemente eines Erstnetzes liegen in einem 3D-Zerlegungspfad bzw. spiegeln sich in einem P-Zerlegungspfad wieder. Zusammenfassung: Bei der P-Vernetzung soll zum einen bereits die Qualität der 3D-Elemente berücksichtigt werden. Zum anderen sollen insbesondere Konfliktelemente und Zerlegungsvierecke vermieden werden, damit im Erstnetz möglichst wenig NHPT-Elemente und Zerlegungsvierecke und im fertig generierten Netz möglichst wenig Tetraeder und Prismen entstehen. Dies ist die Hauptaufgabe der vorliegenden Arbeit. 3.6 Zusammenfassung und Lösungsschema Zusammenfassend wird in diesem Abschnitt noch mal kurz auf das Lösungsschema eingegangen. Die grundlegenden Schritte sind im linken Block von Schema 3.20 dargestellt. Kasten I: Erzeugung der Dreieckmodelle: Kasten I(i): Für die Generierung des digitalen Geländemodells werden die Knoten auf den Querprofilen eingelesen. Durch Interpolation auf den Querprofilen und zwischen den Querprofilen mit kubischen Splines werden zwischen je zwei Querprofilen Punkte erzeugt. Nach der Ausdünnung dieser 34 KAPITEL 3. AUFGABENSTELLUNG UND LÖSUNGSKONZEPT Punkte entsteht ein digitales Geländemodell durch Delaunaytriangulierung. Genauer ist das Verfahren in der Diplomarbeit von Oliver Könen beschrieben [Koen97]. Kasten I(ii): Nachdem das digitale Geländemodell generiert wurde, werden auf die Knoten die Wasseroberflächendaten interpoliert und die Höhendreieckmodelle erzeugt. Kasten II: Vorbereitung der P-Vernetzung: Kasten II(i): Anschließend werden die Schnittpolygone durch Schnitt der Dreieckmodelle mit dem digitalen Geländemodell generiert. Da die Knoten eines Dreieckmodells und des digitalen Geländemodells in vertikaler Richtung übereinander liegen, werden die Schnittpolygone durch die Analyse je zweier übereinanderliegender Dreiecke gefunden. Diese haben entweder keinen Schnitt(Abb. 3.19 (i)), oder sie schneiden sich in einer Strecke ((Schnitt)kante)(Abb. 3.19 (ii)+(ii)), oder sie haben einen gemeinsamen Knoten (Abb. 3.19 (iv)). Alle (Schnitt-)kanten aller Dreiecke bilden zusammen die Schnittpolygone. (i) (ii) (iii) (iv) Abbildung 3.19: Mögliche Schnitte und Berührungen zweier übereinanderliegender Dreiecke Kasten II(ii): Die Schnittpolygone werden schließlich mit den Verfeinerungspolygonen zu P-Regionen zusammengefaßt. Vorher wird sowohl eine Längennormierung der P-Kanten als auch eine Glättung der P-Kanten durch Optimierung der Winkel unter Berücksichtigung der Abweichung der ursprünglichen Höhe durchgeführt. Dabei müssen insbesondere die Ecken, also die Schnittknoten, möglichst gut angepaßt werden, da hier besonders schnell Konfliktelemente entstehen können. Eine detailliertere Beschreibung findet sich in den Diplomarbeiten [Schu97] [Yoan99]. Kasten III: P-Vernetzung Schließlich muß die eigentliche Vernetzung durchgeführt werden. Dabei besteht die Hauptarbeit in der Generierung des P-Netzes, da dadurch das 3.6. ZUSAMMENFASSUNG UND LÖSUNGSSCHEMA 35 3D-Netz weitestgehend beschrieben ist. Die P-Vernetzung ist hauptsächliches Thema der Kapitel 4 und 5. Es sei hier schon auf das genauere Schema 4.31 in Unterkapitel 4.2.4 hingewiesen, daß eine detailliertere Auflistung der Aufgaben der P-Vernetzung darstellt und damit 3.20 ergänzt. Kasten IV: 3D-Vernetzung Kasten IV a): Anschließend werden zur Erzeugung des 3D-Netzes den P-Elementen 3D-Elemente zugeordnet (Erzeugung eines Erstnetzes, vergl. Unterkapitel 4.1.1). Kasten IV b): Für die zu zerlegenden Elemente muß eine Zerlegungsrichtung bestimmt werden. Es entsteht ein Optimierungsproblem. Die im Rahmen dieser Dissertation hierzu entwickelten Algorithmen finden sich in Kapitel 6. 36 KAPITEL 3. AUFGABENSTELLUNG UND LÖSUNGSKONZEPT a) (i) Generierung eines digitalen Geländemodells I Ermittlung eines Dreieckmodells für die Wasseroberfläche und Erzeugung der Höhendreieckmodelle Generierung der Schnittpolygone II Anpassung aller Polygonabschnitte und Erzeugung von Regionen III P-Vernetzung IV 3D-Vernetzung Einlesen von Querprofilen b) Erzeugung von Knoten zwischen den Querprofilen mit Hilfe von kubischen Splines c) Ausdünnen der Knoten d) DelaunayTriangulierung über die Knoten Interpolation der Wasseroberflächendaten auf die Knoa) ten des digitalen Geländemodells Erzeugung der b) Höhendreieckmodelle (ii) (i) Generierung der Schnittpolygone durch Schnitt der Höhendreieckmodelle mit dem digitalen Geländemodell a) (ii) Kombination der Verfeinerungspolygone und Schnittpolygone b) Anpassung der Schnittknoten c) Normierung und Glättung der Polygonabschnitte d) Detektion der Regionen P-Vernetzung a) Erzeugung eines Erstnetzes b) Zerlegung der zu zerlegenden Elemente Abbildung 3.20: Kapitel 4 Die P-Vernetzung: Probleme und Aufgaben Bei der P-Vernetzung ist es wichtig, Konfliktelemente zu vermeiden und die Bereiche einer P-Region, in denen sie entstehen können, genau zu lokalisieren. Durch eine kontrollierte Vernetzung solcher Bereiche kann die Anzahl der Konfliktelemente reduziert werden. Die von den Konfliktelementen ausgehenden Zerlegungspfade sollen möglichst kurz sein, damit möglichst wenige Zerlegungselemente (P-Elemente, aus denen bei der 3D-Vernetzung zu zerlegende Elemente entstehen) generiert werden müssen. Dies erfordert eine ebenfalls kontrollierte Generierung der Zerlegungspfade. Damit die Kontrolle und somit eine Reduzierung von Konflikt- und Zerlegungselementen gewährleistet werden kann, werden im ersten Unterkapitel 4.1 Algorithmen vorgestellt, mit deren Hilfe einfache Kriterien zur Detektion von Konfliktelementen gefunden wurden. Gleichzeitig dienen diese Algorithmen zur Erzeugung eines Elementstapels und eines konformen Erstnetzes. In Unterkapitel 4.2 werden die Bereiche, in denen Konfliktelemente entstehen können, diskutiert. Im letzten Abschnitt dieses Unterkapitels ist eine Übersicht (Schema 4.31) der Reihenfolge der P-Vernetzung dargestellt, die die Bereiche, in denen Konfliktelemente entstehen können, sinnvoll berücksichtigt. Details der P-Vernetzung werden anschließend in Kapitel 5 behandelt. Kapitel 6 beschreibt schließlich eine Lösung zur Erzeugung eines gültigen Netzes aus dem Erstnetz: Die zu zerlegenden Elemente müssen sinnvoll zerlegt werden. Alle Lösungen wurden im Rahmen dieser Dissertation entwickelt. 37 38 KAPITEL 4. DIE P-VERNETZUNG: PROBLEME UND AUFGABEN 4.1 Konfliktelemente und deren Auswirkungen In diesem Unterkapitel wird zuerst eine Strategie zur Zuweisung von Tiefenwerten für P-Knoten auf Polygonabschnitten diskutiert. Die Definition der P-Region (Def. 8, Seite 18) legt nur die Tiefenwerte der P-Knoten, die echt innerhalb liegen fest. Es stellt sich heraus, daß es sinnvoll ist von allen benachbarten P-Regionen den jeweils kleinsten Tiefenwert für den P-Knoten einer Kontur zu wählen. 4.1.1 Zuordnung der Tiefenwerte Die erzeugten P-Regionen bilden zusammen ein Polygonnetz (vergl. Abb. 3.14). Das bedeutet, daß ein Polygonabschnitt einer P-Region gleichzeitig ein Polygonabschnitt einer anderen P-Region sein kann. Schnittknoten grenzen an mehrere P-Regionen. Nach Definition der P-Regionen erhalten alle P-Knoten innerhalb einer P-Region den gleichen Tiefenwert. Es bleibt die Frage, welchen Tiefenwert den P-Knoten auf den Konturen zugeordnet werden. Diese P-Knoten können in folgende Typen unterteilt werden (vergl. Abb. 3.14): a) P-Knoten auf Polygonabschnitten, die zwei P-Regionen voneinander trennen b) Schnittknoten außerhalb des Berandungspolygons c) P-Knoten auf dem Berandungspolygon. Im folgenden wird für alle Typen diskutiert, welche Zuordnung die sinnvollste ist. a) P-Knoten auf Polygonabschnitten, die zwei P-Regionen voneinander trennen: Besitzen die P-Regionen den gleichen Tiefenwert, so ist die Lösung einfach: Der Polygonabschnitt erhält ebenfalls den gleichen Tiefenwert. Seien A und B die beiden P-Regionen, die durch einen Polygonabschnitt getrennt werden. Sei a der Tiefenwert von P-Region A und b der Tiefenwert von P-Region B und a<b. Dann gibt es mehrere Möglichkeiten den P-Knoten auf dem trennenden Polygonabschnitt Tiefenwerte zuzuordnen, von denen hier einige nicht notwendigerweise disjunkte aufgezählt sind: 4.1. KONFLIKTELEMENTE UND DEREN AUSWIRKUNGEN (1) (2) (3) (4) (5) 39 Wahl des kleinsten Tiefenwertes a. Wahl des größten Tiefenwertes b. Beliebig einer von beiden. Ein zwischen a und b liegender Wert, falls a+1<b. Ein Mittelwert beider falls a+1<b. Dabei sollen im folgenden die Auswirkungen der Wahl bezüglich des Endresultats betrachtet werden. Nach Lemma 3.1 Seite 23 ist die gewünschte Sicherstellung des gleichen Tiefenwertes aller P-Elemente einer P-Region nur dann gewährleistet, wenn die P-Knoten der Kontur den gleichen oder einen kleineren Tiefenwert als die P-Region erhalten. Dadurch kann die Anzahl der Elementschichten bereits vor der P-Vernetzung in jeder P-Region genau bestimmt werden. Insbesondere erscheint dies auch für eine erwünschte Verfeinerung sinnvoll. Eine genaue Eingrenzung von Gebieten bezüglich der Anzahl ihrer Schichten ist dann nur durch die Wahl des kleinsten Tiefenwerts (Fall (1)) für die P-Knoten der Polygonabschnitte möglich. Lemma 4.9 Seite 61 bestärkt diese Entscheidung über die Richtung eines Zerlegungspfades. Denn: Wird für den Tiefenwert auf der Kontur jeweils der kleinste Tiefenwert gewählt (Fall (1)), so kann so vernetzt werden, daß alle Zerlegungspfade bei der P-Vernetzung in die P-Region hinein zeigen. Dies hat den Vorteil, daß bei geeigneter Vernetzung keine Zerlegungspfade über die Kontur hinweg verlaufen können was die Vernetzung übersichtlicher macht. Wird dagegen einer der Fälle (2)-(5) gewählt, so ist dies nicht mehr gewährleistet. Die Wahl des kleinsten Tiefenwerts entspricht außerdem der Erzeugung der Schnittpolygone durch Schnitt der Höhendreieckmodelle und des digitalen Geländemodells. b) Schnittknoten außerhalb des Berandungspolygons: Für Schnittknoten ist die Anzahl der Tiefenwerte, aus denen eine Wahl getroffen werden kann, größer, da wenigstens drei P-Regionen an einem Schnittknoten anliegen. Die anliegenden Polygonabschnitte liegen nicht auf dem Berandungspolygon, da der Schnittknoten nicht auf dem Berandungspolygon liegt. Deswegen wird, analog wie im oben beschriebenen Fall, wegen des gewünschten einheitlichen Tiefenwertes pro P-Region und zur besseren Kontrolle der Zerlegungspfade das Minimum der Zerlegungslayer der anliegenden P-Regionen gewählt. c) P-Knoten auf dem Berandungspolygon: P-Knoten auf den Uferpolygonen erhalten den Tiefenwert null, da die 40 KAPITEL 4. DIE P-VERNETZUNG: PROBLEME UND AUFGABEN zugordneten Knoten auf den Dreieckmodellen für Wasseroberflächen und Gelände identisch sind, also zwischen ihnen keine Differenz entsteht und damit an dieser Stelle die Anzahl der Schichten des zu generierenden Volumennetzes null ist. Eingesetzte P-Knoten auf dem Ein- und Auslaufpolygon erhalten den Tiefenwert der P-Region, in der sie liegen. Schnittknoten auf dem Ein- oder Auslaufpolygon erhalten den Tiefenwert der P-Knoten des angrenzenden Polygonabschnitts, der nicht auf dem Ein- oder Auslaufpolygon liegt. Die Tiefenwertzuordnung der P-Knoten auf dem Ein- oder Auslaufpolygon begründet sich durch eine gedankliche sinnvolle Fortsetzung der Tiefenwertzuordnung für die an den Ein- und Auslaufpolygonen angrenzenden nicht zu vernetzenden Bereiche. Abb. 4.1 zeigt ein Beispiel für die Tiefenwertzuordnung an einem Ein- oder Auslaufpolygon. 0 0 0 1 1 1 0 2 1 2 1 1 1 0 2 2 1 1 1 0 1 0 0 Abbildung 4.1: Zuordnung der Tiefenwerte an den Querprofilen Abb. 4.2 zeigt die Tiefenwertzuordnung für einen Teilausschnitt des Wurmbeispiels (vergl. dazu auch Tiefenwertzuordnung in Abb. 3.14). Durch die Wahl der Tiefenwerte entstehen P-Kanten mit P-Knoten unterschiedlicher Tiefenwerte nur an Schnittknoten! 4.1.2 Konfliktelemente Das Hauptproblem bei der Vernetzung stellen Konfliktelemente dar. Sie verursachen i.a. Zerlegungsvierecke, die bei unkontrollierter Vernetzung zu einem P-Netz mit vielen Zerlegungsvierecken bzw. zu einem 3D-Netz mit vielen Tetraedern und Prismen führen kann. Zur Vermeidung von Konfliktelementen werden in diesem Unterkapitel zunächst einfache Kriterien zu ihrer Detektion mittels Tiefenwerte ihrer P-Knoten ermittelt. 4.1. KONFLIKTELEMENTE UND DEREN AUSWIRKUNGEN 41 2 3 2 2 2 2 2 2 2 2 2 1 2 2 2 2 1 0 3 2 2 2 1 0 2 0 0 0 0 0 1 0 0 0 0 2 2 2 2 2 2 1 1 0 1 1 0 0 0 2 1 2 2 1 2 2 2 2 2 1 2 2 2 2 2 2 2 2 2 1 2 0 0 2 2 2 0 2 2 2 3 3 2 3 2 2 2 2 2 2 2 2 2 2 3 0 2 3 3 4 3 3 3 Abbildung 4.2: Zuordnung der Tiefenwerte für die P-Knoten für einen Teilausschnitt des Wurmbeispiels Definition 36. Ein P-Element E heißt uniform, wenn ∀ K mit K ist PKnoten von E gilt: T(K)=t und t ∈ IN ist fest. Definition 37. Ein P-Element E heißt heteroform, wenn ∃Ki und Kj mit Ki , Kj sind P-Knoten von E, für die gilt: T(Ki )=T(Kj ) und Ki 6= Kj . Die folgenden Aussagen, deren Inhalt bereits in Kapitel 3 angesprochen wurde, geben notwendige Eigenschaften der Konfliktelemente an. Lemma 4.1. Konfliktelemente sind heteroform. Beweis. Aus P-Vierecken, deren P-Knoten alle den gleichen Tiefenwert t besitzen, können t Hexaeder im Erstnetz erzeugt werden. Aus P-Dreiecken, deren P-Knoten alle den gleichen Tiefenwert t besitzen, können t Prismen im Erstnetz erzeugt werden. Nach Definition eines Konfliktelements gehören damit solche P-Elemente nicht zu den Konfliktelementen. Folgerung 4.1. Ein Konfliktelement muß mit mindestens einem P-Knoten auf der Kontur liegen. 42 KAPITEL 4. DIE P-VERNETZUNG: PROBLEME UND AUFGABEN Beweis. P-Elemente, die mit keinem P-Knoten auf einer Kontur liegen, liegen innerhalb einer P-Region und besitzen für alle P-Knoten den gleichen Tiefenwert. Wegen Lemma 4.1 werden heteroforme P-Elemente im folgenden als Konfliktelementkandidaten (Konfliktviereckkandidat, Konfliktdreieckkandidat) genauer untersucht. Dabei wird nach der Anzahl der auf der Kontur liegenden P-Knoten unterschieden. Es werden auch diejenigen Fälle diskutiert, bei denen ein P-Element mit allen P-Knoten auf der Kontur liegt. Durch solche P-Elemente wird allerdings Bedingung (*) aus Lemma 3.1 verletzt. Trotzdem sollen solche Fälle behandelt werden, da solche P-Elemente zur Vermeidung weiterer Konfliktelemente und Zerlegungsvierecke im Ausnahmefall erlaubt sein sollen. t1 t2 t1 t2 t3 (i) (ii) t2 t1 t3 (iii) t2 Abbildung 4.3: Konfliktdreieckkandidaten t1 t1 t2 (i) t2 t3 (ii) t1 t3 (iii) t3 t2 t2 t1 t3 t2 t4 t1 (iv) t3 t4 (v) Abbildung 4.4: Konfliktviereckkandidaten In Abb. 4.3 sind alle Konfliktdreieckkandidaten und in Abb. 4.4 alle Konfliktviereckkandidaten dargestellt (Es gilt jeweils t1 , t2 , t3 , t4 ∈ IN ). Die PKnoten der P-Elemente, die als ausgefüllte Kreise gezeichnet sind, liegen auf der Kontur, die anderen (der Übersichtlichkeit halber weggelassen) liegen im Inneren der P-Region. Die P-Knoten im Inneren der P-Region haben jeweils 4.1. KONFLIKTELEMENTE UND DEREN AUSWIRKUNGEN 43 gleichen Tiefenwert. Die P-Knoten auf der Kontur können unterschiedliche Tiefenwerte dazu und untereinander besitzen. Nach der Untersuchung der Konfliktelementkandidaten stellt sich heraus, daß es sinnvoll ist, für die Vernetzung als Konfliktelemente ausschließlich Konfliktdreiecke zu generieren. 4.1.3 Konfliktvierecke In diesem Abschnitt wird ein Algorithmus zur Erzeugung von Elementstapeln aus P-Vierecken unter Einhaltung der Schichtforderung (Seite 29) vorgestellt. Mit Hilfe dieses Verfahrens werden anschließend aus den Konfliktviereckkandidaten die echten Konfliktvierecke detektiert. Es stellt sich heraus, daß von den Konfliktviereckkandidaten nur diejenigen keine Konfliktvierecke sind, die zwei benachbarte P-Knotenpaare mit jeweils gleichen Tiefenwerten besitzen. Der erste Schritt zur Erzeugung von Elementstapeln aus P-Elementen ist die Zuordnung von Knoten an die P-Knoten, was in Kapitel 3 Seite 18 bereits beschrieben wurde. Es wird nun die Erzeugung einzelner Volumenelemente erklärt: Ausgehend von den Knoten, die den P-Knoten eines P-Vierecks zugeordnet wurden, werden zur Erzeugung eines Hexaeders den vier zugehörigen Knoten einer Knotenschicht die entsprechenden vier Knoten der nächst höheren Knotenschicht (falls vorhanden) zugeordnet. Liegen Knoten der betrachteten Knotenschicht bereits auf dem digitalen Geländemodell (unterhalb des digitalen Geländemodells liegen keine Knoten), entstehen andere Elemente durch Zuordnung von jeweils weniger Knoten (vergl. Abb. 4.5). Solche Elemente können in einem Elementstapel mehrfach untereinanderliegen. Die Verbindung der Knoten miteinander zur Erzeugung der Elemente findet so statt, daß die Oberflächen der Elemente ausschließlich aus Dreiund Vierecken bestehen. Alle Knoten eines Elements, die der höheren Knotenschicht angehören (tieferliegende Knoten) sind zu beiden Seiten mit dem jeweiligen Nachbarknoten der höheren Knotenschicht verbunden. Entsprechendes gilt für die Knoten auf der tieferen Knotenschicht (höher gelegene Knoten). Auf diese Weise können die folgenden Elemente entstehen: Definition 38. Ein 3-4-Element ist ein 3D-Element, das aus einem PViereck entsteht der Art, daß genau dreien der vier P-Knoten des P-Vierecks 44 KAPITEL 4. DIE P-VERNETZUNG: PROBLEME UND AUFGABEN (i) (ii) (iii) (iv) Abbildung 4.5: *-4-Elemente und W-Prisma zwei Knoten und genau einem der vier P-Knoten des P-Vierecks ein Knoten zugeordnet wird (vergl. Abb. 4.5 (i)). Definition 39. Ein 2-4-Element ist ein 3D-Element, das aus einem PViereck entsteht der Art, daß genau zwei gegenüberliegenden der vier PKnoten des P-Vierecks zwei Knoten und den beiden anderen der vier PKnoten des P-Vierecks ein Knoten zugeordnet wird (vergl. Abb. 4.5 (iii)). Definition 40. Ein 1-4-Element ist ein 3D-Element, das aus einem PViereck entsteht der Art, daß genau einem der vier P-Knoten des P-Vierecks zwei Knoten und genau dreien der vier P-Knoten des P-Vierecks ein Knoten zugeordnet wird (vergl. Abb. 4.5 (iv)). Definition 41. Ein W-Prisma (Waagerecht-Prisma) ist ein 3D-Element, das aus einem P-Viereck entsteht der Art, daß genau zwei benachbarten der vier P-Knoten des P-Vierecks zwei Knoten und den beiden anderen P-Knoten des P-Vierecks ein Knoten zugeordnet wird (vergl. Abb. 4.5 (ii)). Definition 42. Ein *-4-Element ist ein 1-4-, 2-4- oder 3-4-Element. Bemerkung 4.1. Der Elementstapel zu einem P-Viereck kann so generiert werden, daß er ausschließlich aus Hexaedern, W-Prismen und/oder *-4Elementen besteht. *-4-Elemente sind NHPT-Elemente (Def. 25, S. 30). Es soll nun kurz diskutiert werden, welche Auswirkungen *-4-Elemente auf die Zerlegung von weiteren Elementen haben. Daraus werden Konsequenzen für den Umgang mit Konfliktvierecken gezogen. Wie bereits in Unterkapitel 3.5 erwähnt wurde, müssen NHPT-Elemente zerlegt werden, wodurch ggfs. eine Zerlegung benachbarter Elemente nötig wird. Es wird nun für *-4-Elemente untersucht, wie diese Elemente in gültige Elemente zerlegt werden können und in welche Richtungen dadurch Zerlegungen notwendig werden. Insbesondere geschieht dies im Hinblick auf eine Zerlegung in senkrechte Richtung, d.h. des gesamten Elementstapels. 4.1. KONFLIKTELEMENTE UND DEREN AUSWIRKUNGEN 45 Lemma 4.2. 1. Die Zerlegung eines *-4-Elements in die größten erlaubten Elementtypen erfordert die Zerlegung aller Viereckoberflächen in Dreiecke. 2. Die Zerlegung eines Prismas in Tetraeder erfordert die Zerlegung aller Viereckoberflächen in Dreiecke. 3. Die Zerlegung eines Hexaeders in die größten erlaubten Elementtypen erfordert wenigstens die Zerlegung zweier gegenüberliegender Viereckoberflächen in Dreiecke. Beweis. 1. Die Behauptung wird nacheinander für alle *-4-Elemente gezeigt: 1-4-Element: Seine Oberfläche besteht aus vier Dreiecken und einem Viereck. Aus einem 1-4-Element lassen sich auf zwei Weisen zwei Tetraeder erzeugen, wodurch die Viereckoberfläche jeweils in zwei Dreiecke unterteilt wird (vergl. Abb. 4.6). 2-4-Element: Die Oberfläche eines 2-4-Elements besteht aus zwei Vier- (i) (ii) (iii) Abbildung 4.6: Zerlegung eines 1-4-Elements ecken und vier Dreiecken. Da keine Zerlegung in Prismen möglich ist, muß das Element ebenfalls in Tetraeder zerlegt werden. In Abb. 4.7 sind die verschiedenen Möglichkeiten der Zerlegung dargestellt. Alle Viereckoberflächen müssen in Dreieckoberflächen zerlegt werden, da Tetraeder nur solche besitzen. 3-4-Element: Die Oberfläche eines 3-4-Elements besteht aus vier Vierecken und zwei Dreiecken. Dadurch kann vermutet werden, daß eine Zerlegung in Prismen möglich ist und deswegen nicht alle Vierecke in Dreiecke zerlegt werden müssen. Wird jedoch vom 3-4-Element ein Prisma abgetrennt, so verbleibt ein Element mit zwei Vierecken und zwei Dreiecken. Dieses kann nur in Tetraeder zerlegt werden und damit werden aus den beiden Vierecken des Restelements jeweils zwei Dreiecke. Damit muß auch eine Viereckseite des abgetrennten Prismas 46 KAPITEL 4. DIE P-VERNETZUNG: PROBLEME UND AUFGABEN (i) (ii) (iii) (iv) Abbildung 4.7: Zerlegung eines 2-4-Elements in zwei Dreiecke zerlegt werden, es tritt Fall 2 s.u. ein. Letztendlich müssen alle Vierecksseiten zerlegt werden. In Abb. 4.8 sind die verschiedenen Möglichkeiten der Zerlegung dargestellt. (i) (ii) (iii) (iv) (v) (vi) (vii) (viii) (ix) (x) (xi) Abbildung 4.8: Zerlegung eines 3-4-Elements 2. Ein Prisma kann nur in Tetraeder zerlegt werden. Dies ist nur auf die in Abb. 4.9 dargestellten Arten möglich 1 . Diese Möglichkeiten erfordern 1 Andere Möglichkeiten existieren nicht, da sonst fast ein Schönhardt-Element ensteht (vergl. dazu S. 207 Satz 6.1) 4.1. KONFLIKTELEMENTE UND DEREN AUSWIRKUNGEN 47 die Zerlegung aller Viereckoberflächen. (i) (ii) (iii) (v) (vi) (vii) (iv) Abbildung 4.9: Zerlegung eines W-Prismas 3. Das nächstkleinere erlaubte Element zu einem Hexaeder ist ein Prisma. Ein Hexaeder kann in zwei Prismen unterteilt werden. Dabei werden zwei gegenüberliegende Viereckoberflächen in jeweils zwei Dreiecke unterteilt (vergl. Abb. 4.10). Eine Aufteilung in Prismen ist nur auf die (i) (ii) Abbildung 4.10: Zerlegung eines Hexaeders in zwei Prismen in Abb. 4.10 dargestellte Weise möglich. Eine Zerlegung in Tetraeder erfordert eine Zerlegung aller Viereckoberflächen in Dreiecke. Abb. 4.11 zeigt alle bekannten Möglichkeiten der Zerlegung eines Hexaeders in Tetraeder. Muß also wegen Einhaltung der Konformität eine dritte Viereckoberfläche oder müssen zwei nicht gegenüberliegende Viereckoberflächen eines Hexaeders in zwei Dreiecke unterteilt werden, so muß das gesamte Hexaeder in Tetraeder unterteilt werden. Das gleiche gilt auch, wenn zwei gegenüberliegende Viereckoberflächen in entgegengesetzter Richtung in Dreiecke unterteilt werden müssen. 48 KAPITEL 4. DIE P-VERNETZUNG: PROBLEME UND AUFGABEN (i) (ii) (iii) (iv) (v) (vi) (vii) (viii) (ix) (x) (xi) (xii) (xiii) (xiv) (xv) (xvi) (xvii) (xviii) (xix) Abbildung 4.11: Zerlegung eines Hexaeders in Tetraeder Folgerung 4.2. 1. Muß eine Viereckoberfläche eines *-4-Elements zerlegt werden, so müssen auch seine weiteren Viereckoberflächen zerlegt werden. 2. Muß eine Viereckoberfläche eines Prismas zerlegt werden, so müssen auch seine weiteren Viereckoberflächen zerlegt werden. 3. Muß eine Viereckoberfläche eines Hexaeders zerlegt werden, so muß wenigstens ihre gegenüberliegende Viereckoberfläche zerlegt werden. Beweis. Folgt direkt aus Lemma 4.4 und seinem Beweis. 4.1. KONFLIKTELEMENTE UND DEREN AUSWIRKUNGEN 49 Die Zerlegung aller Viereckoberflächen von *-4-Elementen hat in einem Elementstapel folgende Auswirkung: Lemma 4.3. *-4-Elemente verursachen die Zerlegung aller Elemente des Elementstapels, in dem sie liegen. Beweis. Wegen der notwendigen Zerlegung aller Viereckoberflächen eines *4-Elements müssen auch das nach oben und das nach unten benachbarte Element zerlegt werden (Folgerung 4.2). Ist dies ein *-4-Element oder ein Prisma, so werden hiervon wiederum alle Viereckflächen zerlegt (Folgerung 4.2 1. und 2.). Ist dies ein Hexaeder, so wird wenigstens die gegenüberliegende Viereckoberfläche zerlegt (Folgerung 4.2 3.). Damit wird in jedem Fall wiederum die nach oben bzw. unten weisende Viereckoberfläche dieses Elements zerlegt. Die Zerlegung setzt sich entsprechend nach oben bzw. unten fort und führt zur Zerlegung des gesamten Elementstapels. Zur Vermeidung der notwendigen Zerlegung von Elementstapeln mit *-4Elementen in vertikaler Richtung wird wie folgt vorgegangen: Vorgehensweise: Konfliktvierecke werden vermieden. Stattdessen sollen solche Stellen bei der P-Vernetzung mit P-Dreiecken vernetzt werden! Damit Konfliktvierecke bei der P-Vernetzung vermieden werden können, müssen sie rechtzeitig als solche erkannt werden. Deswegen werden im folgenden die in Abb. 4.4 dargestellten Konfliktviereckkandidaten genauer untersucht und Algorithmus 4.1 vorgestellt, mit dessen Hilfe die Konfliktvierecke vollständig aufgelistet werden können. Dazu werden zunächst die *-4-Elemente in der P-Ebene mit Tiefenwerten ihrer P-Knoten dargestellt. (vergl. Abb. 4.12). 0 1 0 1 1 1 (i) (ii) 0 0 1 1 (iii) 1 0 0 0 (iv) 0 1 1 1 1 1 (v) Abbildung 4.12: (i) 3-4-Template (ii) PRIS-W-Template (iii) 2-4-Template (iv) 1-4-Template (v) HEX-Template 50 KAPITEL 4. DIE P-VERNETZUNG: PROBLEME UND AUFGABEN Definition 43. Ein i-4-Template (i∈ 1,2,3) ist die Darstellung eines i-4-Elements in der PEbene, wobei jedem P-Knoten als Tiefenwert die Anzahl der im 3D-Element an dieser Stelle auftretenden Senkrechtkanten zugewiesen wird (vergl. Abb. 4.12(i),(iii),(iv)). Ein PRIS-W-Template ist die analoge Darstellung eines W-Prismas in der P-Ebene (vergl. Abb. 4.12(ii)). Ein HEX-Template ist die analoge Darstellung eines Hexaeders in der PEbene (vergl. Abb. 4.12(v)). Die Templates sind eine analoge Darstellung zu den P-Elementen mit Tiefenwerten. Definition 44. Die Subtraktion eines Templates von einem P-Element mit Tiefenwertdarstellung der P-Knoten geschieht durch Subtraktion der einzelnen Tiefenwerte der P-Knoten. Bemerkung 4.2. Die Subtraktion eines Templates von einem P-Element entspricht bei dreidimensionaler Betrachtung der Erzeugung des zum Template gehörenden 3D-Elements im zugehörigen Elementstapel. Beweis. Geht direkt aus der Definition der Templates hervor. Durch Algorithmus 4.1 kann der Elementstapel zu einem P-Viereck ermittelt werden. Außerdem können mit dem Algorithmus alle Konfliktvierecke aufgelistet werden. Algorithmus 4.1 subtrahiert von einem P-Viereck sukzessiv ein Template mit größter Gesamtsumme der Tiefenwerte. Die folgenden Lemmata zeigen die Korrektheit des Algorithmus. Lemma 4.4. Algorithmus 4.1 terminiert. Beweis. In jedem Schleifendurchlauf wird wenigstens einer der Tiefenwerte der P-Knoten, dessen Tiefenwert größer null ist, um eins reduziert und keiner erhöht. Wegen der Endlichkeit der Tiefenwerte terminiert das Verfahren. Satz 4.1. (Korrektheit) Algorithmus 4.1 subtrahiert ein *-4-Template genau dann, wenn ein Konfliktviereck vorliegt. 4.1. KONFLIKTELEMENTE UND DEREN AUSWIRKUNGEN 51 Algorithmus 4.1 (Viereckelementstapel). PROCEDURE BEGIN v(iereck):=P-Viereck; while (nicht alle Tiefenwerte der P-Knoten (v.T(K)) = 0) falls (alle v.T(K) > 0) v:=v - HEX-Template; sonst falls (genau drei v.T(K) > 0) v:=v - 3-4-Template; sonst falls (genau zwei benachbarte v.T(K) > 0) v:=v - PRIS-W-Template; sonst falls (genau zwei gegenüberl. v.T(K) > 0) v:=v - 2-4-Template; sonst falls (genau ein v.T(K) > 0) v:=v - 1-4-Template; END Beweis. ⇒“: Angenommen, es wird ein *-4-Element subtrahiert, obwohl ” kein Konfliktviereck vorliegt. Dazu wird unterschieden: a) Es wird ein 3-4-Template subtrahiert. Dann ist der aktuelle Tiefenwert eines P-Knotens null und alle anderen größer null. Die Subtraktion eines HEX-Templates ist zu diesem oder einem späteren Zeitpunkt nicht möglich, da ein Tiefenwert bereits den Wert null besitzt. Die Subtraktion von PRISW-Templates ist ohne Verletzung der Schichtforderung an dieser Stelle nicht möglich. Damit ist die Subtraktion eines 3-4-Templates notwendig, der Elementstapel muß ein 3-4-Element enthalten. b) Es wird ein 2-4-Template subtrahiert. Das bedeutet, daß die aktuellen Tiefenwerte zweier gegenüberliegender P-Knoten größer null sind, die der beiden anderen gleich null. Zu diesem Zeitpunkt besteht nur die Möglichkeit ein 1-4- oder ein 2-4-Template zu subtrahieren. Entsprechend muß der Elementstapel ein 1-4- oder 2-4-Element enthalten. c) Es wird ein 1-4-Template subtrahiert. Der aktuelle Tiefenwert eines PKnotens ist größer null, die der anderen gleich null. Es gibt keine andere Möglichkeit als ein 1-4-Template zu subtrahieren und damit enthält der Elementstapel ein 1-4-Element. Alle drei Fälle führen zum Widerspruch. Damit ist die Behauptung bewiesen. ⇐“: Liegt ein Konfliktviereck vor, so muß der zugehörige Elementstapel ” wenigstens ein NHPT-Element enthalten. Hier kommen als NHPT-Elemente 52 KAPITEL 4. DIE P-VERNETZUNG: PROBLEME UND AUFGABEN nur *-4-Elemente in Frage. Es wird gezeigt, daß Algorithmus 4.1 dann auch ein *-4-Template subtrahiert wird. Es können wieder die drei Fälle unterschieden werden. a) Der Elementstapel enthält ein 3-4-Element: Es wird das erste 3-4-Element von oben betrachtet. Wegen der Schichtforderung dürfen über diesem nur Hexaeder liegen. Unter dem Knoten des 3-4-Elements, an dem im Element keine Kante in senkrechter Richtung existiert, darf im Elementstapel keine weitere Kante liegen. Denn sonst würde wiederum die Schichtforderung verletzt. Die Position des 3-4-Elements wird im Algorithmus zu dem Zeitpunkt berücksichtigt, an dem drei P-Knoten einen Tiefenwert größer und ein P-Knoten einen Tiefenwert gleich null besitzen. An dieser Stelle wird ein 3-4-Template subtrahiert. b) Der Elementstapel enthält ein 2-4-Element (und kein 3-4-Element, sonst siehe Fall a)): Wiederum wird das oberste 2-4-Element betrachtet. Die Argumentation verläuft analog zu Fall a). Hier sind es zwei Knoten, unter denen keine Kanten liegen dürfen. c) Der Elementstapel enthält ein 1-4-Element (und kein 3-4-Element, sonst siehe Fall a) und kein 2-4-Element, sonst siehe Fall b)): Argumentation analog zu Fall a) und Fall b). Wesentlich für die Korrektheit von Algorithmus 4.1 ist die Tatsache, daß er die Schichtforderung einhält. Der Algorithmus hat den Vorteil, daß er deterministisch ist und schnell ein Konfliktviereck, detektiert. In Abb. 4.13 wird Algorithmus 4.1 an einem Beispiel verdeutlicht. 2 3 1 4 4 3 (a) (b) 2 0 3 2 (c) 1 0 2 1 (d) 0 0 1 0 Von 0 0 (e) Abbildung 4.13: Beispiel für Algorithmus 4.1 Schritt Abb. 4.13 a) nach b) und von b) nach c) wird jeweils ein HEX Template subtrahiert, von c) nach d) ein 3-4-Template und von d) nach e) schließlich ein PRIS-W-Template. Das in Abb. 4.13 a) dargestellte P-Viereck ist also ein Konfliktviereck, das vermieden werden soll. Zur Veranschaulichung ist in Abb. 4.14 (i) der zugehörige Elementstapel dreidimensional dargestellt. 4.1. KONFLIKTELEMENTE UND DEREN AUSWIRKUNGEN (a) 53 (b) Abbildung 4.14: Resultierende Zerlegung im 3D-Netz Wegen der Zerlegung des 3-4-Elements müßte der ganze Elementstapel zerlegt werden (vergl. Abb. 4.14 (b)). Mit Hilfe von Algorithmus 4.1 kann nun ein einfaches Kriterium zur Detektion von Konfliktvierecken formuliert werden. Lemma 4.5. Ein P-Viereck ist ein Konfliktviereck genau dann, wenn es einen P-Knoten besitzt, (*) dessen Tiefenwert unterschiedlich zu den Tiefenwerten seiner beiden Nachbarn ist. Beweis. ⇒“: Annahme: Es gibt ein Konfliktviereck ohne die Eigenschaft ” (*). Jeder P-Knoten des P-Vierecks hat wenigstens einen Nachbarknoten mit gleichem Tiefenwert. Dann haben entweder alle P-Knoten den gleichen Tiefenwert oder zwei benachbarte Paare haben den gleichen Tiefenwert. Im ersten Fall entstehen nach Algorithmus 4.1 nur Hexaeder. Für den zweiten Fall sei a der Tiefenwert des ersten P-Knotenpaares, b der Tiefenwert des zweiten P-Knotenpaares und œ a<b. Nach Algorithmus 4.1 werden solange HEX-Templates subtrahiert, bis der aktuelle Tiefenwert des ersten PKnotenpaares a’=0 und der aktuelle Tiefenwert des zweiten P-Knotenpaares b’= b-a ist. Danach werden (b-a) mal PRIS-W-Templates subtrahiert bis b’=0 gilt. Das P-Viereck ist kein Konfliktviereck. ⇐“: Der P-Knoten mit der Eigenschaft (*) besitze den Tiefenwert a. Seine ” benachbarten P-Knoten den Tiefenwert b und c und sein gegenüberliegender P-Knoten den Tiefenwert d (vergl. Abb. 4.15). Es werden jetzt alle möglich auftretenden Fälle untersucht. 1. Fall: a<b, a<c (i) a<d: Dann subtrahiert Algorithmus 4.1 nach a Schritten ein 3-4-Template. (ii) a=d: Dann subtrahiert Algorithmus 4.1 nach a Schritten ein 2-4-Template. (iii) a>d: Dann besitzt der gegenüberliegende P-Knoten mit Tiefenwert d 54 KAPITEL 4. DIE P-VERNETZUNG: PROBLEME UND AUFGABEN c d a b Abbildung 4.15: Skizze zum Beweis auch die Eigenschaft (*) und Fall 1 (i) tritt für diesen ein. 2. Fall: a<b, a>c (i) a<d: Dann besitzt der P-Knoten mit Tiefenwert c die Eigenschaft (*) und Fall 1 (i) tritt für diesen ein. (ii) a=d: Dann besitzt der P-Knoten mit Tiefenwert c die Eigenschaft (*) und Fall 1 (i) tritt für diesen ein. (iii) a>d: Dann gilt für: c<d: Für den P-Knoten mit Tiefenwert c tritt Fall 1 (i) ein. c>d: Für den P-Knoten mit Tiefenwert d tritt Fall 1 (i) ein. c=d: Dann subtrahiert Algorithmus 4.1 nach a Schritten ein 1-4-Template. 3. Fall: a>b, a<c analog zu 2. Fall 4. Fall: a>b, a>c (i) a<d: Dann subtrahiert Algorithmus 4.1 nach min(b,c) Schritten ein 2-4oder ein 3-4-Template. (ii) a=d: Dann subtrahiert Algorithmus 4.1 nach min(b,c) Schritten ein 2-4oder ein 3-4-Template. (iii) a>d: Dann subtrahiert Algorithmus 4.1 nach max(b,c,d) Schritten ein 1-4-Template. Wegen Satz 4.1 liegt in jedem Fall ein Konfliktviereck vor. Satz 4.2. (Unproblematische P-Vierecke) Ein P-Viereck ist genau dann kein Konfliktviereck, wenn die Tiefenwerte aller vier P-Knoten gleich sind oder je zwei benachbarte Paare gleich sind. Beweis. Folgt direkt aus Lemma 4.5. Tabelle 4.1 listet alle Möglichkeiten für die in Abb. 4.4 dargestellten PViereckfälle auf, die nicht zu einem Konfliktviereck führen. Bei der Auflistung wird gemäß der Tiefenwertzuordnung davon ausgegangen, daß die Tiefenwerte der P-Knoten, die innerhalb einer P-Region liegen, nicht kleiner sind als die der P-Knoten, die auf einer Kontur liegen. 4.1. KONFLIKTELEMENTE UND DEREN AUSWIRKUNGEN 55 Tabelle 4.1. Abb. 4.4 t1 t2 t3 (i) = t2 (ii) = t2 (iii) = t2 = t3 (iv) = t2 = t4 (iv) = t4 = t3 (v) = t2 = t4 (v) = t4 = t3 Lemma 4.6. Tabelle 4.1 listet alle P-Vierecke, die keine Konfliktelemente darstellen, vollständig auf. Alle anderen Fälle stellen Konfliktvierecke dar. Beweis. Die Fälle, die in Tabelle 4.1 nicht aufgelistet sind, besitzen die Eigenschaft (*) aus Lemma 4.5. Mit Hilfe der Tabelle 4.1 kann bei der Vernetzung auf sehr schnelle Weise entschieden werden, ob die Generierung eines P-Vierecks zu einem Konfliktviereck führt. Ist dies der Fall, so soll stattdessen mit P-Dreiecken vernetzt werden. 4.1.4 Konfliktdreiecke Analog zum Verfahren zur Ermittlung von Elementstapeln aus P-Vierecken (Algorithmus 4.1) wird in diesem Abschnitt ein Verfahren zur Ermittlung von Elementstapeln aus P-Dreiecken unter Einhaltung der Schichtforderung vorgestellt. Mit Hilfe dieses Algorithmus können aus den Konfliktdreieckkandidaten (vergl. Abb. 4.3) alle echten Konfliktdreiecke detektiert werden. Da als Konfliktelemente nur Konfliktdreiecke generiert werden sollen, stellt das Resultat ein wichtiges Hilfsmittel zur Netzgenerierung dar. Zur Erzeugung eines Elementstapels werden zunächst alle Elemente betrachtet, die im Erstnetz bei der 3D-Vernetzung aus P-Dreiecken entstehen können. Dabei erfolgt die Erzeugung der Elemente aus einem P-Dreieck analog zur Erzeugung von Elementen aus einem P-Viereck (vergl. Beschreibung Seite 43). Abb. 4.16 stellt alle Möglichkeiten dar. Es können die folgenden Elemente entstehen: Definition 45. Ein 2-3-Element ist ein 3D-Element, das aus einem PDreieck entsteht, indem genau zweien der drei P-Knoten des P-Dreiecks zwei Knoten und genau einem der drei P-Knoten des P-Dreiecks ein Knoten zugeordnet wird (vergl. Abb. 4.16 (i)). 56 KAPITEL 4. DIE P-VERNETZUNG: PROBLEME UND AUFGABEN (i) (ii) (iii) Abbildung 4.16: Aus P-Dreiecken entstandene Elemente im Erstnetz Definition 46. Ein 1-3-Element ist ein 3D-Element, das aus einem PDreieck entsteht, indem genau einem der drei P-Knoten des P-Dreiecks zwei Knoten und genau zweien der drei P-Knoten des P-Dreiecks ein Knoten zugeordnet wird (vergl. Abb. 4.16 (ii)). Definition 47. Ein S-Prisma (Senkrecht-Prisma) ist ein 3D-Element, das aus einem P-Dreieck entsteht, indem allen drei P-Knoten des P-Dreiecks zwei Knoten zugeordnet werden (vergl. Abb. 4.16 (iii)). Definition 48. Ein *-3-Element ist ein 1-3-Element oder ein 2-3-Element. Ein 1-3-Element ist ein Tetraeder und stellt als erlaubtes Element kein Problem dar. Ein 2-3-Element ist (wie ein 1-4-Element) eine Pyramide, die auf zwei Arten in zwei Tetraeder zerlegt werden kann (vergl. Abb. 4.17). (i) (ii) (iii) Abbildung 4.17: Zerlegung eines 2-3-Elements Ein Konfliktdreieck (vergl. Def. 29, Seite 30) ist demnach ein P-Dreieck, aus dem bei der 3D-Vernetzung wenigstens ein 2-3-Element entsteht. Die Zerlegung eines 2-3-Elements erfordert die Zerlegung des seitlichen Vierecks. Analog zu Bemerkung 4.1 für die P-Vierecke gilt: Bemerkung 4.3. Der Elementstapel zu einem P-Dreieck kann so generiert werden, daß er ausschließlich aus S-Prismen, 2-3-Elementen und/oder Tetraedern besteht. Aus den Konfliktdreieckkandidaten sollen nun alle Konfliktdreiecke detektiert werden, d.h. alle P-Dreiecke, zu denen (wenigstens) ein 2-3-Element generiert werden muß. Dazu werden die *-3-Elemente ebenfalls in der PEbene mit Tiefenwert dargestellt. 4.1. KONFLIKTELEMENTE UND DEREN AUSWIRKUNGEN 0 1 0 1 (i) 0 1 (ii) 57 1 1 1 (iii) Abbildung 4.18: (i) 2-3-Template (ii) 1-3-Template (iii) PRIS-S-Template Definition 49. Ein i-3-Template (i∈ {1, 2}) ist die Darstellung eines i-3-Elements in der P-Ebene, wobei jedem P-Knoten als Tiefenwert die Anzahl der im 3D-Element an dieser Stelle auftretenden Senkrechtkanten zugewiesen wird (vergl. Abb. 4.18(i),(ii)). Ein PRIS-S-Template ist die (analoge) Darstellung eines S-Prismas in der P-Ebene (vergl. Abb. 4.18(iii)). Ein 1-3-Template wird auch als TET-Template (Tetraeder-Template) bezeichnet. Analog dem Algorithmus 4.1 kann jetzt ein entsprechendes Verfahren (Algorithmus 4.2) für P-Dreiecke formuliert werden, wobei die Subtraktion wie in Def. 44 verstanden wird. Algorithmus 4.2 (Dreieckelementstapel). PROCEDURE BEGIN d(reieck):=P-Dreieck; while (nicht alle Tiefenwerte der P-Knoten (d.T(K)) = 0) falls (alle d.T(K) >0) d:= d - PRIS-S-Template; sonst falls (genau zwei d.T(K) >0) d:= d - 2-3-Template; sonst falls (genau ein d.T(K) >0) d:= d - TET-Template; END Für Algorithmus 4.2 werden die folgenden Lemmata gezeigt. Lemma 4.7. Das Verfahren Algorithmus 4.2 terminiert. 58 KAPITEL 4. DIE P-VERNETZUNG: PROBLEME UND AUFGABEN Beweis. Beweis klar wie Beweis von Lemma 4.4. Satz 4.3. (Korrektheit) Algorithmus 4.2 subtrahiert ein 2-3-Template genau dann, wenn ein Konfliktdreieck vorliegt. Beweis. ⇒“: Angenommen es wird ein 2-3-Template subtrahiert, obwohl ” kein Konfliktdreieck vorliegt. Dann ist der aktuelle Tiefenwert eines PKnotens null, die der beiden anderen größer null. Die Subtraktion eines PRIS-S-Templates ist nicht mehr möglich. Die Subtraktion eines 1-3-Templates ist ohne Verletzung der Schichtforderung an dieser Stelle nicht möglich. Damit muß ein 2-3-Template subtrahiert werden, der Elementstapel muß ein 2-3-Element enthalten. ⇐“: Liegt ein Konfliktdreieck vor, so muß der zugehörige Elementstapel we” nigstens ein 2-3-Element enthalten. Es wird das erste 2-3-Element von oben betrachtet. Wegen der Schichtforderung dürfen über diesem nur S-Prismen liegen. Unter dem Knoten des 2-3-Elements, an dem im Element keine Kante in senkrechter Richtung existiert, darf im Elementstapel keine weitere Kante liegen. Denn sonst würde wiederum die Schichtforderung verletzt. Die Position des 2-3-Elements entspricht somit der Stelle im Algorithmus, an der zwei P-Knoten einen Tiefenwert größer und ein P-Knoten einen Tiefenwert gleich null besitzen. An dieser Stelle wird ein 2-3-Template subtrahiert. Wie für Algorithmus 4.1 ist auch für die Korrektheit von Algorithmus 4.2 wesentlich, daß er die Schichtforderung einhält. Algorithmus 4.2 wird an einem Beispiel verdeutlicht (Abb. 4.19). 0 1 2 3 (a) 1 0 2 (b) 0 0 1 0 (c) 0 (d) Abbildung 4.19: Beispiel für Algorithmus 4.2 Von Abb. 4.19 a) nach b) wird ein PRIS-S-Template subtrahiert, von b) nach c) ein 2-3-Template und von c) nach d) ein TET-Template. Das in Abb. 4.19 dargestellte P-Dreieck ist also ein Konfliktdreieck. Der resultierende Elementstapel im Erstnetz ist in Abb. 4.20 a) dargestellt. Abb. 4.20 (b) zeigt eine zulässige Zerlegung. 4.1. KONFLIKTELEMENTE UND DEREN AUSWIRKUNGEN (a) 59 (b) Abbildung 4.20: Resultierende Zerlegung im 3D-Netz Auch für Konfiktdreiecke soll eine möglichst einfache Art zur Detektion vorgestellt werden. Dazu hilft der folgende Satz. Satz 4.4. Ein P-Dreieck ist genau dann ein Konfliktdreieck, wenn es einen P-Knoten besitzt,(*) dessen Tiefenwert kleiner ist als die Tiefenwerte der beiden anderen P-Knoten. Beweis. Wegen Satz 4.3 genügt es zu zeigen, daß Algorithmus 4.2 genau dann ein 2-3-Template subtrahiert, wenn das P-Dreieck einen P-Knoten mit der Eigenschaft (*) besitzt. ⇒“: Wird das erste 2-3-Template subtrahiert, so erfüllen die aktuellen Tie” fenwerte der P-Knoten Eigenschaft (*). Da vorher nur PRIS-S-Templates subtrahiert werden konnten, und diese Subtraktionen nichts an der Eigenschaft (*) ändern konnten, ist die Behauptung bewiesen. ⇐“: Ist der Tiefenwert des P-Knoten K kleiner als der der beiden anderen ” P-Knoten, so werden zunächst so lange PRIS-S-Templates subtrahiert, bis der Tiefenwert von K gleich null ist. Da die Tiefenwerte aller P-Knoten dabei gleichmäßig reduziert werden, besitzen die beiden anderen P-Knoten zu diesem Zeitpunkt einen Tiefenwert größer null. Der Algorithmus 4.2 subtrahiert im nächsten Schritt ein 2-3-Template. Es kann gefolgert werden: Folgerung 4.3. Ein P-Dreieck ist genau dann kein Konfliktdreieck, wenn die Tiefenwerte zweier P-Knoten gleich sind und kleiner oder gleich dem Tiefenwert des dritten P-Knoten. Beweis. Folgt direkt aus Satz 4.4. Mit Hilfe von Satz 4.4 werden in Tabelle 4.2 alle Konfliktdreiecke der in Abb. 4.3 dargestellten P-Dreieckfälle aufgelistet. Wiederum wird dabei davon ausgegangen, daß P-Knoten, die auf der Kontur liegen, einen kleineren oder gleichen Tiefenwert besitzen als solche, die nicht auf der Kontur liegen. 60 KAPITEL 4. DIE P-VERNETZUNG: PROBLEME UND AUFGABEN Tabelle 4.2. Abb. 4.4 t1 t2 (i) < t2 (ii) < t2 (ii) < t1 (iii) < t2 <= t3 (iii) <= t3 < t1 Lemma 4.8. Tabelle 4.2 listet (bis auf Spiegelung und Drehung) alle Konfliktdreiecke vollständig auf. Alle Fälle, die Tabelle 4.2 nicht auflistet, sind keine Konfliktdreiecke. Beweis. Folgt direkt aus Satz 4.8. Konfliktdreiecke können mit Hilfe von Tabelle 4.2 direkt erkannt werden. Leider können sie nicht immer vermieden werden. In Abb. 4.21 sind alle Konfliktdreiecke noch einmal in einer Übersicht dargestellt. Dabei wird wiederum angenommen, daß die P-Knoten auf der Kontur einen kleineren oder gleichen Tiefenwert wie die P-Knoten im Inneren der P-Region besitzen. Die als ausgefüllte Kreise eingezeichneten P-Knoten stellen die P-Knoten auf der Kontur dar. Gespiegelte und gedrehte Fälle werden nicht extra aufgelistet. Es gilt t1 < t2 < t3 . t1 k1 t 2 t1 k 2 k 3 t 2 (i) k2 k 1 t2 k 3 t2 (ii) t1 k2 k 1 k 3 t 3 (iii) t2 t2 t2 k2 t 1 k3 k 1 (iv) t 2 k 3 k2 k 1 t 1 t 3 (v) Abbildung 4.21: Konfliktdreiecke in der Übersicht Definition 50. Eine Zerlegungsrichtung eines Konfliktdreiecks ist eine Richtung, in die ein Zerlegungspfad zeigt, der an dem Konfliktdreieck beginnt. Es werden jetzt noch die Konfliktlayer und Zerlegungsrichtungen eines Konfliktdreiecks bestimmt. 4.1. KONFLIKTELEMENTE UND DEREN AUSWIRKUNGEN 61 Lemma 4.9. Gegeben sei ein Konfliktdreieck mit den Tiefenwerten t1 , t2 und ggfs. t3 an den P-Knoten, wobei œ t1 < t2 ≤ t3 gilt (vergl. Abb. 4.21). Die Zerlegungspfade, die an diesem Konfliktdreieck beginnen, besitzen die Konfliktlayer (t1 + 1) - t2 . Beweis. In den ersten t1 Schritten subtrahiert Algorithmus 4.2 PRIS-S-Templates. Anschließend werden in den Schritten (t1 + 1) - t2 2-3-Templates subtrahiert. Das entspricht der Erzeugung von 2-3-Elementen auf den Schichten (t1 + 1) - t2 . Da diese zerlegt werden müssen, beschreiben diese Schichten Konfliktlayer des Konfliktdreiecks. Danach werden ggfs. 1-3-Templates subtrahiert, die aber nicht zerlegt werden müssen und deswegen nicht zum Konfliktlayer beitragen. Lemma 4.10. Gegeben sei ein Konfliktdreieck mit den Tiefenwerten t1 , t2 und ggfs. t3 an den P-Knoten, wobei œ t1 < t2 (≤ t3 ) gilt (vergl. Abb. 4.21). Die Zerlegungspfade, die an diesem Konfliktdreieck beginnen, verlaufen über die P-Kante, die nicht an dem P-Knoten liegt, dessen Tiefenwert t1 beträgt. Beweis. Der P-Knoten mit Tiefenwert t1 ist der P-Knoten, der bei der Subtraktion der 2-3-Templates den aktuellen Tiefenwert null besitzt. Zerlegungspfade können jedoch nur von P-Kanten des Konfliktdreiecks ausgehen, deren beide P-Knoten einen Tiefenwert größer null besitzen. Denn die zugehörigen 3D-Elemente besitzen nur an diesen Stellen seitliche Oberflächenvierecke. über ein seitliches Oberflächendreieck kann kein 3D-Zerlegungspfad laufen. Mit Hilfe der Lemmata 4.9 und 4.10 können die Konfliktlayer und Zerlegungsrichtungen der Konfliktdreiecke mittels des P-Netzes eindeutig bestimmt werden. 4.1.5 Erzeugung des Erstnetz Mit Hilfe der Algorithmen 4.1 und 4.2 kann das gesamte Erstnetz erzeugt werden (vergl. Schema 3.20 IV a) Seite 36). Es genügt dafür zu zeigen, daß die mit Hilfe dieser Algorithmen erzeugten Elementstapel zweier benachbarter P-Elemente konform zueinander sind. Lemma 4.11. Zwei Elementstapel, die aus zwei benachbarten P-Elementen mit Hilfe der Algorithmen 4.1 und/oder 4.2 erzeugt werden, sind konform zueinander. Beweis. Es wird die gemeinsame P-Kante k der beiden P-Elemente betrachet. Es seien t1 und t2 die Tiefenwerte der P-Knoten von k. Für beide 62 KAPITEL 4. DIE P-VERNETZUNG: PROBLEME UND AUFGABEN P-Elemente wird bei beiden Algorithmen min(t1 ,t2 ) mal von beiden Tiefenwerten eins subtrahiert. Für die Elementstapel bedeutet dies jeweils eine Generierung eines Elements, dessen Seitenfläche an dieser Stelle jeweils ein Viereck ist. Diese sind konform zueinander. Anschließend wird bei beiden Algorithmen (max(t1 ,t2 )-min(t1 ,t2 )) mal vom größten Tiefenwert eine eins subtrahiert. Für die Elementstapel bedeutet dies jeweils die Generierung eines Elements, dessen Seitenfläche an dieser Stelle jeweils ein Dreieck ist. Die Dreiecke liegen konform zueinander. Anschließend sind beide Tiefenwerte null, weswegen an dieser Stelle keine Seitenflächen in den zugehörigen Elementstapeln mehr entstehen. Folgerung 4.4. Die Anwendung der Algorithmen 4.1 und 4.2 auf alle PElemente eines P-Netzes führt zu einem konformen Erstnetz. Bemerkung 4.4. Die Qualität der Elemente eines durch die Algorithmen 4.1 und 4.2 entstandenen Erstnetzes aus einem P-Netz ist bezüglich aller Erstnetze gut“. ” Begründung. Die Qualität wird maßgeblich durch die Einhaltung der Schichtforderung bestimmt, die von den beiden Algorithmen 4.1 und 4.2 eingehalten wird. 4.1.6 Konfliktdreiecke und daraus resultierende Zerlegungen In Kapitel 3.5 wurden bereits die Begriffe Zerlegungspfad, Zerlegungslayer und Zerlegungsviereck (Seite 31 ff.) eingeführt. Zum Zwecke der Darstellung aller Aufgaben, die in Verbindung mit der Generierung von Zerlegungspfaden stehen (Unterkapitel 4.2), werden in diesem Abschnitt noch einige Begriffe eingeführt und Zusammenhänge diskutiert. Wegen der Vorgehensweise als Konfliktelemente ausschließlich Konfliktdreiecke zu erzeugen (Seite 49), beginnt und endet jeder (primitive) Zerlegungspfad an einem nächsten P-Dreieck oder einem Ein- oder Auslaufviereck. Definition 51. Ein P-Dreieck, an dem ein Zerlegungspfad beginnt oder endet, heißt Zerlegungsdreieck. Es ist leicht ersichtlich, daß Konfliktdreiecke immer auch Zerlegungsdreiecke sind. Es gibt jedoch auch Zerlegungsdreiecke, die keine Konfliktdreiecke sind. Trifft z.B. ein 3D-Zerlegungspfad im 3D-Netz auf einen Elementstapel, der aus einem P-Dreieck, das kein Konfliktdreieck ist, entstanden ist, 4.1. KONFLIKTELEMENTE UND DEREN AUSWIRKUNGEN 63 so muß das Element auf der Schicht des 3D-Zerlegungspfades ebenfalls zerlegt werden. Es ist ein Senkrechtprisma, dessen drei Viereckoberflächen alle zerlegt werden müssen. Da der zugehörige P-Zerlegungspfad somit auf ein PDreieck (, das kein Konfliktdreieck ist,) trifft, stellt dieses P-Dreieck Beginn oder Ende des (primitiven) P-Zerlegungspfades dar. Ein P-Dreieck, von dem nicht bekannt ist, ob es ein Zerlegungsdreieck werden kann, heißt Zerlegungsdreieckkandidat. Definition 52. Ein Zerlegungslayer Zl(ZD) eines Zerlegungsdreiecks ZD gibt eine Elementschicht an, auf der das Element des zugehörigen Elementstapels zerlegt werden muß. Treffen mehrere 3D-Zerlegungspfade auf Elemente unterschiedlicher Schichten eines Elementstapels, der aus einem P-Dreieck entstanden ist, so müssen alle diese Elemente zerlegt werden. Das bedeutet, daß das zugehörige PDreieck mehrere Zerlegungslayer besitzen kann. Bei einem Konfliktdreieck (Def. 29) sind die Konfliktlayer immer auch Zerlegungslayer. Konfliktdreiecke sind die einzigen ursprünglichen Auslöser von Zerlegungspfaden, da ihre zugehörigen Elementstapel als einzige NHPT-Elemente enthalten. Trifft ein Zerlegungspfad mit Zerlegungslayer t auf ein Zerlegungsdreieck, das nicht Konfliktdreieck ist, werden zu den beiden anderen Richtungen des Zerlegungsdreiecks jeweils Zerlegungspfade mit Zerlegungslayer t ausgelöst. (Im folgenden wird dieser Sachverhalt teilweise als Weiterleitung eines Zerlegungspfades bezeichnet.) Ein Konfliktdreieck verhält sich für Zerlegungspfade mit kleinerem Zerlegungslayer als die Konfliktlayer des Konfliktdreiecks wie ein Zerlegungsdreieck (vergl. Abb. 4.22). Ein Zerlegungsdreieck ist für einen bestimmten Zerlegungslayer somit entweder Beginn bzw. Ende genau eines Zerlegungspfades oder Beginn bzw. Ende von Zerlegungspfaden in alle drei Richtungen. Dies muß bei der Generierung der Zerlegungspfade beachtet werden. Nachdem nun die Begriffe bezüglich eines Zerlegungspfades definiert wurden, wird im folgenden auf den Umgang mit Zerlegungspfaden näher eingegangen. Dazu wird zunächst gefordert: Forderung 4.1. Alle Zerlegungspfade müssen so generiert werden, daß sie in dem Sinne überschneidungsfrei sind, daß keine zwei Zerlegungspfade gleichen Zerlegungslayers sich in einem P-Viereck kreuzen. Begründung. Würden sich zwei Zerlegungspfade ZP1 und ZP2 mit Zl(ZP1 ) = Zl(ZP2 ) = t1 in einem P-Viereck kreuzen, so würde dadurch im 3D-Netz eine Zerlegung des gesamten zum P-Viereck gehörenden Elementstapels verursacht. Denn es müßten alle Viereckoberflächen des Elements auf der Schicht 64 KAPITEL 4. DIE P-VERNETZUNG: PROBLEME UND AUFGABEN Konfliktdreieck mit Konfliktlayer a und zusätzlichem Zerlegungslayer b < a Zerlegungspfad mit Zerlegungslayer a und b Zerlegungspfade mit Zerlegungslayer b Kontur Abbildung 4.22: Konfliktdreieck mit zugehörigen Zerlegungspfaden t1 zerlegt werden und damit zur Einhaltung der Konformität alle Elemente des Elementstapels. (vergl. Abb. 4.11). Besäße ZP1 einen weiteren Zerlegungslayer t2 , so müßten durch die vertikale Zerlegung der Elemente des Elementstapels das untere und das obere Oberflächenviereck des Elements auf der Schicht t2 im Elementstapel zerlegt werden und durch das Auftreffen des 3D-Zerlegungspfades ein seitliches Oberflächenviereck dieses Elements zerlegt werden. Dadurch müßten auch alle weiteren seitlichen Oberflächenvierecke dieses Elements zerlegt werden: Wenn dieses Element ein Hexaeder ist, erhielte ZP2 zusätzlich den Zerlegungslayer t2 . Die Anzahl der entsprechenden Zerlegungen würde sich erhöhen. Die Anzahl der zu zerlegenden Elemente steigt stark an. Zum besseren Umgang mit Zerlegungspfaden findet eine 1-1-Zuordnung zu planaren Graphen mit Knoten vom Grad eins oder drei statt. Definition 53. Ein Z-Knoten (mit Zerlegungslayer t zu einem P-Netz G) ist das Abbild einer eineindeutigen Zuordnung eines Paares (Zerlegungsdreieck Z, Zl(Z)) oder eines Paares (Ein- oder Auslaufviereck Z, Zl(Z)) mit Zl(Z)=t (vergl. Abb. 4.23). Definition 54. Eine Z-Kante (mit Zerlegungslayer t zu einem P-Netz G) ist das Abbild einer eineindeutigen Zuordnung eines Paares (Zerlegungspfad ZP, Zl(ZP)) mit Zl(ZP)=t (vergl. Abb. 4.23). Alle Z-Knoten und Z-Kanten bilden einen nicht notwendigerweise zusammenhängenden Graphen. Die Z-Knoten sind entweder vom Grad eins (Zuordnung eines Konfliktdreiecks, mit Konfliktlayer t, oder Zuordnung eines Ein- 4.1. KONFLIKTELEMENTE UND DEREN AUSWIRKUNGEN 65 oder Auslaufvierecks mit Zerlegungslayer t) oder vom Grad drei (Zuordnung von Zerlegungsdreiecken, mit Zerlegungslayer t weiterläuft). Der Graph ist planar, da die Z-Kanten überschneidungsfrei sind (vergl. Forderung 4.1). Jede Z-Kante ist inzident zu genau zwei Z-Knoten. Definition 55. Ein Zerlegungsgraph zu einem P-Netz G ist ein Graph, dessen Knotenmenge aus allen Z-Knoten zu G und dessen Kantenmenge aus allen Z-Kanten zu G besteht. (vergl. Abb. 4.23) Abbildung 4.23: Entstehung von Zerlegungsgraphen In Abb. 4.23 ist das Entstehen von Zerlegungsgraphen dargestellt. Da als Konfliktelemente ausschließlich Dreiecke generiert werden und sichergestellt wird, daß ein Elementstapel eines Ein- oder Auslaufvierecks nicht zerlegt wird, wird durch Einhaltung von Forderung 4.1 garantiert, daß kein Elementstapel zerlegt werden muß. Damit beschreiben die 3DZerlegungspfade und die 3D-Elemente, an denen sie beginnen und enden alle zu zerlegenden 3D-Elemente in einem 3D-Netz. Wegen der Definition der 3D-Zerlegungspfade und der Definition eines Zerlegungsgraphen werden damit durch einen Zerlegungsgraphen alle zu zerlegenden 3D-Elemente in einem 3D-Netz beschrieben! Die Kosten eines Zerlegungsgraphen eines P-Netzes G werden hauptsächlich durch die Anzahl der dadurch bestimmten zu zerlegenden 3D-Elemente bestimmt. Die Detektion eines Zerlegungsgraphen geschieht ebenfalls mittels des P-Netzes. Dazu müssen die Zerlegungspfade und ihre Zerlegungslayer bestimmt werden. Dies wird in Kapitel 6 ausführlich diskutiert. Mit Hilfe der Zerlegungsgraphen können schließlich die Richtungen der Zerlegungen der zu zerlegenden Elemente optimal festgelegt werden (Kapitel 6, Schema 3.20 IV b)). 66 KAPITEL 4. DIE P-VERNETZUNG: PROBLEME UND AUFGABEN 4.2 Aufgaben der P-Vernetzung Dieses Unterkapitel zeigt eine Übersicht und Strategie der P-Vernetzung auf. Im letzten Abschnitt dieses Unterkapitels ist diese in Schema 4.31 dargestellt. Die einzelnen Aufgaben werden in diesem Unterkapitel erklärt. In Kapitel 5 werden die Lösungen der Aufgaben im Detail aufgezeigt. Die Kosten eines Zerlegungsgraphen sollen minimiert werden. Das bedeutet zum einen, daß möglichst wenige Konflikt- und Zerlegungsdreiecke und -pfade mit möglichst wenigen Zerlegungslayern generiert werden, und zum anderen, daß die zerlegten Elemente eines Netzes von möglichst guter Qualität sein sollen. Für die P-Vernetzung wurde deswegen eine Strategie entwickelt, die möglichst wenige Konflikt- und Zerlegungselemente und möglichst wenige und kurze Zerlegungspfade generiert. Es sollen zuerst alle Bereiche, in denen Konflikt-, Zerlegungsdreiecke oder Zerlegungsdreieckkandidaten liegen können, vernetzt werden. Für Ecken (Def. 22 S. 25) ist die Gefahr“ von Konfliktdreiecken bereits bekannt. ” Definition 56. Konturknoten mit den dazu inzidenten Konturkanten, an denen evtl. P-Dreiecke und damit Zerlegungsdreieckkandidaten generiert werden müssen und die auf Polygonabschnitten außerhalb von Ecken liegen, heißen kritische Bereiche. Zu den kritischen Bereichen können auch schmale Regionen (vergl. Kapitel 3 Seite 9) gehören. Außerdem sind ungünstige Winkel in den Polygonabschnitten auf kritische Bereiche zu untersuchen. Definition 57. Eine Zacke innerhalb eines Polygonabschnittes besteht aus zwei aufeinanderfolgenden P-Kanten mit den dazu inzidenten P-Knoten, deren eingeschlossener Winkel kleiner als γ ist (0◦ < γ <120◦ ). Definition 58. Der mittlere P-Knoten einer Zacke Z heißt Spitzenknoten (der Zacke) (Spk(Z)), die beiden anderen heißen (linker bzw. rechter) Seitenknoten/Anschlußknoten (der Zacke) (Sekl (Z) und Sekr (Z)) (vergl. 4.24). An Zacken sollen P-Dreiecke generiert werden, da die Vernetzung mit P-Vierecken zu schlechten Elementen führt, d.h. Zacken gehören zu den kritischen Bereichen. In diesem Sinne bestimmt die Wahl von γ (s. Def. 57), wann Zerlegungsdreiecke schlechten P-Vierecken vorzuziehen sind. Dies soll in Abhängigkeit des Kontextes geschehen. γ kann z.B. anders gewählt werden, wenn in der Nähe nicht benachbarte P-Knoten des gleichen oder eines 4.2. AUFGABEN DER P-VERNETZUNG 67 P-Region 1 Seiten-/Anschlußknoten Spitzenknoten P-Region 2 Abbildung 4.24: Seiten-/Anschlußknoten und Spitzenknoten einer Zacke weiteren Polygonabschnitts liegen. Die Strategie der P-Vernetzung geht nun im Groben wie folgt vor: Da bei Ecken die Gefahr“ des Entstehens von Konfliktelementen besonders ” groß ist, werden sie als erstes vernetzt (Schema 4.31 (i)). Anschließend werden alle kritischen Bereiche und schmalen Regionen vernetzt (Schema 4.31 (ii)) und die Vernetzung an den Ecken und kritischen Bereichen aneinander und für die Erzeugung von Zerlegungspfaden angepaßt (Schema 4.31 (iii)). Was darunter genau zu verstehen ist, wird später noch deutlich (vergl. Unterkapitel 5.4). Danach werden die P-Dreiecke durch P-Zerlegungspfade miteinander verbunden (Schema 4.31 (iv)). Da die Konflikt- und Zerlegungsdreiecke Randelemente sind und Konfliktvierecke nicht generiert werden sollen (vergl. Seite 49), ist eine Vermeidung der Entstehung von Zerlegungspfaden entlang der Kontur in der Regel nicht möglich. Um die Anzahl der Zerlegungspfade gering zu halten, werden deswegen Zerlegungspfade nach Möglichkeit immer entlang der Kontur generiert. Damit sind P-Dreiecke als Randelmente zunächst auf jeden Fall Zerlegungsdreieckkandidaten (vergl. Def. 56). Durch die Führung der Zerlegungspfade entlang der Kontur ist eine kontrollierte Generierung möglich, die zur Reduzierung der Kosten eines Zerlegungsgraphen führt. Ggfs. müssen weitere Zerlegungspfade innerhalb der Regionen generiert werden. Danach werden alle übrigen Bereiche der P-Regionen mit möglichst vielen P-Vierecken vernetzt (Schema 4.31 (v)). Zum Schluß kann eine Verbesserung der P-Elemente durch ein Smoothing durchgeführt werden. (vergl. Schema 4.31 (vi)). 68 KAPITEL 4. DIE P-VERNETZUNG: PROBLEME UND AUFGABEN Zum Auffinden aller Zacken genügt es, die benachbarten Kantenpaare aller Polygonabschnitte bezüglich ihrer Winkel zu überprüfen (vergl. Schema 4.31 (ii) a)). Schmale Regionen können durch ein Gitterverfahren, wie in [Schu97] [Yoan99] beschrieben, detektiert werden (vergl. Schema 4.31 (ii) b)). Dazu wird ein gleichmäßiges Gitter über alle Regionen gelegt. Durch den Vergleich der Inhalte eines Gitterkästchens oder benachbarter Gitterkästchen können nahe beieinanderliegende P-Knoten verschiedener Polygonteile und somit auch schmale Regionen leicht ermittelt werden. Die folgenden Abschnitte beleuchten einige Aufgaben zur P-Vernetzung detaillierter. 4.2.1 Zacken Zacken können an allen Stellen eines Polygonabschnittes auftreten. Da Polygonabschnitte immer zwei P-Regionen (P-Region 1 + P-Region 2) (oder eine P-Region und den Außenbereich (kann analog betrachtet werden)) voneinander trennen (vergl. 4.24), gibt es folgende Möglichkeiten bezüglich der Tiefenwerte der P-Knoten. 1. (t,t,t+x) Zackenknoten: t; P-Region 1: t; P-Region 2: t+x; t,x ∈ IN 2. (t,t+x,t) Zackenknoten: t; P-Region 1: t+x; P-Region 2: t; t,x ∈ IN Dabei sei œ P-Region 1 die P-Region, die durch den kleinen Winkel der Zacke eingeschlossen wird, und P-Region 2 die P-Region, die durch den großen Winkel eingeschlossen wird (vergl. 4.24). Der Fall (t,t,t) ist nicht möglich, da ein solcher Polygonabschnitt nicht nötig ist und spätestens bei der Anpassung der Polygone eliminiert würde. Die beiden Fälle unterscheiden sich nur durch die Anordnung der Tiefenwerte der beiden P-Regionen. Der Fall, daß P-Region 1 den Tiefenwert t besitzt, wird im folgenden als t-Fall bezeichnet. Der Fall, daß P-Region 2 den Tiefenwert t besitzt, also P-Region 1 den Tiefenwert t+x, wird im folgenden als t+x-Fall bezeichnet. Zur möglichst vollständigen Untersuchung muß außerdem das Auftreten von Zacken in allen möglichen Kontexten betrachtet werden. Hierbei ist jedoch zu berücksichtigen, daß viele dieser Fälle relativ unwahrscheinlich sind. 4.2. AUFGABEN DER P-VERNETZUNG 69 Zacken können nebeneinanderliegen (Abb. 4.25 (i)) oder einzeln auftreten (Abb. 4.25 (ii)). Sie können frei liegen oder nahe bei nicht benachbarten PKnoten des gleichen (Abb. 4.25 (iii)) oder eines weiteren Polygonabschnitts liegen. Dies gilt für einzelne Zacken und für mehrere benachbarte Zacken. Dabei sollen die Begriffe wie folgt festgelegt sein: (i) (ii) (iii) Abbildung 4.25: Verschiedenes Auftreten von Zacken Definition 59. Zwei nebeneinanderliegende Zacken Z1 und Z2 haben entweder einen gemeinsamen P-Knoten oder eine gemeinsame P-Kante. Es gilt dann ne(Z1 ,Z2 ). Eine Zacke Z liegt nahe eines nicht benachbarten P-Knoten K, wenn der Abstand eines P-Knotens von Z zu K nicht größer als 4/3*DKL ist. Es gilt dann na(Z,K). Der P-Knoten K kann, muß aber nicht zu einer Zacke gehören. Es ergeben sich für bis zu zwei Polygonabschnitte daraus folgende Kombinationen. Tabelle 4.3. F all Zacke(n) N achbarschaf t P olygonabschnitt(e) (i) einzeln f reiliegend (ii) nebeneinanderl. f reiliegend (iii) einzeln nahebei gleichem (iv) einzeln nahebei unterschiedl. (v) nebeneinanderl. nahebei gleichem (vi) nebeneinanderl. nahebei unterschiedl. Bemerkung 4.5. Ausreißerregionen (vergl. [Schu97] und Abb. 3.15 (ii) S. 28) werden durch Fall (iii) Tabelle 4.3 berücksichtigt. 70 KAPITEL 4. DIE P-VERNETZUNG: PROBLEME UND AUFGABEN Für mehr als zwei Polygonabschnitte sind noch beliebige Kombinationen dieser Fälle vorstellbar, die aber aufgrund der geringen Wahrscheinlichkeit ihres Auftretens hier nicht berücksichtigt werden. Zacken können aufgrund ihrer Winkel leicht detektiert werden und Nachbarschaften leicht festgestellt werden. Die Einordnung der einzelnen Fälle aus Tabelle 4.3 (Schema 4.31 (ii) c)) geht ihrer Vernetzung (Schema 4.31 (ii) f)g)) voraus. 4.2.2 Schmale Regionen Schmale Regionen stellen nicht notwendigerweise kritische Bereiche dar, da sie ggfs. ausschließlich mit P-Vierecken vernetzt werden können. Sie können aber - auch als nicht kritische Bereiche - für die Vernetzung und Minimierung von Zerlegungsdreiecken größere Probleme darstellen. Eine sorgfältige Betrachtung und Untersuchung der möglich auftretenden Fälle ist nötig. Zum einem muß die Vernetzung der schmalen Region selbst, zum anderen muß die Vernetzung der Übergänge zu breiteren Bereichen untersucht werden. Außerdem muß die Angrenzung an Schnittknoten, also an Ecken, beachtet werden. Es ist möglich, daß eine schmale Region mit vielen Zerlegungsdreiecken vernetzt werden muß. Durch die direkte Nachbarschaft der Zerlegungsdreiecke zu anderen P-Regionen muß der Umgang mit solchen P-Dreiecken vorsichtig vonstatten gehen. Zu schmalen Regionen können auch die Fälle (v), (vi) aus Tabelle 4.3 zählen. D.h., daß schmale Regionen auch Zacken enthalten können. In diesen Fällen ist die Vernetzung besonders sensitiv durchzuführen. In Abb. 4.26 sind zwei schmale Regionen dargestellt, deren beide Polygonteile durch wenige P-Kanten miteinander verbunden sind. Ein solcher Fall tritt z.B. auf, wenn die beiden Polygonteile zu einem Polygon gehören. (i) (ii) Abbildung 4.26: Schmale Regionen 4.2. AUFGABEN DER P-VERNETZUNG 71 Definition 60. Eine Kehrtwende an einer schmalen Region ist ein Teil eines Polygonzugs, der am Ende einer schmalen Region am P-Knoten K beginnt und an der gleichen schmalen Region an dem dem P-Knoten K gegenüberliegenden Knoten J endet und dessen P-Kanten nicht zur schmalen Region gehören (vergl. Abb. 4.26). Die Vernetzung im Fall Abb. 4.26 (ii) stellt keine besondere Anforderung dar. Sind die beiden Polygonteile durch weniger als drei P-Kanten (vergl. Abb. 4.26 (i)) miteinander verbunden, so muß dieser Bereich gesondert betrachtet werden. Die Vernetzung benachbarter schmaler Regionen geschieht sinnvollerweise sukzessiv bezüglich ihrer Nachbareigenschaften. Auf diese Weise können P-Dreiecke, die beim vernetzten Nachbarn auftreten, bei der Vernetzung der aktuellen schmalen Region berücksichtigt werden. Die P-Kanten, die an eine schmale Region grenzen (vergl. 4.27), gehören meistens zu einem breiteren Teil der P-Region, zu dem auch die schmale Region gehört (Übergangsbereich ). t t t t t+x t t t t t+x t+x t t t t+x t t t t+x t (i) (ii) Abbildung 4.27: Übergangsbereich bei schmalen Regionen Auch hier können Konflikt- oder Zerlegungsdreiecke entstehen, was abhängig von den Tiefenwerten der beteiligten Polygonabschnitte und von einer möglichen Zerlegung der Elemente der schmalen Region ist. Schmale Regionen, deren P-Knoten auf den Polygonteilen gleichen Tiefenwert besitzen, der kleiner ist als der Tiefenwert der P-Region (Abb. 4.28(a)), 72 KAPITEL 4. DIE P-VERNETZUNG: PROBLEME UND AUFGABEN machen keinen Sinn und sollen schon bei der Anpassung der P-Regionen nicht in die P-Regionenliste aufgenommen werden (Abb. 4.28(b)). Bei der Vernetzung solcher schmalen P-Regionen würden nur P-Elemente mit Tiefenwert der Polygonteile, also auch mit Tiefenwert der benachbarten P-Regionen enstehen. t t t t t t t t+x t t t t t t t a) t t+x t t t t t t+x t t b) Abbildung 4.28: a) Nicht-notwendige schmale P-Region b) Lösung ohne die schmale Region Die Vernetzung im Bereich von schmalen Regionen, die durch einen Schnitt ihrer Polygonteile beendet werden, geschieht wie folgt: Die schmale Region ist klar festgelegt (bis ein oder zwei P-Kanten vor dem Schnittknoten, vergl. Seite 27) und wird wie eine solche vernetzt. Daran werden Übergangselemente generiert. Die Ecke wird als solche vernetzt. Alle Elemente müssen aneinanderangepaßt werden. Es können dadurch evtl. relativ schlechte Elemente entstehen, was aber zur Einhaltung der Strategie, zur Vermeidung von Konfliktvierecken und somit zur Vermeidung vieler zu zerlegender Elemente im Erstnetz in Kauf genommen wird. Nahe beieinanderliegende Polygonteile, von denen ein Polygonteil auf dem Ein- oder Auslaufpolygon liegt, zählen nicht zu den schmalen Regionen (vergl. Seite 27). Verläuft entlang des Ein- bzw. Auslaufpolygons kein Zerlegungspfad, so kann eine Vernetzung wie in einer breiteren Region stattfinden, wobei die P-Knoten des Ein- bzw. Auslaufpolygons wie P-Knoten, die innerhalb einer Region liegen, integriert werden. Dies ist möglich, da sie den gleichen Tiefenwert besitzen wie die P-Knoten innerhalb der Region. Verläuft entlang des Ein- bzw. Auslaufpolygons ein Zerlegungspfad, so können diese Bereiche auch wie schmale Regionen vernetzt werden. 4.2. AUFGABEN DER P-VERNETZUNG 73 Da die Vernetzung schmaler Regionen sehr aufwendig ist und sensitiv durchgeführt werden muß, geschieht sie vor der Vernetzung der Zacken (Schema 4.31 (ii) d)). Es ist sinnvoll, die Vernetzung des Übergangsbereichs direkt nach der Vernetzung der schmalen Regionen durchzuführen (Schema 4.31 (ii) e)). 4.2.3 Anpassung und Zerlegungspfade Die Richtung, in die ein Zerlegungspfad von einem Konfliktdreieck aus verläuft, ist nach Lemma 4.10 immer die P-Kante des Konfliktdreiecks, deren PKnoten die größten Tiefenwerte besitzen. Entweder zeigt diese P-Kante ins Regioninnere oder, wie es bei der Vernetzung der Ecken häufig eintritt, in die Richtung der Randelemente. Die an diese P-Kanten zu generierenden Zerlegungspfade sollen wieder auf Konfliktdreiecke oder Zerlegungsdreieckkandidaten treffen. Die Zerlegungspfade, die entlang der Kontur aus Randelementen generiert werden, beginnen und enden jeweils an einem Zerlegungsdreieck, das ebenfalls Randelement ist. Zwischen den Zerlegungsdreiecken sollen möglichst gute P-Vierecke entstehen, die mit genau zwei benachbarten P-Knoten auf der Kontur liegen, also keine Konfliktvierecke sein können. Dazu werden PKanten mit Durchschnittskantenlänge auf den Winkelhalbierenden der Winkel zweier benachbarter P-Kanten der Kontur generiert (vergl. Abb. 4.29): Definition 61. Ein Randelement erfüllt das ±90◦ -Kriterium, wenn für die Winkel αi zwischen den P-Kanten (des Randelements), die mit genau einem P-Knoten auf der Kontur liegen, und der Kontur gilt: 90◦ − ² < αi < 90◦ + ² mit ²=90◦ -γ für das γ aus Definition 57 (vergl. Abb. 4.29). 90 ε 90 ε Abbildung 4.29: ±90◦ -Kriterium Die P-Vierecke der Zerlegungspfade entlang einer Kontur sollen das ±90◦ Kriterium erfüllen. Deswegen werden zwischen die Zerlegungsdreiecke Viereckreihen generiert: Definition 62. Eine Viereckreihe ist eine nicht erweiterbare Reihe von benachbarten Randelementen, die nicht an einer Kante einer Ecke liegen und 74 KAPITEL 4. DIE P-VERNETZUNG: PROBLEME UND AUFGABEN aus P-Vierecken bestehen, die das ±90◦ -Kriterium erfüllen. (Die Viereckreihe entsteht durch Erzeugen von P-Kanten mit Durchschnittkantenlänge auf den Winkelhalbierenden je zweier benachbarter Konturkanten.) (vergl. Abb. 4.30). t t t t+x t t (i) t t t t t t (ii) Abbildung 4.30: Viereckreihen Für die Winkel βi zwischen den noch nicht vernetzten P-Kanten der Kontur, an der eine Viereckreihe generiert werden soll, muß also gelten: 180 − 2² ≤ βi ≤ 180 + 2². Diese Bedingung ist für alle Kantenpaare, die keine P-Kante einer Zacke oder Ecke enthalten, erfüllt! Für die Kantenpaare, die (genau) eine P-Kante einer (bereits vernetzten) Zacke oder Ecke enthalten, muß ggfs. das ±90◦ -Kriterium noch erfüllt werden. Dies geschieht durch eine an die P-Elemente der Zacke/Ecke angepaßte Vernetzung der Anschlußknoten (s. Def. 58) mit Anpassungselementen (Schema 4.31 (iii) a)). Anpassungselemente werden an die bereits generierten Elemente der Zacke/Ecke generiert und sorgen für die Erfüllung des ±90◦ Kriteriums. Liegen z.B. zwischen zwei Schnittknoten nur ein oder zwei PKnoten, so muß die Anpassung der an den zugehörigen Ecken generierten P-Elemente gesondert behandelt werden (Schema 4.31 (iii) b)). Nach der Anpassung wird die Generierung der Zerlegungspfade entlang der Konturen mittels Viereckreihen vervollständigt (Schema 4.31 (iv) a)). Nach der Vernetzung der Zerlegungspfade entlang der Kontur findet die Vernetzung von Zerlegungspfaden innerhalb der P-Regionen statt (Schema 4.31 (iv) b)). 4.2.4 Übersicht Im nächsten Kapitel werden die Probleme der P-Vernetzung im Detail behandelt. Deswegen ist hier eine komplette Übersicht und Reihenfolge der einzelnen Aufgaben dargestellt. 4.2. AUFGABEN DER P-VERNETZUNG 75 Vernetzung der Ecken a) Detektion aller Zacken Ermittlung von schmab) len Regionen mittels Gitterverfahren (i) c) Überprüfung des Kontextes der Zacken und Einordnung d) Vernetzung der schmalen Regionen mit und ohne Zacken e) Vernetzung der Übergangsbereiche f) Vernetzung nahe beieinanderliegender Zacken zweier Polygonabschnitte Vernetzung der Ecken Vernetzung von kritischen Bereichen (ii) und schmalen Regionen III P-Vernetzung (iii) Anpassung (iv) Generierung von Zerlegungspfaden (v) Vernetzung übriger Gebiete (vi) g) a) Smoothing Vernetzung aller restlichen Zacken gegebenenfalls Anpassung durch Anpassungselemente b) Anpassung für nahe beieinanderliegende Elemente a) Vernetzung der restlichen Randelemente durch Viereckreihen b) Generierung aller Zerlegungspfade innerhalb der P-Regionen Vernetzung aller übrig gebliebenen Bereiche der P-Regionen Smoothing der P-Netze aller P-Regionen Abbildung 4.31: Detaillierte Auflistung für die P-Vernetzung (vergl. Schema 3.20 III) 76 KAPITEL 4. DIE P-VERNETZUNG: PROBLEME UND AUFGABEN Kapitel 5 Lösungen zur P-Vernetzung Bemerkung: Da dieses Kapitel sich ausschließlich mit der P-Vernetzung beschäftigt, werden der Einfachheit halber die Begriffe : P-Knoten, P-Kante, P-Viereck, P-Dreieck, P-Element und P-Vernetzung durch die Begriffe Knoten, Kante, Viereck, Dreieck, Element und Vernetzung ersetzt. In diesem Kapitel werden gemäß Schema 4.31 Seite 75 die lokalen Vernetzungen diskutiert. In Unterkapitel 5.1 wird zunächst die Generierung von Elementen an den Ecken beschrieben (Schema 4.31 (i)). Die Detektion aller Zacken und schmalen Regionen sowie die Überprüfung des Kontextes der Zacken (Schema 4.31 (ii) a), b) c)) können mittels Gitterverfahren (s. S. 68) stattfinden. Anschließend wird die Generierung von Elementen in schmalen Regionen und an deren Übergängen in Unterkapitel 5.2 diskutiert (Schema 4.31 (ii) d)e)). Es folgt die Beschreibung zur Generierung von Elementen an Zacken, die nicht innerhalb einer schmalen Region liegen (Schema 4.31 (ii) f)g), Unterkapitel 5.3). Die Generierung von Anpassungselementen und die Vernetzung von Anschlußknoten (vergl. Schema 4.31 (iii) a)b)) wird in Unterkapitel 5.4 beschrieben. In Unterkapitel 5.5 wird schließlich die Generierung von Zerlegungspfaden innerhalb der Regionen beschrieben (Schema 4.31 (iv) b)). Die Generierung von Zerlegungspfaden an den Konturen mittels Viereckreihen (Schema 4.31 (iv) a)) wurde bereits in Abschnitt 4.2.3 diskutiert. Schließlich wird in Unterkapitel 5.6 die Fertigstellung des P-Netzes angesprochen (Schema 4.31 (v) (vi)). Zum Abschluß der einzelnen Unterkapitel wird die Vernetzung jeweils auf das begleitende Wurmbeispiel oder einen Ausschnitt davon angewendet. 77 78 5.1 KAPITEL 5. LÖSUNGEN ZUR P-VERNETZUNG Vernetzung der Ecken Zur Vernetzung der Ecken (Schema 4.31 (i)) werden zunächst alle möglich auftretenden Tiefenwertkombinationen der Knoten und der anliegenden Region der Ecken untersucht. Anschließend werden bezüglich der Anforderungen an Zerlegungspfade sinnvolle Strategien zur Vernetzung diskutiert und schließlich die Vernetzung für alle möglich auftretenden Fälle vorgestellt. 5.1.1 Tiefenwertkombinationen der Ecken Im folgenden wird untersucht, welche Tiefenwertkombinationen an Ecken bezüglich ihrer Knoten und der Region, an der beide Kanten der Ecke liegen, möglich sind. Dazu müssen alle möglichen Tiefenwertkombinationen der Regionen, die an einen Schnittknoten grenzen, ermittelt werden. Die Detektion aller Tiefenwertkombinationen der an einen Schnittknoten angrenzenden Regionen ermöglicht die Ermittlung aller Tiefenwertkombinationen der Knoten und der anliegenden Region an Ecken. Wenn alle Fälle von Tiefenwertkombinationen an den Ecken bekannt sind, kann die Vernetzung der Ecken lokal durch Templatetechnik stattfinden! Dies fördert die Automatisierung der Vernetzung und ergibt für diesen Teil der Vernetzung einen bezüglich der Anzahl der Ecken linearen Zeitaufwand. Die Detektion aller Tiefenwertkombinationen findet mit Hilfe einer Unterscheidungstabelle statt (vergl. Tabelle 5.1): Zur Ermittlung aller Tiefenwertkombinationen wird zwischen dem Schnitt und der Berührung zweier Polygone unterschieden. Schnittpolygone trennen Regionen voneinander, deren Tiefenwerte sich um einen Summand a unterscheiden, d.h. die zugehörigen Polygonabschnitte trennen Regionen mit den Tiefenwerten t und t+a voneinander. I.a. gilt a=1. Verallgemeinernd wird angenommen, daß t, a ∈ IN gilt. Entsprechendes gilt für die Verfeinerungspolygone; ihre zugehörigen Polygonabschnitte trennen Regionen mit den Tiefenwerten t und t+b (b ∈ IN ). Uferpolygone trennen Regionen von einem Bereich, dem der Tiefenwert null zugeordnet wird. Ein- und Auslaufpolygone trennen Regionen von Gebieten, denen der gleiche Tiefenwert wie der Region zugeordnet würde. 5.1. VERNETZUNG DER ECKEN 79 Tabelle 5.1. Schnitt miteinemKnoten alsT eileinesP olygonzugs Schnittp. − V erf p. 1)(i)a) 1)(i)b) Schnittp. − U f erp. 2)(i)a) 2)(i)b) Schnittp. − Ein − /Auslauf p. 3)(i)a) 3)(i)b) V erf p. − U f erp. 4)(i)a) 4)(i)b) V erf p. − Ein − /Auslauf p. 5)(i)a) 5)(i)b) U f erp. − Ein − /Auslauf p. 6)(i)a) 6)(i)b) Berührung miteinemKnoten alsT eileinesP olygonzugs Schnittp. − V erf p. 1)(ii)a) 1)(ii)b) Schnittp. − U f erp. 2)(ii)a) 2)(ii)b) Schnittp. − Ein − /Auslauf p. 3)(ii)a) 3)(ii)b) V erf p. − U f erp. 4)(ii)a) 4)(ii)b) V erf p. − Ein − /Auslauf p. 5)(ii)a) 5)(ii)b) U f erp. − Ein − /Auslauf p. 6)(ii)a) 6)(ii)b) Es werden nun für jeweils zwei Polygontypen gemäß Tabelle 5.1 die einzelnen Möglichkeiten für einen Schnitt und anschließend für eine Berührung diskutiert. Es müssen jeweils die in der linken Spalte in Tabelle 5.1 aufgelisteten Polygontypenpaare betrachtet werden. Bei einem Schnitt (in einem Knoten) zwischen Verfeinerungspolygon und Schnittpolygon (vergl. Tabelle 5.1 1) (i) a)) liegen am Schnittknoten vier Regionen mit den Tiefenwerten t, t+a, t+b und t+a+b an. Für die Lage dieser Regionen ist der in Abb. 5.1 (i) dargestellte Fall bis auf Spiegelung eindeutig. t t t t+b t+a t+b t+a t+b t+a t+a+b t+a+b t+a+b (i) (ii) (iii) Abbildung 5.1: Schnitt eines Schnittpolygons mit einem Verfeinerungspolygon 80 KAPITEL 5. LÖSUNGEN ZUR P-VERNETZUNG Es ist möglich, daß ein Verfeinerungs- und ein Schnittpolygon teilweise aufeinanderliegen und der Schnitt zwischen einem Schnittpolygon und einem Verfeinerungspolygon einen Polygonabschnitt umfaßt (vergl. Tabelle 5.1 1) (i) b)). Hierfür kommen die in Abb. 5.1 (ii) und (iii) dargestellten Fälle in Betracht. Beim Schnitt eines Verfeinerungspolygons mit einem Uferpolygon (vergl. Tabelle 5.1 4) (i) a)) entsteht bis auf Spiegelung ein Fall wie in Abb. 5.2 (i). t+b t t t t t 0 0 0 (i) t+a/b 0 t+a/b (ii) (iii) Abbildung 5.2: Weitere Schnittkombinationen Beim Schnitt eines Schnittpolygons oder eines Verfeinerungspolygons mit einem Ein- oder Auslaufpolygon (vergl. Tabelle 5.1 3) + 5) (i) a)) entsteht bis auf Spiegelung ein Fall wie in Abb. 5.2 (ii). Beim Schnitt eines Uferpolygons mit einem Ein- oder Auslaufpolygon (vergl. Tabelle 5.1 6) (i) a)) entsteht bis auf Spiegelung ein Fall wie in Abb. 5.2 (iii). Der Schnitt eines Uferpolygons mit einem Schnittpolygon (vergl. Tabelle 5.1 2) (i) a) + b)) ist aufgrund der Konstruktion der Polygone nicht möglich. Ein Schnitt mit einem Berandungspolygon als Teil eines Polygonzugs ist aufgrund der Konstruktion nicht möglich, weswegen die Fälle 3), 4), 5) und 6) (i) b) aus Tabelle 5.1 nicht untersucht werden müssen. Damit sind alle Fälle des Schnitts diskutiert worden. Die Tiefenwertkombinationen für die Berührung eines Verfeinerungspolygons mit einem Schnittpolygon/Berandungspolygon sind vielfältiger, da hier die Anordnung der Tiefenwerte der Regionen die durch Schnitt- und Verfeinerungspolygone getrennt sind, nicht durch Spiegelung aufgehoben wird. Bei einem Berandungspolygon ist die Anordnung der Tiefenwerte festgelegt, da der Tiefenwert des Außenbereichs festliegt 5.1. VERNETZUNG DER ECKEN 81 Es werden zunächst kurz die Fälle mit einem Berührungspunkt vorgestellt. Anschließend werden diese Fälle für längere Berührungsabschnitte betrachtet. Für die Schnitt- und Verfeinerungspolygone resultieren für einen Berührungspunkt (vergl. Tabelle 5.1 1) (ii) a)) die vier in Abb. 5.3 dargestellten Fälle. t+a+b t+b t+a t+a+b (i) t+b t+a+b t t+a t t+a+b t+b t+a (ii) (iii) t t+a t+b t (iv) Abbildung 5.3: Berührung eines Schnittpolygons mit einem Verfeinerungspolygon In der Darstellung Abb. 5.3 wird das links gezeichnete Polygon jeweils als Schnittpolygon und das rechts gezeichnete Polygon als Verfeinerungspolygon angenommen. In Abb. 5.3 (i) liegt der größere Tiefenwert bezüglich des Schnittpolygons rechts, der größere Tiefenwert bezüglich des Verfeinerungspolygons links. In Abb. 5.3 (ii) liegen jeweils beide größten Tiefenwerte links. In Abb. 5.3 (iii) liegen jeweils beide größten Tiefenwerte rechts. In Abb. 5.3 (iv) liegt der größere Tiefenwert bezüglich des Schnittpolygons links, der größere Tiefenwert bezüglich des Verfeinerungspolygons rechts. Da sowohl a ∈ IN als auch b ∈ IN gilt, sind die Fälle Abb. 5.3 (ii) und (iii) bis auf Spiegelung identisch. Es verbleiben die drei zu unterscheidenen Fälle Abb. 5.3(i),(ii) und (iv). Für die Berührung zwischen einem Uferpolygon und einem Verfeinerungspolygon gibt es die in Abb. 5.4 (i) dargestellten Fälle. In Abb. 5.4 (i) a) liegt der zu verfeinernde Bereich oberhalb des Verfeinerungspolygons (, das oberhalb des Uferpolygons liegt), in 5.4 (i) b) liegt der zu verfeinernde Bereich zwischen Verfeinerungspolygon und Uferpolygon. Für die Berührung zwischen einem Ein- oder Auslaufpolygon und einem Schnitt- oder Verfeinerungspolygon (vergl. Tabelle 5.1 3)+5) (ii) a)) gibt es die in 5.4 (ii) dargestellten Fälle. In 5.4 (ii) a) liegt der zu verfeinernde Bereich links des Schnitt- bzw. Verfeinerungspolygons (, das links des Ein- bzw. Auslaufpolygons liegt), in 82 KAPITEL 5. LÖSUNGEN ZUR P-VERNETZUNG t t+b t t t t+b t+b 0 0 (i) a) (i) b) t+a/b t+a/b t t t (ii) a) t t+a/b (ii) b) Abbildung 5.4: Weitere Berührungskombinationen 5.4 (ii) b) liegt der zu verfeinernde Bereich zwischen Schnitt- bzw. Verfeinerungspolygon und Ein- bzw. Auslaufpolygon. Berührungen zwischen Schnitt- oder Uferpolygon und Ein- oder Auslaufpolygon (vergl. Tabelle 5.1 2)+6) (ii)) sind aufgrund ihrer Konstruktion nicht möglich. Da eine Berührung zwischen zwei Polygonen sich nicht auf einen Knoten beschränken muß, sind für jeden dieser Fälle auch längere Berührungsabschnitte zu berücksichtigen (vergl. Abb. 5.5). Die Unterscheidung von einzelnen Berührungknoten und Berührungsabschnitten zweier sich berührender Polygone ist notwendig, da jeweils unterschiedliche Kombinationen der Tiefenwerte der Ecken entstehen können. Für die Berührung zwischen einem Schnittpolygon und einem Verfeinerungspolygon (vergl. Tabelle 5.1 1) (ii) b)) resultieren die in der Abb. 5.5 dargestellten Fälle. Für die Berührung zwischen einem Uferpolygon und einem Verfeinerungspolygon (vergl. Tabelle 5.1 4) (ii) b)) resultieren die in der Abb. 5.6 dargestellten Fälle. Für die Berührung zwischen einem Ein- oder Auslaufpolygon und einem Schnitt- bzw. Verfeinerungspolygon (vergl. Tabelle 5.1 3)+5) (ii) b)) resultieren die in der Abb. 5.7 dargestellten Fälle. Der in Abb. 5.5 (iii) b) dargestellte Fall wird so nicht auftreten, da bei der Anpassung der Polygone und Zusammenfassung zu Regionen der Polygonteil zwischen den beiden Schnittknoten eliminiert wird, weil er zwei Regionen mit gleichem Tiefenwert voneinander trennt. Für a=b gilt gleiches bei den Fällen aus Abb. 5.1 (ii) und Abb. 5.5 (i) b). Für Abb. 5.7 (ii) b) gilt dies nicht, da der entsprechende Polygonabschnitt hier ein Berandungspolygon darstellt, das nicht entfernt werden darf. 5.1. VERNETZUNG DER ECKEN t+a+b t+a t+b 83 t+a+b t+a t+b t+a+b t+a t t+a t+a+b t+a t+a t+a+b (i) a) (i) b) t t t+a t+a t+a+b t t+a (ii) a) (ii) b) t+a t (iii) a) t (iii) b) Abbildung 5.5: Berührungsmöglichkeiten für Abb.5.3 Folgerung 5.1. Die in Abb. 5.1-Abb. 5.7 dargestellten Fälle sind bis auf Spiegelung vollständig bezüglich des Schnitts und der Berührung zweier unterschiedlicher Polygone. Beweis. Geht aus der Diskussion und Tabelle 5.1 hervor. Die Ecken für das Wurmbeispiel (vergl. Abb. 5.24) sind ausschließlich durch die Fälle 1)(i)a), 3)(i)a), 4)(i)a) 6)(i)a) und 1)(ii)b) aus Tabelle 5.1 entstanden. (Ein Polygonabschnitt (im oberen Teil), der eine Berührung eines Verfeinerungspolygons mit einem Schnittpolygon darstellte, trennte zwei Regionen mit gleichem Tiefenwert voneinander (vergl. Abb. 3.13 und 3.14) wurde deswegen entfernt und es entstand eine Region. Die Schnittknoten wurden dabei zu Knoten eines Polygonabschnitts, der teilweise aus einem Schnittpolygon und teilweise aus einem Verfeinerungspolygon entsteht.) Zur Ermittlung aller möglich auftretenden Tiefenwertkombinationen der Ecken aus den in den Abbildungen 5.1-5.2 und 5.5-5.7 dargestellten Fällen müssen den Knoten ihre Tiefenwerte zugeordnet werden. Die eindeutige Zuordnung (vergl. auch Abschnitt 4.1.1) setzt eine topologische Sortierung der Größen voraus: Zur deutlicheren Darstellung werden a 84 KAPITEL 5. LÖSUNGEN ZUR P-VERNETZUNG t+b t+b t t t t t t t+b t+b t+b t+b 0 0 0 0 (i) a) (i) b) (ii) a) (ii) b) Abbildung 5.6: Weitere Berührungskombinationen t t+a/b t t+a/b t+a/b t t+a/b t t t t t t t+a/b t (i) a) (i) b) t+a/b (ii) a) (ii) b) Abbildung 5.7: Weitere Berührungskombinationen und b durch x und y mit x, y ∈ IN ersetzt. Falls a<b gilt: Setze x=a, x+y=b; falls a=b gilt: Setze x=a=b. Falls a>b gilt: Setze x=b, x+y=a. Falls nur a oder nur b auftritt, können sie jeweils durch x ersetzt werden. Den Knoten können dann nach der im Abschnitt 4.1.1 beschriebenen Strategie Tiefenwerte zugeordnet werden. Z.B. ergeben sich für den Fall aus Abb. 5.5 (i) b) für a<b die Tiefenwertkombination in Abb. 5.8 (a), für a=b die Tiefenwertkombination in Abb. 5.8 (b) und für a>b die Tiefenwertkombination in 5.8 (c). Es wird hier vorausgesetzt, daß zwischen zwei Schnittknoten wenigstens ein weiterer Knoten liegt. (Die Vernetzung zweier direkt benachbarter Schnittknoten wird in Abschnitt 5.1.8 gesondert behandelt.) Die Ersetzung kann auf diese Weise mit allen der in den Abb. 5.1-5.2 und 5.5-5.7 dargestellten Fällen vorgenommen werden. Für die Ecken resultieren daraus die in Abb. 5.9 dargestellten Tiefenwertkombinationen. Für die beiden Knoten, die nicht Schnittknoten sind, wird die Reihenfolge ihrer Tiefenwerte nicht berücksichtigt. Eine Vernetzung der jeweils anderen Reihenfolge ist lediglich eine Spiegelung. Ein gleicher Summand bei jedem Tiefenwert wird weggelassen, da t, a, b, x, y ∈ IN gilt. Da 5.1. VERNETZUNG DER ECKEN t+2x+y t+x+y t+2x t+x t+x t+x t+x+y t+2x+y t+x t+x t+x+y t+x t+x t+x t+x t+x t+x+y 85 t+x t+x t+x t+x t+x t+x t+x t+xt+x+y t+x t+x t+x t+x+y t+2x+y t+2x t+2x+y (a) (b) (c) Abbildung 5.8: Topologische Sortierung für Abb. 5.5 (i) b) x, y ∈ IN gilt, werden Fälle, die durch den Tausch von x und y identisch sind, nur einmal aufgeführt. Lemma 5.1. Die in Abb. 5.9 dargestellten Tiefenwertkombinationen sind bis auf Spiegelung vollständig. Beweis. Folgt aus der vorherigen Diskussion und aus Folgerung 5.1. Da t, x, y ∈ IN gilt und für die Vernetzung der Ecken die Tiefenwertkombinationen der Knoten und der anliegenden Region nur auf eine topologische Ordnung dieser differenziert werden müssen, können die vierzehn Fälle aus Abb. 5.9 auf sieben Tiefenwertkombinationen reduziert werden, wobei t ∈ IN0 und x, y ∈ IN gilt. Folgerung 5.2. Es sei t, x, y ∈ IN . Dann sind die in Abb. 5.10 dargestellten Tiefenwertkombinationen bezüglich einer topologischen Sortierung der Tiefenwerte bis auf Spiegelung vollständig. Diese Tiefenwertkombinationen werden im folgenden genauer untersucht. Neben der Unterscheidung der Typen (vergl. Bezeichnung in Abb. 5.10) zur Vernetzung muß pro Typ eine Unterscheidung des anliegenden Winkels stattfinden. Dazu findet eine Einordnung der Winkel in fünf Kategorien statt. 86 KAPITEL 5. LÖSUNGEN ZUR P-VERNETZUNG t 0 t t 0 0 (i) t 0 0 t t+x t t t+x (vii) t+x t+x (xi) t+x t t+2x t+x (xii) t t t 0 (iii) (ii) (vi) t t t+x t t+x t+x t t t t+x (viii) t t+2x+y t t+x (xiii) t t t (iv) t+2x t+x t+x t+x+y t+x (ix) t+x t t t (v) t t+2x+y t t+x (x) t+2x+y t+x+y (xiv) Abbildung 5.9: Aus den Schnitten und Berührungen resultierende Fälle für die Ecken Tabelle 5.2. Kategorie : ±α ...(◦ ) > α α ≥ ...(◦ ) ±20 0 45 ±90 45 135 ±180 135 225 ±270 225 315 ±340 315 360 Die kleineren Winkel sind sehr viel wahrscheinlicher als die größeren Winkel, da an einem Schnittknoten drei oder vier Winkel anliegen und diese zusammen 360◦ ergeben müssen. Dies kommt der Tatsache entgegen, daß bei kleineren Winkeln i.a. weniger Konfliktdreiecke erzeugt werden müssen. Die Vernetzung der Ecken wird pro Winkelkategorie pro Typ diskutiert. Dabei wird zunächst davon ausgegangen, daß die nicht mittig liegenden Kno- 5.1. VERNETZUNG DER ECKEN t t t t (i) Typ 1 t+x t+x t t+x (v) Typ 5 t t+x 87 t t+x t t (ii) Typ 2 t t+x (iii) Typ 3 t+x t+x t+x+y t t+x (vi) Typ 6 t t+x+y t t+x (iv) Typ 4 t+2x+y t t+x+y (vii) Typ 7 Abbildung 5.10: Aus Abb. 5.9 resultierende Tiefenwertkombinationen/Typen ten der Ecken keine Schnittknoten sind. Anschließend wird auf die Vernetzung zweier nebeneinanderliegender Schnittknoten eingegangen. Da durch die Vernetzung der Ecken Konflikt- und Zerlegungselemente entstehen können, sollen vorher noch einige grundlegende, die Vernetzung beeinflussende Überlegungen diskutiert werden. 5.1.2 Anforderung an Zerlegungspfade Wenn Zerlegungspfade an beliebigen Kanten einer Ecke mittels eines Zerlegungsdreiecks in eine andere Region gelangen können, so erhöht dies die Unübersichtlichkeit der Vernetzung. Da an manchen Kanten jedoch zwangsweise Konfliktdreiecke und damit Zerlegungsdreiecke, die einen Zerlegungspfad (tieferen Zerlegungslayers) weiterleiten können, generiert werden müssen, läßt sich ggfs. die Weiterleitung eines Zerlegungspfades in eine benachbarte Region nicht immer vermeiden. Es soll jedoch über Kanten von Ecken, an denen von beiden Seiten nicht notwendigerweise ein Zerlegungsdreieckkandidat generiert werden muß, kein Zerlegungspfad geführt werden. Das bedeutet, daß an diesen Kanten keine Zerlegungsdreieckkandidaten generiert werden dürfen. Zum Auffinden solcher Kanten wird zwischen Kanten mit Knoten gleichen Tiefenwerts und Kanten mit Knoten unterschiedlicher Tiefenwerte unterschieden. Lemma 5.2. Gegeben sei eine Kante mit Knoten unterschiedlichen Tiefenwertes, die nicht zum Anfang oder Ende einer schmalen Region gehört und nicht auf dem Berandungspolygon liegt. An dieser Kante muß wenigstens ein Zerlegungsdreieck generiert werden. 88 KAPITEL 5. LÖSUNGEN ZUR P-VERNETZUNG Beweis. Wie aus Abschnitt 4.1.1 hervorgeht, können solche Kanten nur an Ecken auftreten. Da sie nach Voraussetzung nicht auf einem Berandungspolygon liegen, müssen sie zu genau zwei Ecken gehören. Es seien Region 1 und Region 2 die beiden Regionen, an die die Kante grenzt. Die Kante besitzt einen Knoten S, der Schnittknoten ist und einen Knoten A eines Polygonabschnitts (vergl. Abb. 5.11 a)). B Region 1 A S C Region 2 Abbildung 5.11: Skizze zum Beweis Es sei T(S)=t und T(A)=t+x mit t, x ∈ IN . (Es muß T(S)<T(A) gelten, da S Schnittknoten ist und A nicht.) Dann muß für genau eine anliegende Region (œ Region 1) T(Region 1)=t+x gelten, denn sonst kann nicht T(A)=t+x gelten. Es gilt T(Region 2)=t+x+y>t+x mit y ∈ IN , da sonst die Kante SA nicht existieren würde (vergl. Abb. 5.11 b)). Region 2 ist immer eine echte Region, gehört also nicht zum Außenbereich. Es wird gezeigt, daß in Region 2 immer ein Konfliktdreieck an der Kante SA generiert werden muß. Es muß T(C)≥t gelten, da sonst S einen kleineren Tiefenwert besitzen würde. 1. Fall: T(C)>t (vergl. Abb. 5.11 c)): Alle Elemente, die an der Kante SA generiert werden können, sind nach Lemma 4.5 und Lemma 4.4 Konfliktelemente. Auch das Dreieck SAC. D.h. es muß hier ein Konfliktdreieck generiert werden. 2. Fall: T(C)=t (vergl. Abb. 5.11 d)): Sei pA der Polygonabschnitt, auf dem A liegt, pC der Polygonabschnitt, auf dem C liegt. Das Dreieck SAC ist kein Konfliktdreieck. Da der Schnittknoten jedoch nicht zu einer schmalen Region gehört, muß bei Generierung dieses Dreiecks wenigstens noch ein Element generiert werden, daß wenigstens einen Knoten besitzt, der auf pA liegt, einen Knoten, der auf pC liegt, und einen Knoten der in der Region 2 liegt. Dieses Element ist nach Lemma 4.5 und Lemma 4.4 ein Konfliktelement, dessen Zerlegungspfad zum Dreieck SAC führt. Damit wird Dreieck SAC zum Zerlegungsdreieck. Alle anderen Elemente, die in Region 2 an SA generiert werden können, 5.1. VERNETZUNG DER ECKEN 89 sind wegen Lemma 4.5 und Satz 4.4 Konfliktelemente. Damit muß an Kanten, die die Voraussetzung von Lemma 5.2 erfüllen, von der Weiterleitung von Zerlegungspfaden ausgegangen werden! Für Kanten von Ecken mit gleichem Tiefenwert der Knoten gilt eine solche Aussage nicht. Deswegen wird gefordert: Forderung 5.1. über Kanten einer Ecke, deren beiden Knoten gleichen Tiefenwert besitzen und die nicht auf dem Barandungspolygon liegen, dürfen keine Zerlegungspfade in die jeweils benachbarte Region weitergeleitet werden. D.h. an diesen Kanten dürfen keine Zerlegungsdreieckkandidaten und keine Vierecke, die eine Zerlegung über eine solche Kante weiterleiten könnten, generiert werden. Bei der lokalen Vernetzung der einzelnen Typen von Ecken, die in den folgenden Abschnitten vorgestellt wird, wird angenommen, daß diese Forderung an benachbarten Ecken eingehalten wird, d.h. es wird angenommen, daß an solchen Kanten kein Zerlegungspfad aus der benachbarten Region anliegen kann! Am Ende des Unterkapitels in Abschnitt 5.1.9 wird gezeigt, daß die Forderung wirklich eingehalten wird. 5.1.3 ±20◦ -Ecken Aufgrund des kleinen Winkels ist die Generierung möglichst weniger Elemente in ±20◦ -Ecken anzustreben. Nach Möglichkeit soll in einer solchen Ecke nur ein Dreieck generiert werden, da dadurch ein Qualitätsverlust der/des generierten Element(es) am geringsten bleibt. Abb. 5.12 zeigt die Vernetzung bei Winkel von ±20◦ . Definition 63. Die Kante, die die beiden Knoten einer Ecke verbindet, die nicht Schnittknoten sind, heißt Verbindungskante. Für Typ 1 und Typ 2 wird durch die Verbindungskante ein Dreieck erzeugt. Dadurch wird Bedingung (*) (Jedes Element einer Region besitzt den gleichen Tiefenwert wie die Region.) aus Lemma 3.1 verletzt, aber gleichzeitig werden dadurch ggfs. Zerlegungsdreieckkandidaten vermieden. Das Dreieck ist kein Konfliktdreieck, da alle Tiefenwerte der Knoten gleich sind. Damit aus dem Dreieck kein Zerlegungsdreieck wird, darf das Element, das auf der anderen Seite der Verbindungskante generiert wird, keinen Zerlegungspfad zum Dreieck hinleiten. Dies kann nur durch ein Viereck, das keinen Zerlegungspfad über die Verbindungskante weiterleiten kann, garantiert werden (vergl. Abb. 5.13). Hierfür muß wiederum genügend Platz vorhanden 90 KAPITEL 5. LÖSUNGEN ZUR P-VERNETZUNG t+x/t+x+y t/t+x t t t (i) Typ1/Typ2 t+x/t+x+y t t+x (iii) Typ5/Typ6 t t+x t+2x+y t+x+y (iv) Typ7 t+x (ii) Typ3/Typ4 t+x t t+x t t t t+x (v) Typ3 (alternativ) Abbildung 5.12: Vernetzung von ±20◦ -Ecken sein. Deswegen wird eine Fallunterscheidung in Abhängigkeit des vorhandenen Platzes vorgenommen. Der Platz wird durch den Abstand der beiden Knoten, die zur Ecke benachbart sind, gemessen. Ist der Abstand genügend groß (z.B. ≥ 8/3 DKL), soll ein Viereck generiert werden (vergl. Abb. 5.13 (i)). Bei zu geringem Abstand (z.B. < 4/3 DKL) gilt der Bereich als nicht ” vernetzbar“. Dieser Fall soll durch die Anpassung der Polygone und Zusammenfassung zu Regionen bereits von vornherein möglichst vermieden werden. Bemerkung: Ein Bereich wird dann als nicht vernetzbar“ eingestuft, wenn durch seine ” Vernetzung gemäß der in dieser Arbeit beschriebenen Methode zu schlechte Elemente entstehen würden oder eine Vernetzung aufgrund der Entstehung entarteter Elemente nicht möglich ist. Bei schlechten Elementen besteht immer die Möglichkeit, diese dennoch zu akzeptieren. Sonst besteht die Möglichkeit, im Verfahren zur Netzgenerierung (vergl. Schema 3.20) einige Schritte zurück zu gehen und z.B. die Normierung und Glättung der Polygonabschnitte (vergl. Schema 3.20 II (ii) c)) erneut mit größerer Toleranz durchzuführen und anschließend die Vernetzung mit den auf diese Weise neu ermittelten Vorgaben zu wiederholen. Bei relativ kleinem Abstand (z.B. ≤ 8/3 DKL), soll wie in Abb. 5.13 (ii) vernetzt werden. Auf diese Weise wird garantiert, daß das durch die Verbindungskante entstandene Dreieck nicht zum Zerlegungsdreieckkandidaten wird. Die so entstandenen Elemente sind bezüglich ihrer Qualität akzeptabel. Zur Ver- 5.1. VERNETZUNG DER ECKEN 91 1.Knoten 2.Knoten 1.Polygonzug (i) 1.Knoten 2.Knoten 2.Polygonzug (ii) Abbildung 5.13: Vernetzung an einer Verbindungskante meidung eines Dreiecks, das mit allen Knoten auf der Kontur liegt, müßten wenigstens zwei Dreiecke in die Ecke generiert werden. Auf diese Weise würde sich die Qualität der Elemente stark reduzieren, so daß die gewählte Lösung zu bevorzugen ist. Schlechte Elemente müssen i.a. bei der Vernetzung von Typ 3 und Typ 4 in Kauf genommen werden, da hier ein Drei- und ein Viereck generiert werden. Die Winkel der Drei- und des Vierecks, die innerhalb der ±20◦ -Ecke liegen, werden sehr klein und weichen stark von den Idealmaßen 60◦ und 90◦ ab. Wegen Lemma 5.2 muß an der Kante mit unterschiedlichen Tiefenwerten der Knoten wenigstens ein Zerlegungsdreieck generiert werden, weswegen über diese Kante ein Zerlegungspfad weitergeleitet werden kann. Da von einer anderen Seite ebenfalls ein Zerlegungspfad auf das dort zu generierende Element aufteffen kann ist, die Generierung des Dreiecks notwendig. Es ist ein Konfliktdreieck. Würde das Dreieck wie bei Typ 1/2 auch von der anderen Kante der Ecke (mit gleichem Tiefenwert der Knoten) eingeschlossen werden, so würden ggfs. Zerlegungspfade über diese Kante geleitet. Zur Vermeidung der Weiterleitung von Zerlegungspfaden wird ein Viereck generiert, das dafür die einzige Lösung darstellt. Zunächst kann Forderung 5.1 nur so eingehalten werden. Das Entstehen solcher Situationen ist schon bei der Anpassung der Polygone und Zusammenfassung zu Regionen zu vermeiden bzw. zu verbessern. Falls bei Typ 3 sichergestellt werden kann, daß aus der Richtung der Kante des Dreiecks, die an den Knoten mit den Tiefenwerten t+x liegt, kein Zerlegungspfad auf das Dreieck trifft, kann das Dreieck entfernt werden und eine Vernetzung wie in Abb. 5.12 (v) stattfinden. Auf diese Weise wird ein Konfliktdreieck vermieden! (Dies ist z.B. bei Ecken, die auf einem Ein- oder Auslaufpolygon liegen, häufig der Fall. Auf diese Weise entstehen Ein- und Auslaufvierecke, die also keine Konfliktvierecke darstellen.) Eine Zerlegung kann auch dann nur über die Konturkante mit unterschiedlichen Tiefenwerten 92 KAPITEL 5. LÖSUNGEN ZUR P-VERNETZUNG der Knoten verlaufen. Außerdem werden so ggfs. weitere Zerlegungspfade vermieden, da eine Zerlegung die durch das Viereck weitergeleitet wird, nur in eine Richtung weitergeleitet wird. Ecken vom Typ 1, die (mit einer Kante) auf einem Ein- oder Auslaufpolygon liegen und bei denen sichergestellt werden kann, daß entlang des Einbzw. Auslaufpolygons kein Zerlegungspfad auf sie trifft, dürfen ebenfalls wie Typ 3 alternativ mit einem Viereck vernetzt werden. Dies liegt daran, daß ein Zerlegungspfad über eine Kante mit gleichen Tiefenwerten der Knoten dann laufen darf, wenn diese Kante auf dem Ein- oder Auslaufpolygon liegt. Die Vernetzung für Typ 5 und Typ 6 ist gleich der für Typ 1 und Typ 2. Wiederum können die beiden anliegenden Polygonabschnitte durch die Verbindungskante zu einem neuen Polygonabschnitt zusammengefügt werden. Diesmal ist das generierte Dreieck jedoch ein Konfliktdreieck, dessen Zerlegungspfad in das Innere der Region zeigt. Es ist deswegen zu beachten, daß von der Verbindungskante ein Zerlegungspfad ausgeht. Um den Zerlegungspfad nicht unkontrolliert ins Regioninnere weiterlaufen zu lassen, wird er durch ein weiteres Dreieck, wie in Abb. 5.14 dargestellt, aufgefangen und so entlang der Seitenelemente weitergeleitet. Abbildung 5.14: Mögliche weitere Vernetzung von ±20◦ -Ecken bei Typ 5-7 Die Generierung eines guten Dreiecks sollte an dieser Stelle bezüglich des vorhandenen Platzes immer möglich sein. Ein Dreieck nimmt bezüglich eines Vierecks mit gleichen Seitenlängen den geringsten Platz ein. Typ 7 wird wie Typ 5 und Typ 6 vernetzt (vergl. Abb. 5.12(iv)). Aus gleichen Gründen wie bei dieser Vernetzung soll auch hier an der Verbindungskante ein Dreieck an das erzeugte Dreieck generiert werden (vergl. Abb. 5.14). Dieses Dreieck ist in diesem Fall ebenfalls ein Konfliktdreieck. Durch die Vernetzung ist jedoch gesichert, daß der von diesem Konfliktdreieck ausgehende Zerlegungspfad entlang der Kontur verläuft, womit eine kontrollierte Leitung des Zerlegungspfades gewährleistet ist. 5.1. VERNETZUNG DER ECKEN 93 ±90◦ -Ecken 5.1.4 Die Vernetzung von ±90◦ -Ecken geschieht vollkommen analog zur Vernetzung von ±20◦ -Ecken, es entstehen jedoch aufgrund des größeren Winkels in der Ecke i.a. bessere Elemente. In Abb. 5.15 ist die Vernetzung der einzelnen Typen dargestellt. t/t+x t t t t+x/t+x+y t t (i) Typ1/2 t+x/t+x+y (ii) Typ3/4 t t t+x t+x t+x t+x t+2x+y t+x (iii) Typ5/6 t t+x+y (iv) Typ7 t t+x (v) Typ3 (alternativ) Abbildung 5.15: Vernetzung von ±90◦ -Ecken Bei der Vernetzung von Typ 1 und 2 wird für die Generierung des anliegenden Vierecks auf gleiche Weise bezüglich der Distanz zwischen den zur Ecke benachbarten Knoten unterschieden und eine entsprechende Vernetzung vorgenommen. Bei der Vernetzung von Typ 3 und Typ 4 wird aus gleichen Gründen wie bei einer ±20◦ -Ecke an entsprechenden Stellen ein Drei- und ein Viereck generiert. Durch den größeren Winkel sind die erzeugten Elemente besser. Bei entsprechender Voraussetzung kann alternativ wie in Abb. 5.15 (v) vernetzt werden. Die Vernetzung von Typ 5, Typ 6 und Typ 7 verläuft ebenfalls vollkommen analog zu den entsprechenden ±20◦ -Ecken. Es soll auch hier an der Verbindungskante zur Region hin aus gleichen Gründen wie oben ein Dreieck generiert werden. Schlechte Elemente entstehen für Typ 1/2, 5/6 und 7 dann, wenn der Winkel der ±90◦ -Ecke nahe bei 135◦ liegt. Wenn solche Elemente nicht erwünscht sind, kann hier auch eine Vernetzung wie bei ±180◦ -Ecken stattfinden. 5.1.5 ±180◦ -Ecken Die Vernetzung des ±180◦ -Winkels unterscheidet sich in einigen Punkten von denen des ±20◦ - und des ±90◦ -Winkels. Für Typ 1 und Typ 2 werden sinnvollerweise zwei Vierecke generiert (vergl. Abb. 5.16 (i)). Am Schnittknoten besitzen die Vierecke dann Winkel, die nicht stark von 90◦ abweichen. Zerlegungspfade, die auf die Vierecke von 94 KAPITEL 5. LÖSUNGEN ZUR P-VERNETZUNG der Seite auftreffen, werden jeweils zur anderen Seite hin weitergeleitet. über eine Konturkante kann kein Zerlegungspfad in eine benachbarte Region. t/t+x t t t t+x/t+x+y t t t+x/t+x+y t+x (ii) Typ3/4 (i) Typ1/2 t+x t t+x (iii) Typ5/6 t+2x+y t+x t t+x+y (iv) Typ7 Abbildung 5.16: Vernetzung von ±180◦ -Ecken Die Typ 3- und Typ 4-Vernetzung geschieht analog zur Vernetzung von ±20◦ -Ecken und ±90◦ -Ecken. Die dabei auftretenden Winkel sind bezüglich ihrer Qualität gut. Eine alternative Vernetzung wie bei ±20◦ -Ecken und ±90◦ -Ecken ist hier für Typ 3 nicht möglich, da dadurch ein entartetes Viereck entstehen kann. Für Typ 5, Typ 6 und Typ 7 werden jeweils zwei Dreiecke generiert, da die Generierung eines Dreiecks zu einem entarteten Dreieck führen kann. Alle Dreiecke stellen Konfliktdreiecke dar. Die ausgehenden Zerlegungspfade sollen entlang der Kontur geleitet werden. 5.1.6 ±270◦ -Ecken Die Vernetzung bei ±270◦ -Winkeln erfolgt ähnlich zu der von ±180◦ -Winkeln. Jedoch werden hier zur Verbesserung der Elementqualität teilweise weitere Konfliktdreiecke eingesetzt. Die Vernetzung mit zwei Vierecken beim Typ 1 und Typ 2 kann analog zur Vernetzung von ±180◦ -Ecken erfolgen. Die entstandenen Vierecke haben noch akzeptable Winkel. Für Typ 3 und Typ 4 würde die Erzeugung lediglich eines Vierecks und eines Dreiecks zu Elementen mit sehr großen Winkeln führen. Deswegen wird hier mittig ein Dreieck hinzugefügt. Allerdings stellt dieses Dreieck ein Konfliktdreieck dar, von dem ein Zerlegungspfad in die Region hinein 5.1. VERNETZUNG DER ECKEN t/t+x 95 t+x/t+x+y t+x/t+x+y t+2x+y t t t t t t t t+x t t+x+y t+x (i) Typ1/2 t+x+y (iv) Typ7 (iii) Typ5/6 (ii) Typ3/4 Abbildung 5.17: Vernetzung von ±270◦ -Ecken zeigt. Auch hier ist eine entsprechende alternative Vernetzung für Typ 3 nicht möglich. Für Typ 5, Typ 6 und Typ 7 ist der Fall ähnlich. Würde jeweils nur mit zwei Dreiecken vernetzt, besäßen diese sehr große Winkel. Um dies zu vermeiden wird wiederum ein Konfliktdreieck eingefügt, von dem ein Zerlegungspfad in die Region hinein zeigt. Zur Vermeidung der zusätzlichen Konfliktdreiecke und damit weiterer Zerlegungspfade können auf Wunsch solche Ecken wie ±180◦ -Ecken vernetzt werden. In diesem Fall muß eine schlechtere Elementqualität in Kauf genommen werden. 5.1.7 ±340◦ -Ecken Bei der Vernetzung von ±340◦ -Winkeln wird bei jedem Typ zur Vermeidung von schlechten Elementen jeweils noch ein zusätzliches Konfliktdreieck (bzw. für Typ 1 ein Zerlegungsdreieckkandidat) hinzugefügt (vergl. Abb. 5.18). t/t+x t t (i) Typ1/2 t t t+x (ii) Typ3/4 t+2x+y t+x t+x t t t+x/t+x+y t+x/t+x+y t t+x t+x+y (iii) Typ5/6 (iv) Typ7 Abbildung 5.18: Vernetzung von ±340◦ -Ecken Auf Wunsch kann zur Vermeidung der zusätzlichen Konfliktdreiecke eine Vernetzung wie bei ±270◦ -Ecken stattfinden, wodurch jedoch wiederum eine Qualitätsverschlechterung der Elemente in Kauf genommen werden muß. 96 KAPITEL 5. LÖSUNGEN ZUR P-VERNETZUNG Alle neuen Konfliktdreiecke bzw. Zerlegungsdreieckkandidaten liegen jeweils zwischen den beiden Elementen, die an die Kanten der Ecken generiert wurden. Die von ihnen ausgehenden Zerlegungspfade zeigen jeweils in die Region hinein. Es sei bemerkt, daß das Auftreten von ±270◦ - und ±340◦ -Ecken äußerst selten ist. 5.1.8 Direkt benachbarte Ecken Liegen zwei Schnittknoten direkt nebeneinander, so liegen zwei direkt benachbarte Ecken vor. Jede Ecke besitzt dabei einen nicht mittig liegenden Knoten, der auch Schnittknoten ist. Zwei direkt benachbarte Ecken bestehen aus zwei Schnittknoten und zwei dazu benachbarten Knoten. Die Region, an die beide Ecken angrenzen, kann eine breitere oder ein schmale Regionen sein. Benachbarte Ecken, die an schmalen Regionen angrenzen, werden in Abschnitt 5.2.1 behandelt. Hier folgt eine Darstellung der Vernetzung von benachbarten Ecken, die nicht an eine schmale Region angrenzen. Bei zwei direkt benachbarten Ecken, die an einer breiteren Region liegen, muß wie bei einzelnen Ecken davon ausgegangen werden, daß Zerlegungspfade von benachbarten Regionen auf die Ecken treffen. Dies kann bei Einhaltung von Forderung 5.1 nur über Konturkanten geschehen, deren Knoten unterschiedliche Tiefenwerte besitzen. Bei der Vernetzung einzelner Ecken wurde dies bereits berücksichtigt. Deswegen soll nach Möglichkeit die Vernetzung zweier benachbarter Ecken analog erfolgen. Jede der Ecken zweier benachbarter Ecken wird aus diesem Grunde zunächst wie eine einzelne Ecke vernetzt. Die Ergebnisse werden dann aneinander angepaßt. Eine analoge Vernetzung kann auch bei drei oder mehreren benachbarten Ecken auf diese Weise geschehen. Für genau zwei benachbarte Ecken gibt es zwei Tiefenwertkombinationen der Knoten, die genauer betrachtet werden müssen, weil dabei eine getrennte Vernetzung der Ecken zu unterschiedlichen Elementen an der Kante, die beiden Ecken gemeinsam ist, führen würde oder zu schlechte Elemente entstehen würden. Hier muß die Vernetzung gesondert stattfinden. (Für drei oder mehr benachbarte Ecken werden solche Fälle hier nicht betrachtet.) Die erste Ausnahme für die Vernetzung ist der Fall, daß allen vier Knoten der gleiche Tiefenwert zugeordnet ist und wenigstens eine der Ecke ein ±20◦ - oder eine ±90◦ -Ecke ist. Ist der Abstand zwischen den beiden Nicht-Schnittknoten relativ klein (z.B. ≤1.333 * DKL) wird ein Viereck durch eine Verbindungskante generiert 5.1. VERNETZUNG DER ECKEN 97 (vergl. 5.19 (i)). t t t t t t t t (i) (ii) Abbildung 5.19: Vernetzung der ersten Ausnahme Damit über dieses Viereck kein Zerlegungspfad geführt wird, muß auf der anderen Seite der Verbindungskante ebenfalls ein Viereck generiert werden (s. Abb. 5.19 (i)). Die Verbindungskante wird also vollkommen analog zur Verbindungskante bei ±20◦ -Ecken vom Typ 1/2 vernetzt. Da die Region keine schmale Region darstellt, führt die Vernetzung mit dem zweiten Viereck nicht zu inakzeptablen Elementen bezüglich der Qualität. Ist der Abstand größer wird trotz der ±20◦ - bzw. ±90◦ -Ecke wie in Abb. 5.19 (ii) vernetzt. Ist die andere Ecke eine ±340◦ -Ecke, kann die Vernetzung entsprechend angepaßt werden. Die zweite Ausnahme stellt der Fall 3-1 (genau drei benachbarte Knoten besitzen einen gleichen Tiefenwert) dar, wenn zwischen den Kanten mit gleichem Tiefenwerten der Knoten eine ±20◦ -Ecke oder eine ±90◦ -Ecke liegt. In diesem Fall würde bei einzelnen Ecken eine Verbindungskante generiert, so daß an der Kante zwischen den beiden Schnittknoten ein Dreieck anliegt. Dagegen wird für die andere Ecke an dieser Kante immer ein Viereck generiert. Bei einer ±20◦ - oder ±90◦ -Ecke ist die Wahrscheinlichkeit, daß am anderen Schnittknoten ebenfalls ein kleiner Winkel vorliegt, gering. Deswegen sollen solche Fälle z.B. wie in 5.20 vernetzt werden. Dabei wird an der Ecke mit gleichen Tiefenwerten der Knoten ein Dreieck durch eine Verbindungskante generiert. Die Verbindungskante wird für die Vernetzung der zweiten Ecke als neue Konturkante betrachtet. Die auf diese Weise modifizierte Ecke kann wie eine einzelne Ecke vernetzt werden, wobei hier der neue Winkel zu berücksichtigen ist. In Abb. 5.20 findet diese Vernetzung wie bei ±20◦ - bzw. ±90◦ -Ecken statt. Bei größer auftretenden Winkeln kann hier entsprechend vernetzt werden. Ist der dort anliegende Winkel zu klein, so daß nur sehr schlechte Elemente entstehen, wird der Bereich als 98 KAPITEL 5. LÖSUNGEN ZUR P-VERNETZUNG t+x t t t Abbildung 5.20: Vernetzung der zweiten Ausnahme bei kleinem Abstand nicht vernetzbar“ deklariert. An der Verbindungskante wird auf diese Wei” se immer ein Viereck generiert, so daß kein Zerlegungspfad von dieser Seite auf das Dreieck treffen kann. Außer den genannten Ausnahmen entstehen keine Konflikte, da für die Vernetzung immer genügend Platz vorhanden ist und für die einzelnen Fälle das gleiche Element an der Kante zwischen den beiden Schnittknoten generiert wird. Anhang: Als Zusatz wird mit den folgenden Lemmata 5.3-5.5 gezeigt, daß der Fall 3-1 sehr selten auftritt. Es soll damit lediglich illustriert werden, daß die Wahrscheinlichkeit der Generierung schlechter Elemente oder der Nicht-Vernetzbarkeit“ zweier benachbarter Ecken gering ist. ” Lemma 5.3. Es seien N3 S1 S2 und S1 S2 N4 zwei benachbarte Ecken mit den Schnittknoten S1 und S2 , die jeweils an genau vier Regionen grenzen (vergl. Abb. 5.21). Für T(S1 )=T(S2 ) folgt entweder T (N3 ) 6= T (S1 ) = T (S2 ) 6= T (N4 ) oder T (N3 ) = T (N4 ). Beweis. Das in Abb. 5.21 dargestellte senkrecht verlaufende Polygon ist entweder ein Verfeinerungs- oder ein Schnittpolygon. A D N1 S1 N3 B E N2 C S2 N4 F Abbildung 5.21: Zwei benachbarte Ecken, die jeweils an genau vier Regionen grenzen 1. Fall T (A) < T (D) T (B) < T (E) T (C) < T (F ): Damit T (S1 ) = T (S2 ) gilt, muß entweder T (S1 ) = T (S2 ) = T (A) = T (C) < 5.1. VERNETZUNG DER ECKEN 99 T (B) gelten. Wegen T (S1 ) = T (A) < T (D), T (S1 ) < T (B) < T (E) und T (S1 ) = T (C) < T (F ) und wegen T (N3 ) = min(T (D), T (E)) und T (N4 ) = min(T (E), T (F )) gilt dann aber T (N3 ) 6= T (S1 ) = T (S2 ) 6= T (N4 ). Oder es gilt T (B) < T (A), T (C). Wegen T (S1 ) = T (B) < T (D), T (S1 ) < T (A) < T (D) und T (S1 ) < T (C) < T (E) und wegen T (N3 ) = min(T (D), T (E)) und T (N4 ) = min(T (E), T (F )) gilt wiederum T (N3 ) 6= T (S1 ) = T (S2 ) 6= T (N4 ). 2. Fall T (A) > T (D) T (B) > T (E) T (C) > T (F ): Damit T (S1 ) = T (S2 ) gilt, muß entweder T (S1 ) = T (D) = T (F ) < T (E) gelten. Dann gilt aber auch T (N3 ) = T (D) und T (N4 ) = T (F ) und damit T (S1 ) = T (S2 ) = T (N3 ) = T (N4 ). Oder es gilt T (S1 ) = T (E) < T (D), T (F ). Dann gilt ebenfalls T (S1 ) = T (S2 ) = T (N3 ) = T (N4 ). Lemma 5.4. Gegeben seien zwei benachbarte Ecken mit den Schnittknoten S1 und S2 , die jeweils an genau drei Regionen grenzen (vergl. Abb. 5.22). Falls T (S1 ) = T (S2 ) gilt, ist entweder der Tiefenwert der beiden anderen Knoten der Ecken zu diesen unterschiedlich oder der Tiefenwert beider anderen Knoten ist gleich. Beweis. Alle Fälle von zwei benachbarten Schnittknoten, die an genau drei Regionen grenzen, sind in Abb. 5.22 dargestellt. N1 B S1 N3 A N3 A S1 S2 B N4 D N2 (i) C N1 C S2 N2 (ii) N3 A S1 B N1 N4 N2 D C D S2 N4 (iii) Abbildung 5.22: Zwei benachbarte Ecken, die jeweils an genau drei Regionen grenzen Dabei ist das senkrecht verlaufende Polygon wieder ein Schnitt- oder Verfeinerungspolygon, wobei es im Fall (i) oder (iii) auch ein Berandungspolygon sein kann. Da Fall (i) und (iii) gespiegelte Fälle sind und Fall (ii) spiegelsymetrisch ist, kann bei einem Verfeinerungs- oder Schnittpolygon œ davon ausgegangen werden, daß die Tiefenwerte der linken Seite kleiner sind als die der rechten Seite. Falls das senkrecht verlaufende Polygon im Fall Abb. 5.22(i) ein Schnitt- oder Verfeinerungspolygon ist, muß deswegen T(A)< T (B),T(C),T(D) gelten. Damit gilt T (S1 ) = T (S2 ) = T (N1 ) = 100 KAPITEL 5. LÖSUNGEN ZUR P-VERNETZUNG T (N2 ). Wegen T (A) < T (B), T (C), T (D) und T (N3 ) = min(T (B), T (C)) und T (N4 ) = min(T (C), T (D)) gilt: T (S1 ) < T (N3 ), T (N4 ). Ist das senkrecht verlaufende Polygon ein Uferpolygon, so gilt das gleiche, da dann T (A) = 0 gilt. Ist das senkrecht verlaufende Polygon ein Ein- oder Auslaufpolygon, so existieren zwar auf der linken Seite keine Knoten mehr, es findet aber eine imaginäre Einteilung des Außenbereichs statt. Diese entspricht der Darstellung aus Abb. 5.21, wobei T (A) = T (D), T (B) = T (E) und T (C) = T (F ) gilt. Für T (S1 ) = T (S2 ) gilt dann entweder T (S1 ) = T (D) = T (F ) < T (E). Damit gilt T (N3 ) = T (S1 ) = T (S2 ) = T (N4 ). Oder es gilt T (S1 ) = T (E) < T (D), T (F ). Daraus folgt wieder T (N3 ) = T (S1 ) = T (S2 ) = T (N4 ). Im Fall Abb. 5.22(ii) muß T (S1 ) 6= T (S2 ) gelten, da T(A),T(B)<T(C),T(D) und T(A)6=T(B) und T(C)6=T(D) gelten muß. Falls das senkrecht verlaufende Polygon im Fall Abb. 5.22(iii) ein Schnittoder Verfeinerungspolygon ist, gilt T(A),T(B),T(C)<T(D). Damit T (S1 ) = T (S2 ) gilt, ist entweder T (S1 ) = T (A) = T (C) oder T (S1 ) = T (B) < T (A), T (C). Wegen T (N1 ) = min(T (A), T (B)) und T (N2 ) = min(T (B), T (C)), gilt jeweils T (N1 ) = T (S1 ) = T (S2 ) = T (N2 ). Für T (A) = T (C) gilt auch T (N3 ) = T (N4 ). Für T (S1 ) = T (B) < T (A), T (C) gilt T (S1 ) < T (N3 ) = T (A) und T (S1 ) < T (N4 ) = T (C). Der Fall, daß das senkrecht verlaufende Polygon Berandungspolygon ist, wurde bereits in Fall (i) betrachtet. Lemma 5.5. Gegeben seien zwei benachbarte Ecken mit den Schnittknoten S1 und S2 , von denen eine an genau drei Regionen und die andere an genau vier Regionen grenzt (vergl. Abb. 5.23). Falls T (S1 ) = T (S2 ) gilt, gibt es nur einen Fall, bei dem genau ein Tiefenwert einer der beiden anderen Knoten der Ecken gleich dem Tiefenwert der Schnittknoten ist. Beweis. In Abb. 5.23 sind alle Fälle (bis auf Spiegelung) dargestellt. Das senkrecht verlaufende Polygon ist Schnitt- oder Verfeinerungspolygon, wobei die Tiefenwerte der linken Seite œ kleiner sind als die der rechten Seite. Falls in Abb. 5.23 (i) T (S1 ) = T (S2 ) gilt, muß T (S1 ) = T (B) < T (A) gelten. Damit muß T(C), T(D), T(E) > T(B) gelten. Daraus folgt T (N1 ) = T (N2 ) = T (S1 ) und T (N3 ) = min(T (C), T (D)) > T (S1 ) und T (N4 ) = min(T (D), T (E)) > T (S1 ). Falls in Abb. 5.23 (ii) T (S1 ) = T (S2 ) gilt, muß entweder T (S1 ) = T (A) = T (C) < T (B) oder T (S1 ) = T (B) < T (A), T (C) gelten. Im ersten Fall gilt T(A)<T(D) und T(B),T(C)<T(E), weswegen T (N1 ) = T (N2 ) = T (N4 ) = T (S1 ) und T (N3 ) > T (S1 ) gilt: Die Knoten N3 , S1 , S2 und N4 bilden den 5.1. VERNETZUNG DER ECKEN A C S1 A N3 N S1 D N3 N 1 B 101 1 D S N4 2 B N 2 E S C 2 E N N4 2 (i) (ii) Abbildung 5.23: Skizze zum Beweis Fall, bei dem genau ein Tiefenwert einer der beiden anderen Knoten der Ecken gleich dem Tiefenwert der Schnittknoten ist! Für T (S1 ) = T (B) < T (A), T (C) gilt ebenfalls T(A)<T(D) und T(B),T(C)<T(E). Es gilt dann T (N1 ) = T (N2 ) = T (S1 ) und T (N3 ) = min(T (D), T (E)) < T (S1 ) und T (N4 ) = min(T (C), T (E)) < T (S1 ) . In den Lemmata 5.3 - 5.5 wurden benachbarte Ecken betrachtet, deren Schnittknoten an genau drei bzw. genau vier Regionen grenzen. Grenzen benachbarte Ecken an genau zwei Regionen, so liegen ihre Schnittknoten auf dem Berandungspolygon. Falls sie auf einem Uferpolygon liegen, erhalten sie den Tiefenwert null, die anderen beiden Knoten jedoch immer einen höheren Tiefenwert. Fall 3-1 tritt somit nicht auf. Falls die Schnittknoten auf einem Ein- oder Auslaufpolygon liegen, erhalten entweder alle Knoten der beiden benachbarten Ecken den gleichen Tiefenwert oder die beiden Schnittknoten erhalten bereits unterschiedliche Tiefenwerte. Ein Nachweis erfolgt ähnlich wie der Beweis der Lemmata 5.3 - 5.5 und soll hier nicht weiter erklärt werden. Es kann festgehalten werden, daß Fall 3-1 bei benachbarten Ecken auf dem Berandungspolygon nicht auftreten kann. Damit wurden alle Kombinationen beachtet und mit den Lemmata 5.3 5.5 alle Möglichkeiten für Fall 3-1 aufgelistet. 5.1.9 Einhaltung der Anforderung an Zerlegungspfade In Abschnitt 5.1.2 wurde durch Forderung 5.1 gefordert, daß an Kanten einer Ecke, die nicht auf dem Barandungspolygon liegen und gleichen Tiefenwert der Knoten besitzen, keine Zerlegungsdreieckkandidaten generiert 102 KAPITEL 5. LÖSUNGEN ZUR P-VERNETZUNG werden dürfen. Nach der Diskussion der lokalen Vernetzung in den letzten Abschnitten kann festgehalten werden: Lemma 5.6. Forderung 5.1 Seite 89 wird eingehalten. Beweis. Es ist zu zeigen, daß die Dreiecke, die bei ±20◦ - und ±90◦ -Ecken vom Typ 1 oder 2 generiert werden, keine Zerlegungsdreieckkandidaten sind. Außerdem ist zu zeigen, daß auf ein Viereck wie in Abb. 5.19 (die Nichtschnittknoten mit gleichem Tiefenwert zweier benachbarter Ecken besitzen geringen Abstand) kein Zerlegungspfad auftrifft (vergl. Abb. 5.19). Dazu genügt es zu zeigen, daß kein Zerlegungspfad von innerhalb der Region auf diese Elemente auftrifft. Dies ist jedoch, wie auch schon in den einzelnen Abschnitten beschrieben, durch die jeweilige Generierung eines Vierecks an der Verbindungskante gewährleistet. 5.1.10 Beispiel Wurm In Abb. 5.24 sind alle Vernetzungen der im Wurmbeispiel auftretenden Ecken (die nicht an eine schmale Region angrenzen), dargestellt. Im unteren, rechten Bereich treten einige nebeneinanderliegende Ecken auf, die jedoch keine Probleme darstellen. Im Bereich des Einlaufpolygons treten zweimal drei nebeneinanderliegende Ecken auf, die wie einzelne Ecken vernetzt und entsprechend angepaßt werden können, weil jeweils gleiche Elemente an den Kanten zu generieren sind. In einigen Bereichen treten Ecken mit gleichem Anschlußknoten auf (vergl. zweifacher Anschlußknoten Def. 5.4 S. 155) deren Vernetzung direkt aneinander angepaßt wird. Allerdings werden an einigen Stellen die Elemente relativ schlecht, was sich nur durch eine erneute Anpassung der Polygone verhindern lassen könnte. ±20◦ - und ±90◦ Ecken vom Typ 1 oder 3, die ans Ein- oder Auslaufpolygon grenzen, werden bereits alternativ wie in Abb. 5.12 (v) bzw. Abb. 5.15 (v) vernetzt, weil davon ausgegangen werden kann, daß entlang des Einbzw. Auslaufpolygons kein Zerlegungspfad auf diese Elemente trifft. Würde sich herausstellen, daß dies nicht der Fall ist, müßte eine entsprechende Korrektur stattfinden. ±270◦ - und ±340◦ Ecken treten nicht auf. Bei der Vernetzung der Ecken im Bereich des Einlaufpolygons in der Region mit Tiefenwert 2 können die Knoten zweier Vierecke wegen der Schmalheit der Region auf dem Einlaufpolygon generiert werden. Dies stellt kein Problem dar, da die Knoten des Einlaufpolygons den gleichen Tiefenwert (2) wie die Region besitzen. 5.2. VERNETZUNG VON SCHMALEN REGIONEN 0 01 1 1 2 2 2 23 1 2 3 2 2 0 3 2 2 1 1 0 0 3 2 1 1 1 2 00 0 0 2 3 32 2 2 3 4 3 2 23 3 2 2 2 2 4 3 6 3 2 2 4 2 4 1 2 103 2 8 2 1 1 2 4 1 2 1 1 0 11 1 0 42 1 2 6 22 2 4 22 2 1 1 1 1 0 0 2 1 Abbildung 5.24: Vernetzung der Ecken für das Wurmbeispiel In diesem Unterkapitel wurde die Vernetzung der Ecken vorgestellt. Es werden dabei möglichst wenige Zerlegungspfade in benachbarte Regionen weitergeleitet. Das nächste Unterkapitel beschäftigt sich mit der Vernetzung von schmalen Regionen. 5.2 Vernetzung von schmalen Regionen Dieses Unterkapitel behandelt die Vernetzung von schmalen Regionen und ihren Übergängen zu breiteren Teilen der Region (Schema 4.31 (ii) d)e)). Die Vernetzung von schmalen Regionen ist oft aufwendig. Zum einem müssen die Regionen, die i.a. Teile einer größeren Region darstellen, selbst vernetzt werden. Zum anderen muß insbesondere der Übergang in einen breiteren Teil der Region besonders beachtet werden. Mehrere nebeneinanderliegende schmale Regionen erfordern ein diszipliniertes Verfahren bei der Vernetzung. Solche Konstellationen treten bei der Netzgenerierung von Fließgewässern häufig auf (vergl. auch 3.14), sie entstehen durch ein steiles 104 KAPITEL 5. LÖSUNGEN ZUR P-VERNETZUNG Abfallen des Geländes vom Ufer her. Polygonteile einer schmalen Region müssen bei der Vernetzung ggfs. aneinander angepaßt werden. Dabei werden jeweils nur auf einem Polygonteil Veränderungen vorgenommen. Zacken, die innerhalb von schmalen Regionen auftreten, werden anders behandelt, als alle anderen Zacken (vergl. Unterkapitel 5.3). Es werden hier teilweise schlechtere Elemente in Kauf genommen, da sonst entweder eine Vernetzung unmöglich ist oder die Anzahl von Zerlegungselementen immens steigen würde (vergl. Abschnitt 4.2.2). Gerade durch das Auftreten von Konfikt- und Zerlegungsdreiecken unterscheidet sich die Generierung von der bei [Schu97], bei der solche Elemente nicht genügend genau berücksichtigt werden. Dreiecke innerhalb einer schmalen Region stellen aufgrund der Tatsache, daß sie Randelemente sind und somit Zerlegungspfade, die entlang der Region geführt werden, auf sie treffen können, Zerlegungsdreieckkandidaten dar. Es sei denn sie besitzen zwei Knoten mit Tiefenwert null, d.h. sie liegen in einer zum Außenbereich benachbarten Region. In diesem Fall entstehen bei der 3D-Vernetzung im (nicht zerlegten) Elementstapel ausschließlich Tetraeder, die nicht zerlegt werden können. Das bedeutet wiederum, daß das zugehörige Dreieck in der Region kein Zerlegungsdreieckkandidat sein kann. Schmale Regionen, die zum Außenbereich benachbart sind und deren Knoten eines Polygonteils auf dem Uferpolygon liegen und damit den Tiefenwert null besitzen, werden Null-Regionen genannt. Entlang solcher schmalen Regionen sowie entlang der Randelemente an einem Uferpolygon können grundsätzlich keine Zerlegungspfade geleitet werden. Denn das zugehörige 3D-Netz (im Erstnetz) der vernetzten schmalen Region besitzt keine Hexaeder, die aber für das Leiten von 3D-Zerlegungspfaden (und damit in der Region für Zerlegungspfade) notwendig sind. Zur Vermeidung einer unkontrollierten Weiterleitung von Zerlegungspfaden müssen an Dreiecken einer schmalen Region in der benachbarten schmalen Region, sofern dies keine Null-Region ist, ebenfalls Dreiecke generiert werden. Die folgenden Abschnitte zeigen genaue Verfahren. Besonderer Aufmerksamkeit bedürfen Polygone, die schmale Regionen schneiden. Dadurch entstehen benachbarte Ecken, die an schmalen Regionen liegen. Da Verfeinerungspolygone nie so eng beieinanderliegen sollen, daß sie schmale Regionen bilden, entstehen schmale Regionen, die nicht auf einem Ein- oder Auslaufpolygon liegen, aus wenigstens einem Schnittpolygon. Demnach ist der Schnitt solcher schmalen Regionen nur durch Verfeinerungspolygone möglich. 5.2. VERNETZUNG VON SCHMALEN REGIONEN 105 Die Bearbeitung einer schmalen Region setzt sich aus drei Phasen zusammen. Zuerst müssen die schmalen Regionen aufgefunden werden. In der zweiten Phase werden sie vernetzt, wobei auch benachbarte Ecken beachtet werden sollen. In der dritten Phase werden die Übergänge zu den anderen Regionteilen vernetzt. Das Auffinden der schmalen Regionen geschieht nach dem in [Schu97] beschriebenen Gitterverfahren (vergl. Schema 4.31 (ii) b)). Die beiden anderen Phasen werden in den beiden folgenden Abschnitten behandelt. 5.2.1 Schmale Regionen Da schmale Regionen aus zwei Polygonteilen bestehen, zwischen denen nur eine Elementreihe generiert wird, kann die Vernetzung auf die Weise stattfinden, daß jedem Knoten des einen Polygonteils ein oder mehrere Knoten des gegenüberliegenden Polygonteils zugeordnet werden. Eine solche Knotenzuordnung bei einzelnen schmalen Regionen, die nicht zu einer weiteren schmalen Region benachbart sind, wird zunächst mit Hilfe des Beispiels aus Abb. 5.25 beschrieben. Anschließend wird ein entsprechender Algorithmus vorgestellt. Es folgt dann die Diskussion der Knotenzuordnung bei mehreren benachbarten schmalen Regionen. In beiden Fällen wird die Möglichkeit eines Schnitts der schmalen Regionen mit einem Verfeinerungspolygon außer Acht gelassen. Diese Möglichkeit wird im Anschluß daran diskutiert. Es folgt schließlich die Vernetzung von Kehrtwenden. Einzelne schmale Regionen In Abb. 5.25 ist eine schmale Region dargestellt. Der obere Polygonteil enthält sieben Knoten, der untere sechs. Jeder Polygonteil enthält eine Zacke. Eine Zuordnung soll immer so erfolgen, daß möglichst viele Vierecke entstehen. Außerdem sollen die Elemente, die durch die Zuordnung entstehen, möglichst gut sein. Eine Gefahr für eine unvorteilhafte Zuordnung entsteht besonders im Bereich der Zacken. Deswegen werden zuerst den Spitzenknoten der Zacken Knoten zugeordnet. Es wird nach Möglichkeit ein Knoten des gegenüberliegenden Polygonteils zugeordnet, durch den die Anzahl der Vierecke maximiert wird, wobei die anliegenden Winkel an den beiden Knoten, die einander zugeordnet werden, im Sinne der Elementqualität gut sein sollen. Für die Zuordnung zu einem Spitzenknoten kommen die beiden Knoten in Frage, die am nächsten zur Winkelhalbierenden durch den Spitzenknoten liegen. Die Zuordnung wird nur zwischen diesen beiden Knoten entschieden, damit die Winkel am Spitzenknoten möglichst gut sind. Im Beispiel muß für den Knoten 2 des oberen Polygonteils zwischen dem Knoten 1 und dem Knoten 2 des unteren Polygonteils entschieden werden (vergl. 5.25 (ii)). Es 106 KAPITEL 5. LÖSUNGEN ZUR P-VERNETZUNG wird der Knoten 2 gewählt, da dieser besonders nah der Winkelhalbierenden liegt und dadurch die Winkelqualität an den beiden einander zugeordneten Knoten am besten wird. Außerdem muß dem Knoten 4 des unteren Polygonteils entweder der Knoten 4 oder der Knoten 5 des oberen Polygonteils zugeordnet werden. Es wird der Knoten 4 aus gleichen Gründen gewählt. Die Gesamtanzahl der Vierecke ist in diesem Fall für beide Entscheidungen gleich: Links von der Verbindung zwischen Knoten 4 und Knoten 4 können bis zur Verbindung zwischen Knoten 2 und Knoten 2 zwei Vierecke und rechts davon ebenfalls zwei Vierecke generiert werden. Bei der Zuordnung von Knoten 5 zu Knoten 4 wären diese Anzahlen jeweils gleich. 2 1 3 4 5 6 7 1. 4 1 2 3 (i) (ii) 1 2 3. (iii) 1 3 4 1 2 2/1 2 3 1 2 3 1 1 2 3 (iv) 2. 5 6 2 3 (v) 3 1 2/1 3/1 2 2 3 (vi) (vii) Abbildung 5.25: Vernetzung einer schmalen Region Durch die Zuordnung der Spitzenknoten und die Verbindungen zwischen den jeweils ersten und letzten Knoten der schmalen Region wird die schmale Region in weitere Teilregionen unterteilt (vergl. Abb. 5.25 (iii)). Die Teilregionen enthalten keine Zacken mehr, weswegen die Qualität der zu generierenden Elemente in einem gewissen Maße gewährleistet ist. Für die weitere Vernetzung wird nun pro Teilregion überprüft, ob ein Polygonteil einer Teilregion mehr Knoten enthält als der andere Polygonteil. Ist dies der Fall (wie im Beispiel (Abb. 5.25 (iii)) in der dritten Teilregion), so müssen entsprechend viele Dreiecke in die Teilregion eingesetzt werden: Sei x die Anzahl der Knoten eines Polygonteils und y die Anzahl der Knoten des anderen Po- 5.2. VERNETZUNG VON SCHMALEN REGIONEN 107 lygonteils und œ x<y, dann müssen y-x Dreiecke in die Teilregion eingesetzt werden. Im Beispiel muß ein Dreieck eingesetzt werden. Der Einsatz von Dreiecken geschieht sukzessiv auf folgende Weise: Das jeweils einzusetzende Dreieck soll die Teilregion, in die es eingesetzt wird, so aufteilen, daß daraus nur Bereiche enstehen, deren Anzahlen der Knoten auf den Polygonteilen möglichst wenig differieren, damit möglichst viele Vierecke generiert werden können. Beispiel: Eine Teilregion (A,B,C,a,b,c,d,e) besitzt einen ersten Polygonteil mit drei (A,B,C) und einen zweiten mit fünf (a,b,c,d,e) Knoten. In diesem Fall müßten zwei Dreiecke generiert werden. Folgende Dreiecke erfüllen die oben beschriebene Eigenschaft: (A,a,b), (B,b,c), (B,c,d), (C,d,e). Es würde ein qualitativ bestes Dreieck gewählt. Für die Teilregion der Teilregion, die weiterhin unterschiedliche Anzahlen von Knoten auf den Polygonteilen besitzt, würde das Verfahren wiederholt. (Beispiel: Annahme: Es wäre (B,c,d) gewählt worden, dann müßte das Verfahren für die Teilregion (A,B,a,b,c) der Teilregion (A,B,C,a,b,c,d,e) wiederholt werden.) Das Verfahren wird jeweils für alle Teilregionen so lange angewendet, bis in allen Teilen aller Teilregionen die beiden Polygonstücke jeweils gleiche Knotenanzahl besitzen. Im Beispiel wurde der erste Knoten des unteren Polygonteils der dritten Teilregion mit den beiden ersten Knoten des oberen Polygonteils verbunden (vergl. Abb. 5.25 (v)). Es verbleibt ein Teil der betrachteten Teilregion mit jeweils gleicher Anzahl Knoten auf den Polygonteilen. Die anderen Teilpolygone besitzen bereits Polygonteile mit jeweils gleicher Knotenanzahl. Die Zuordnung der Knoten in den Teilregionen (bzw. Teilen der Teilregion usw.) erfolgt anschließend in aufsteigender Reihenfolge (vergl. Abb. 5.25 (vi)). Zur Vermeidung unkontrollierter Zerlegungen werden an den Kanten der schmalen Region, an denen Dreiecke generiert wurden, in der benachbarten Region ebenfalls Dreiecke generiert (vergl. Abb. 5.25 (vii)). Damit ist die Vernetzung einer schmalen Region abgeschlossen. Die Zacken dürfen hier wegen der Nachbarschaft zu einer schmalen Region nicht wie in Unterkapitel 5.3 beschrieben vernetzt werden, sondern werden durch Vierecksreihen vernetzt. Zur Verbesserung der Elementqualität dürfen jedoch außerhalb der schmalen Region EinKnotenDreiecke eingesetzt werden. Die Vernetzung von Null-Regionen erfolgt ebenfalls auf diese Weise. Die Vierecke stellen hier keine Zerlegungselemente und die Dreiecke keine Zerlegungsdreickkandidaten dar. Ein allgemeines Verfahren zur Vernetzung von einzelnen schmalen Regionen ist in Algorithmus 5.1 skizziert. 108 KAPITEL 5. LÖSUNGEN ZUR P-VERNETZUNG Algorithmus 5.1 (EinzelneSchmaleRegion). 1. PROCEDURE 2. BEGIN 3. erzeuge Zuordung der Spitzenknoten; 4. setze pro Teilregion eine entsprechende Anzahl von Dreiecken ein, die optimal gewählt wurden; 5. ordne die weiteren Knotenpaare sukzessiv zu; 6. erzeuge Dreiecke in der benachbarten Region an den Kanten, an denen in der schmalen Region Dreiecke liegen; 7. END Mehrere benachbarte schmale Regionen Die Zuordnung von Knoten bei nebeneinanderliegenden schmalen Regionen ist etwas schwieriger. Dies gilt vor allen Dingen wegen der Weiterleitung von Zerlegungspfaden durch Dreiecke. Die Vernetzung wird zunächst anhand eines Beispiels (Abb. 5.26) vorgestellt. Anschließend wird das Verfahren in Algorithmus 5.2 skizziert. In Abb. 5.26 sind drei benachbarte schmale Regionen durch vier Polygonteile gegeben. Der erste Polygonteil besteht aus sieben, der zweite aus neun, der dritte aus acht, der vierte aus sechs Knoten (vergl. Abb. 5.26 (i)). Jede schmale Region wird analog zur Zuordnung bei einzelnen Regionen zunächst in die durch die Zacken gegebenen Teile aufgeteilt (vergl. Abb. 5.26 (ii)). Eine Zacke, die an zwei schmalen Regionen liegt, verursacht dabei in beiden schmalen Regionen eine Aufteilung. Würde die Aufteilung der schmalen Regionen hiermit enden, so gäbe es schmale Regionen, bei denen z.B. mehrere (durch die Zuordnung entstandene) Teile eines Polygonteils einem Teil eines anderen Polygonteils gegenüberliegen könnten. Im Beispiel würden z.B. dem dritten Teil des ersten Polygonteils der dritte und vierte Teil des zweiten Polgonteils gegenüberliegen. Eine Zuordnung der Knoten gemäß der Zuordnung bei einzelnen schmalen Regionen verkompliziert sich, wenn - wie im Beispiel - der dritte und vierte Teil des zweiten Polygonteils in der höher gelegenen schmalen Region nur einem Teil (dritter Teil des ersten Polygonteils) und in der darunterliegenden, benachbarten schmalen Region zwei Teilen (dritter und vierter Teil des dritten Polygonteils) gegenüberliegt. Denn die 5.2. VERNETZUNG VON SCHMALEN REGIONEN 1 2 3 5 4 6 7 1.Polygonteil 9 2.Polygonteil 109 2 7 1 3 5 1 2 8 6 4 8 7 3 5 3.Polygonteil 6 4 1 2 3 4 5 6 (i) 4.Polygonteil (ii) 1 1. 4. 3. 2. 2 4. 2. 3. 2. 3. 3 4 1. 2 3 1. (iii) 4. 3. 1 4. 1. 4. 3. 2 1. 3 1. 1 4. 3. 1 2 (iv) 1 2 2 3 1. 1 4. 1. 2 3 2. 2. 1 1. 4. 2. 1. 2 3 3. 2. 3. 2. 3. 1 2 3 2 3 1 1 4. 1. 2. 1 2 3 1. (v) (vi) (vii) (viii) 1 2 Abbildung 5.26: Vernetzung benachbarter schmaler Regionen 110 KAPITEL 5. LÖSUNGEN ZUR P-VERNETZUNG Zuordnung von Knoten einer schmalen Region muß zur Vermeidung einer unkontrollierten Weiterleitung von Zerlegungspfaden immer in Abhängigkeit der benachbarten schmalen Regionen geschehen. Deswegen wird eine weitere Unterteilung vorgenommen, durch die gewährleistet wird, daß alle schmalen Regionen in gleich viele Teile unterteilt werden. Dazu werden die bereits vorgenommenen Unterteilungen an den Zacken in alle weiteren schmalen Regionen fortgesetzt, in dem jeweils von den Knoten ausgegangen wird, an denen eine Unterteilung bereits anliegt. Im Beispiel sind dies die Knoten 2 und 4 des dritten Polygonteils und der Knoten 7 des zweiten Polygonteils (vergl. Abb. 5.26 (ii)). Die Unterteilung erfolgt in Reihenfolge der nummerierten Knoten und innerhalb derer in Reihenfolge der nummerierten Polygonteile. Von einer bereits bestehenden Unterteilung ausgehend wird jeweils sukzessiv die Unterteilung in der benachbarten Teilregion vorgenommen bis alle Teilregionen bezüglich der Ausgangsunterteilung unterteilt sind (vergl. 5.26 (iii)). Die Unterteilung geschieht ähnlich wie bei einzelnen schmalen Regionen. Jedoch wird jeweils nach Möglichkeit ein Knoten zugeordnet, durch den die Mindestanzahl der Kanten des bisher gebildeten Blocks nicht unterschritten wird. Führt dies zu nicht akzeptablen Elementen wird analog zur Zuordnung bei einzelnen schmalen Regionen die Nähe eines Knotens zur Winkelhalbierenden berücksichtigt. Durch die Unterteilung entstehen Blöcke der Nummer i , die aus den i-ten Teilen aller Teilregionen bestehen (vergl. 5.26 (iii)). Im Beispiel (vergl. Abb. 5.26 (iii)) wird dem Knoten 2 aus Polygonteil drei der Knoten 2 aus Polygonteil vier zugeordnet. Dadurch ist der erste Block bereits komplett gebildet, er enthält auf jedem Teil eines zugehörigen Polygons genau zwei Knoten. Für Knoten 4 des dritten Polygonteils wird Knoten 3 des vierten Polygonteils gewählt. Dadurch wird das bisher bestehende Minimum des Blocks 2 mit drei Knoten unterschritten. Würde jedoch der vierte Knoten des vierten Polygonteils zugeordnet, so würde ein sehr schlechter Winkel am vierten Knoten des dritten Polygonzugs entstehen. Dem siebten Knoten des zweiten Polygonzugs wird der sechste Knoten des ersten Polygonzugs zugeordnet. Würde hier nach der nächsten Annäherung zur Winkelhalbierenden verfahren, so müßte der fünfte Knoten des ersten Polygonzugs zugeordnet werden. Da jedoch der Winkel am sechsten Knoten noch akzeptabel ist, kann durch seine Wahl das Minimum des Blocks 3 von drei Knoten eingehalten werden. Block 4 ist durch diese Zuordnung bereits festgelegt. Würde es im Beispiel einen weiteren Polygonteil unterhalb der anderen Polygonteile und damit vier schmale Regionen geben, so müßten zur Vervollständigung der Blöcke den Knoten 2, 3 und 5 des vierten Polygonteils Knoten des fünften Polygonteils zugewiesen werden. 5.2. VERNETZUNG VON SCHMALEN REGIONEN 111 Innerhalb der Blöcke findet nun die Zuordnung statt. Dafür werden die Knoten pro Block und pro Polygonteil jeweils fortlaufend neu nummeriert (vergl. Abb. 5.26 (iv)). Ist die Anzahl der Knoten auf den Polygonteilen der Blöcke jeweils gleich, so ist die Zuordnung einfach: Dem j-ten Knoten eines Polygonteils wird jeweils der j-te Knoten eines benachbarten Polygonteils zugewiesen. Dies ist im Beispiel bei den Blöcken 1 und 3 der Fall (vergl. Abb. 5.26 (v)). Für die anderen Blöcke ist die Zuordnung schwieriger, da hier Dreiecke eingesetzt werden müssen. Durch die Erzeugung eines Dreiecks werden einem Knoten eines Polygonteils zwei benachbarte Knoten eines gegenüberliegenden Polygonteils zugeordnet. Definition 64. Der Knoten oder das Knotenpaar, das einem Knoten zugeordnet wird, bildet eine Knoteneinheit. In Abb. 5.27 (iii) ist die Vernetzung für den zweiten Block aus 5.26 dargestellt. Sie wird im weiteren noch diskutiert. Die Knoteneinheiten auf dem ersten Polygonteil sind der Knoten 1 und das Knotenpaar (2,3) innerhalb des Blocks. Die Knoteneinheiten auf dem zweiten Polygonteil sind die Paare (1,2) und (3,4). Die des dritten sind der Knoten 1 und das Paar (2,3) und die des vierten die Knoten 1 und 2. Die Knoten jedes Polygonteils in einem Block werden also in jeweils gleich viele Knoteneinheiten aufgeteilt und diese Anzahl entspricht der geringsten Anzahl von Knoten auf einem Polygonteil innerhalb des Blocks. Dies hat folgenden Hintergrund: Die Zuordnung erfolgt hier vom vierten Polygonteil ausgehend zum ersten, da der vierte Polygonteil innerhalb des Blocks die wenigstens Knoten besitzt. Dabei wird davon ausgegangen, daß der erste Polygonteil nicht auf dem Uferpolygon liegt. Weil der dritte Polygonteil drei und der vierte Polygonteil zwei Knoten (innerhalb des Blocks) besitzen, muß am dritten Polygonteil an einer Kante zwischen dem dritten und dem vierten Polygonteil ein Dreieck generiert werden. Die Auswahl der Kante erfolgt durch Überprüfung aller Kanten. Dazu wird an jeder Kante die Qualität des besten daran zu generierenden Dreieckpaares gemessen, wobei darin evtl. durch das Dreieckpaar erzwungene Dreiecke integriert sein müssen. Würde z.B. die Kante zwischen Knoten 2 und 3 des dritten Polygonteils im zweiten Block gewählt und dieser Kante der dritte Knoten des zweiten Polygonteils des zweiten Blocks zugeordnet, so müßte zwangsweise ein Dreieck aus dem dritten Knoten des dritten Polygonteils des zweiten Blocks und aus dem dritten und vierten Knoten des zweiten Polyonteils des zweiten Blocks generiert werden. Solche erzwungenen Dreiecke müssen bei der Qualitätsberechnung der zu wählenden Dreiecke 112 KAPITEL 5. LÖSUNGEN ZUR P-VERNETZUNG 1 2 3 1.Polygonteil 1 1 2 3 1 2 2.Polygonteil 3 2 3 4 1 4 3.Polygonteil 2 1 2 3 1 2 3 4.Polygonteil (i) 1 2 (ii) 1 2 3 1 2 3 4 1 2 3 1 2 (iii) Abbildung 5.27: Vernetzung innerhalb eines Blocks berücksichtigt werden (vergl. Abb. 5.27 (i)). Im Beispiel wird zwar die Kante zwischen dem zweiten und dem dritten Knoten des dritten Polygonteils des zweiten Blocks gewählt. Jedoch wird ein Dreieck zum vierten Knoten des zweiten Polygonteils des zweiten Blocks und ein Dreieck zum zweiten Knoten des vierten Polygonteils des zweiten Blocks generiert, wodurch kein erzwungenes Dreieck entsteht. Da zu diesem Zeitpunkt der dritte Polygonteil zwei Knoteneinheiten und die beiden benachbarten Polygonteile im zweiten Block nicht weniger Knoteneinheiten besitzen (nämlich zwei und vier) ist die Vernetzung von Dreiecken, die eine Kante auf dem dritten Polygonteil besitzen, abgeschlossen. Für den zweiten Polygonteil kann jetzt eine analoge Zuordnung stattfinden, wobei für die daran zu generierenden Dreiecke auf dem dritten Polygonteil die Knoten 1 und 2 und auf dem ersten Polygonteil die Knoten 1, 2 und 3 zur Verfügung stehen. (Die Anzahl der auf dem dritten Polygonteil des Blocks (an den ja bereits alle Dreiecke generiert wurden!) zur Verfügung stehenden Knoten ist also gleich der geringsten Anzahl von Knoten die innerhalb des Blocks auf einen Polygonteil liegen.) Das Ergebnis dieser Vernetzung zeigt Abb. 5.27 (ii). Anschließend wird noch das am ersten Polygonteil zu generierende Dreieck erzeugt Abb. 5.27 (iii). Im Anschluß daran können ggfs. sukzessiv die Knoten zur Generierung von Vierecken zugordnet werden. Im Beispiel ist dies nicht nötig, da die noch nicht vernetzten Bereiche bereits 5.2. VERNETZUNG VON SCHMALEN REGIONEN 113 Vierecke bilden. Die Zuordnung innerhalb des vierten Blocks geschieht in entsprechender Weise (vergl. Abb. 5.26 (vi)). Abb. 5.26 (vii) zeigt die komplette Vernetzung der benachbarten Region. Allgemein wird wie folgt zugeordnet: Von einem Polygonteil, dessen Knotenanzahl x innerhalb des Blocks bezüglich aller Polygonteile des Blocks minimal ist, müssen zu einem zweiten benachbarten Polygonteil innerhalb des Blocks mit höherer Anzahl y von Knoten y-x Dreiecke zugeordnet werden. (Im Beispiel Abb. 5.27 (i) ist x=2 und für den vierten Polygonteil erfüllt. Für den dritten (zu dem vierten benachbarten) Polygonteil gilt für die Anzahl y der Knoten innerhalb des Blocks y=3. Es muß also zum dritten Polygonteil y-x=1 Dreieck zugeordnet werden. Damit besitzt der dritte Polygonteil zwei Knoteneinheiten.) Die gleiche Anzahl von Dreiecken soll zur Vermeidung einer unkontrollierten Ausbreitung von Zerlegungspfaden in der nächsten dazu benachbarten Teilregion an den gleichen Kanten in entgegengesetzter Richtung generiert werden (vergl. Abb. 5.27 (i)). Damit ist die Generierung von Dreiecken an diesem Polygonteil abgeschlossen. Sei z die Anzahl der Knoten des weiter benachbarten Polygonteils, der nicht auf dem Uferpolygon liegt. (Im Beispiel wird der zweite Polygonteil betrachtet, auf dem innerhalb des Blocks z=4 Knoten liegen.) Dann müssen an z-x Kanten dieses Polygonteils Dreiecke von beiden Seiten zugeordnet werden. (Im Beispiel müssen am zweiten Polygonteil an z-x=4-2=2 Kanten Dreiecke zugeordnet werden (vergl. Abb. 5.27 (ii)).) Die Zuordnung setzt sich so fort, d.h. auf jedem Polygonteil des Blocks entstehen x Knoteneinheiten, außer auf einem Polygonteil, der auf dem Uferpolygon liegt. Auf solchen Polygonteilen genügt es, wenn a=min(b,c) Knoteneinheiten entstehen, wobei b die Anzahl der Knoten des betrachteten Polygonteils und c die Anzahl der Knoten des benachbarten Polygonteils ist. Denn in einer Null-Region müssen Zerlegungen nicht auf Dreiecke treffen. Läge der erste Polygonteil in Abb. 5.26 auf einem Uferpolygon, könnte wie in Abb. 5.28 dargestellt vernetzt werden. Es bräuchte dort ein Dreieck weniger generiert zu werden. Das dadurch entstandene Viereck kann seitlich keinen Zerlegungspfad weiterleiten. Bemerkung: Es ist aber auch immer möglich, an Polygonteilen, die auf dem Uferpolygon liegen, wie an allen anderen Polygonteilen zu vernetzen. Denn aus einem Viereck in einer Null-Region, auf das ein Zerlegungspfad trifft, entsteht bei der 3D-Vernetzung ein Prisma, das in Tetraeder zerlegt wird. Da statt dem Viereck letztlich zwei Dreiecke entstehen, bleibt die Anzahl der Tetraeder bei der 3D-Vernetzung gleich. 114 KAPITEL 5. LÖSUNGEN ZUR P-VERNETZUNG An allen Kanten, an denen Dreiecke anliegen, die zu weiteren Regionen, die nicht zu den schmalen Regionen gehören, benachbart sind, müssen in diesen Regionen noch Dreiecke generiert werden. Im Beispiel ist dies für die Kante zwischen dem dritten und dem vierten Knoten des ersten Polygonteils der Fall (vergl. Abb. 5.26 (viii)). 1 2 3 1.Polygonteil 1 1 2 1 2 2.Polygonteil 3 2 3 4 1 4 3.Polygonteil 2 1 2 3 1 (i) 3 2 3 4.Polygonteil 1 2 (ii) Abbildung 5.28: Vernetzung innerhalb eines Blocks, falls der erste Polygonteil auf dem Uferpolygon liegt In Algorithmus 5.2 ist ein allgemeines Verfahren zur Vernetzung von nebeneinanderliegenden schmalen Regionen skizziert. Integration von Verfeinerungspolygonen, die die schmalen Regionen schneiden Zur Vervollständigung der Vernetzung von schmalen Regionen wird in diesem Abschnitt das Auftreten von benachbarten Ecken durch den Schnitt eines Verfeinerungspolygons mit einer oder mehreren schmalen Regionen diskutiert. Ein Verfeinerungspolygon kann eine oder mehrere schmale Regionen durchtrennen oder einen Abschluß zu einer oder mehreren schmalen Regionen bilden. Im Unterschied zur Vernetzung von benachbarten Ecken, die nicht an eine schmale Region grenzen (vergl. Abschnitt 5.1.8), existiert hier (von der schmalen Region her) nur eine Elementreihe, die auf die beiden benachbarten Ecken trifft. Bei der Vernetzung muß davon ausgegangen werden, daß über diese ein Zerlegungspfad führt. Der Schnitt durch ein Verfeinerungspolygon ist die einzige Möglichkeit, daß zwei benachbarte Ecken, die nicht auf einem Ein- oder Auslaufpolygon liegen, an einer schmalen Region liegen. Denn schmale Regionen entstehen nach Voraussetzung nicht durch benachbarte Verfeinerungspolygone. Da ein Schnitt- oder ein Uferpolygon niemals ein anderes Schnitt- oder Uferpolygon schneiden können, folgt die Behauptung. Zwei benachbarte Ecken, die auf einem Ein- oder Auslaufpolygon liegen, stellen keine Probleme dar, da durch die Zuweisung der Tiefenwerte auf dem Ein- und Auslaufpolygon auf 5.2. VERNETZUNG VON SCHMALEN REGIONEN 115 Algorithmus 5.2 (BenachbarteSchmaleRegionen). 1. PROCEDURE 2. BEGIN 3. erzeuge für jeden Polygonteil Zuordung der Spitzenknoten; 4. erzeuge alle Blöcke; 5. für (alle Blöcke) 6. min:=1000; 7. für (alle Polygonteile) 8. 9. min:=minimum[min, Anzahl des aktuellen Polygonteils innerhalb des aktuellen Blocks] für (alle Polygonteile) 10. n:=Anzahl Knoten des aktuellen Polygonteils innerhalb des aktuellen Blocks; 11. falls (aktueller Polygonteil nicht auf Uferpolygon) 12. 13. erzeuge an (n-min) Kanten des aktuellen Polygonteils optimale Dreiecke/Dreieckpaare; sonst 14. m=Anzahl der Knoten des zum aktuellen Polygonteils benachbarten Polygonteils innerhalb des aktuellen Blocks; 15. erzeuge an (n-min(m,n)) Kanten des aktuellen Polygonteils optimale Dreiecke/Dreieckpaare; 16. erzeuge restliche Vierecke durch sukzessives Zuordnen von Knoten; 17. erzeuge Dreiecke in weiteren benachbarten Regionen an den Kanten, an denen in einer schmalen Region ein Dreieck liegt; 18. END 116 KAPITEL 5. LÖSUNGEN ZUR P-VERNETZUNG den Polygonteilen einer schmalen Region keine Kanten mit unterschiedlichen Tiefenwerten der Knoten entstehen (vergl. 3.14). Deswegen muß für ihre Vernetzung lediglich berücksichtigt werden, daß die auf dem Berandungspolygon liegende Kante fest ist. Die Vernetzung kann so in die Vernetzung der schmalen Regionen voll integriert werden. Durch ein Verfeinerungspolygon wird eine schmale Region in mehrere Teile der schmalen Region (s. Abb. 5.29 (i)) (bzw. einfachheithalber in mehrere schmale Regionen) unterteilt bzw. mehrere nebeneinanderliegende schmale Regionen werden in blockähnliche Teile gegliedert (s. Abb. 5.29 (ii)). Diese Teile werden im folgenden als Überblöcke bezeichnet (Abb. 5.29 (ii)). Sie werden bei vorhandenen Zacken in weitere Blöcke gemäß der Vernetzung für benachbarte schmale Regionen (vergl. Abschnitt 5.2.1) aufgeteilt. Sollte ein Verfeinerungspolygon an einem Polygonteil enden (Abb. 5.30 a)), so wird das Verfeinerungspolygon gemäß der Blockbildung für benachbarte schmale Regionen verlängert ohne jedoch eine weitere Verfeinerung zu bewirken (Abb. 5.30 b)). Dies geschieht zur Vereinfachung der Vernetzung. Eine bis dahin noch nicht unterteilte schmale Region wird dadurch in zwei schmale Regionen unterteilt. Durch die Unterteilungen entstehen auf einer Seite (in Abb. 5.30 ist dies die linke Seite) Regionen, deren Tiefenwerte der Knoten gleich geordnet sind wie die Tiefenwerte in schmalen Regionen, die nicht durch ein Verfeinerungspolygon geschnitten werden (Abb. 5.30 c)). In diesem Fall kann die Vernetzung auch wie in solchen schmalen Regionen stattfinden (vergl. Algorithmen 5.1 und 5.2). Verfeinerungspolygon (i) (ii) Abbildung 5.29: Aufteilung von schmalen Regionen durch ein Verfeinerungspolygon Auf der anderen Seite (in Beispiel Abb. 5.30 rechte Seite) bewirkt ein Verfeinerungspolygon (außer im Verlängerungsbereich) unterschiedliche Tiefenwerte der Knoten an den Kanten, die inzident zum Verfeinerungspolygon 5.2. VERNETZUNG VON SCHMALEN REGIONEN 117 t t+3 t t+3 t+1 t+4 t+1 t+4 t+2 t+2 t+2 t+3 t+3 a) b) k1 t+3 R1 P1 t+1 t+1 k2 t+2 R2 t t P2 t+2 t+2 t+2 R3 t+3 c) d) Abbildung 5.30: Tiefenwertzuordnung für diese Regionen liegen. Hier muß eine angepaßte Vernetzung stattfinden (Abb. 5.30 c) + d)): k1 und k2 sind Kanten eines Polygonteils innerhalb einer schmalen Region mit Knoten unterschiedlicher Tiefenwerte. Durch die Verbindung von P1 und P2 würde ein Konfliktviereck enstehen. Zu dessen Vermeidung müssen an diesen Kanten zu beiden Seiten hin Dreiecke generiert werden (s. Abb. 5.30 d)). In der Region R2 , an der sowohl k1 als auch k2 anliegt, sollen die Dreiecke optimal an das Verfeinerungspolygon generiert werden, in der Region R3 soll das zu generierende Dreieck durch das Verfeinerungspolygon begrenzt sein und in der Region R1 wird die Ecke, falls sie freiliegend ist, wie eine solche vernetzt. Aufgrund der Situation kann davon ausgegangen werden, daß die Winkel zwischen Verfeinerungspolygon und Polygonteilen der schmalen Regionen 180◦ nicht übersteigen und damit keine entarteten Elemente entstehen. Deswegen findet eine Vernetzung immer analog zu Abb. 5.30 d) statt: An den Kanten, an denen unterschiedliche Tiefenwerte der Knoten anliegen, werden zu beiden Seiten hin (analog zu Abb.5.30 d)) an das Verfeinerungspolygon Dreiecke generiert (vergl. auch Abb. 5.38). Durch diese Vernetzung werden Konfliktvierecke vermieden und Zerlegungspfade entsprechend der bisherigen Strategie weitergeleitet. Der Rest des Überblockes/der schmalen Region, an dem die Polygonteile keine Kanten mit Knoten unterschiedlichen 118 KAPITEL 5. LÖSUNGEN ZUR P-VERNETZUNG Tiefenwerts enthalten, kann wie benachbarte schmale Regionen bzw. eine einzelne schmale Region gemäß der Algorithmen 5.1 und 5.2 vernetzt werden. Vernetzung von Kehrtwenden Kehrtwenden (vergl. Def. 60 Seite 71) umschließen Teilregionen, die, falls die Kehrtwende aus drei oder weniger Kanten besteht, gesondert vernetzt werden müssen: (i) (ii) Abbildung 5.31: Kehrtwende mit wenigen Kanten Kleine Teilregionen, die von einer Kehrtwende mit zwei bis drei Kanten umschlossen werden (Abb. 5.31), können wie in Abb. 5.32 vernetzt werden: Da immer einkalkuliert werden muß, daß durch die schmale Region ein Zerlegungspfad führt, muß im Fall Abb. 5.31 (i) an der Kante, über die der Zerlegungspfad in die benachbarte Region weitergeleitet werden könnte, in der benachbarten Region ein Dreieck generiert werden (Abb. 5.32 (i)). Damit auf das Viereck innerhalb der Kehrtwende nicht von drei oder mehr Seiten Zerlegungspfade auftreffen können, müssen an den anderen beiden Kanten in der benachbarten Region jeweils Vierecke generiert werden (vergl. Abb. 5.32 (i)). Hier wird von genügend großem Platz ausgegangen. Ist dieser nicht vorhanden, wird die schmale Region als nicht vernetzbar“ eingestuft. Im ” Fall Abb. 5.31 (ii) werden für das durch die Kehrtwende entstandene Dreieck in der benachbarten Region Dreiecke generiert (Abb. 5.32 (ii)), damit ein Zerlegungspfad gemäß der Strategie weitergeleitet werden kann. Bezüglich des Platzes wird analog verfahren. Nach der Vernetzung der schmalen Regionen kann zur Verbesserung der Elemente eine Anpassung der Knoten durch Verschiebung wie in [Schu97] stattfinden. Die dritte Phase umfaßt dann die Vernetzung der Übergänge der schmalen Region in einen breiteren Teil der Region. Diese wird im folgenden Abschnitt vorgestellt. 5.2. VERNETZUNG VON SCHMALEN REGIONEN (i) 119 (ii) Abbildung 5.32: Vernetzung einer Kehrtwende mit wenigen Kanten 5.2.2 Übergänge schmaler Regionen Mündet eine schmale Region in einen breiteren Teil der zugehörigen Region, so muß der Übergang so vernetzt werden, daß mögliche Zerlegungspfade gemäß der Strategie weiter kontrolliert verlaufen. I.a. ist es immer möglich, daß durch die schmale Region ein Zerlegungspfad geführt wird. Ebenfalls muß davon ausgegangen werden, daß entlang der an die schmale Region angrenzenden Polygonteile des breiteren Teils der Region Zerlegungspfade geführt werden (vergl. Abb. 5.33). schmale Region breiter Teil der Region Abbildung 5.33: Schmale Region und breiter Teil der Region Abbildung 5.34: Vernetzung am Übergang einer schmalen Region Das Zusammentreffen dreier möglicher Zerlegungspfade wird am besten durch ein Dreieck koordiniert (vergl. Abb. 5.34). Damit wird ein auf dieses Dreieck auftreffender Zerlegungspfad entlang der Polygonteile bzw. entlang 120 KAPITEL 5. LÖSUNGEN ZUR P-VERNETZUNG der Randelemente des breiteren Teils der Region und entlang der schmalen Region gemäß der Strategie zur Leitung von Zerlegungspfaden weitergeleitet. Zur Weiterleitung eines Zerlegungspfades entlang der Randelemente sollen an den direkt zur schmalen Region benachbarten Kanten im breiteren Teil (Übergangskanten, vergl. Abb. 5.34) nach Möglichkeit Vierecke generiert werden. Dies ist beim Übergang zu einem breiteren Teil immer möglich, da dort nach Definition genügend Platz vorhanden sein muß. An den Übergangskanten müssen dann in den benachbarten Regionen ebenfalls Vierecke generiert werden (Abb. 5.36 (iv)). Allerdings können dabei Schwierigkeiten auftreten, wenn am Übergang eine Zacke vorliegt (vergl. Abb. 5.35). Abbildung 5.35: Vernetzung am Übergang einer schmalen Region Denn die Vernetzung mit Vierecken im kleinen Winkel einer Zacke - wie es in diesem Fall in der zur schmalen Region benachbarten Region bei einer Zacke vom t+x-Fall geschehen müßte - verursacht sehr schlechte Elemente. Da an einer Übergangskante ohne Verletzung der Strategie aber auch zu beiden Seiten hin Dreiecke generiert werden können, soll dies bei Zacken vom t+x-Fall aufgrund des Platzmangels geschehen (vergl. Abb. 5.36 (i)+(ii)). An der anderen Zackenkante, die zur schmalen Region gehört, soll die Vernetzung von dem Element, das von der Vernetzung der schmalen Region vorgeschrieben wird, abhängig sein. Ist dies ein Viereck (vergl. Abb. 5.36 (i)), so wird trotz Generierung schlechter Elemente auch ein Viereck innerhalb der Zacke akzeptiert. Denn die Vernetzung eines Dreiecks an dieser Stelle würde dazu führen, daß innerhalb der schmalen Region auch mit einem Dreieck vernetzt werden müßte. Evtl. könnten dadurch sehr viele Zerlegungsdreiecke entstehen. Muß an der Kante der schmalen Region ein Dreieck in der schmalen Region generiert werden, so wird wie in Abb. 5.36 (ii) in der benachbarten Region an dieser Kante ebenfalls ein Dreieck generiert. Falls eine Zacke vom t-Fall vorliegt und an beiden Kanten der Zacke Vierecke generiert werden (vergl. Abb. 5.36 (iii)), kann im kleinen Winkel der Zacke analog zu einzelnen Zacken oder mehreren benachbarten Zacken (vergl. Abschnitt 5.2.1) durch eine Verbindungskante ein ZweiKantenDreieck (Dreieck, das mit genau zwei Kanten 5.2. VERNETZUNG VON SCHMALEN REGIONEN t 121 t+x t t t+x t+x (i) (ii) (iii) (iv) Abbildung 5.36: Vernetzung am Übergang einer schmalen Region auf der Kontur liegt, vergl. Def. 65 Seite 125) generiert werden. Dafür muß allerdings gewährleistet sein, daß die weitere Vernetzung wie bei einzelnen Zacken bzw. mehreren benachbarten Zacken stattfinden kann und der nötige Platz für ein Viereck an der Verbindungskante vorhanden ist. Durch diese Vernetzung können ggfs. einige Zerlegungspfade vermieden werden. Ist der nötige Platz nicht vorhanden, wird die Zacke wie eine Zacke vom t+x-Fall vernetzt. Liegt keine Zacke vor, so wird wie in Abb. 5.36 (iv) vernetzt. Ein Viereck an einer Übergangskante im breiteren Teil kann direkt an das Dreieck am Übergang generiert werden. In der benachbarten Region muß dann an der Übergangskante auch ein Viereck generiert werden. Die Vernetzung in einer benachbarten Region an einer zur schmalen Region gehörenden Kante neben einer Übergangskante erfolgt in Abhängigkeit der Vernetzung der schmalen Region: Es wird dort das gleiche Element wie in der schmalen Region an dieser Kante generiert. Es gibt einige Fälle, bei denen die Vernetzung verbessert werden kann: Eine schmale Region besteht entweder aus zwei Polygonteilen mit gleichem Tiefenwert t der Knoten oder mit unterschiedlichen Tiefenwerten t und t+x der Knoten. Es wird hier zuerst der letzte Fall betrachtet. In diesem Fall muß die schmale Region und der breitere Teil, in den die schmale Region mündet, den Tiefenwert t+x besitzen, denn sonst würde die schmale Region nicht existieren. Da die Tiefenwerte der Knoten eines Polygonabschnitts immer gleich sind, setzen sich die Tiefenwerte der Knoten der Polygonteile der schmalen Region an den Knoten der Polygonteile des breiteren Teils der Region jeweils fort, bis jeweils eine Ecke erreicht wird. Falls nun gewährleistet ist, daß entlang des Polygonteils der breiteren Region mit den Knoten mit Tiefenwert t+x kein Zerlegungspfad geführt wird, kann, falls die Winkel am Übergang dies erlauben, die Vernetzung wie in Abb. 5.37 stattfinden. Die generierten Vierecke sind keine Konfliktvierecke. Wird ein Zerle- 122 KAPITEL 5. LÖSUNGEN ZUR P-VERNETZUNG t+x t+x t+x t+x t t t t Abbildung 5.37: Verbesserte Vernetzung am Übergang einer schmalen Region gungspfad durch die schmale Region geführt, so wird er im breiteren Teil der Region entlang des zur schmalen Region benachbarten Polygonteils, dessen Knoten den Tiefenwert t besitzen, weitergeführt. Da nach Voraussetzung im breiteren Teil der Region kein Zerlegungspfad entlang des anderen zur schmalen Region benachbarten Polygonteils, dessen Knoten den Tiefenwert t+x besitzen, geführt wird, und die Region ebenfalls den Tiefenwert t+x besitzt, darf entlang dieses Teils der Kontur beliebig vernetzt werden, d.h. hier brauchen später keine Viereckreihen generiert zu werden. Es dürfen sogar bereits generierte Elemente an Ecken oder Zacken in diesem Bereich entfernt werden, da ja vorausgesetzt wird, daß kein Zerlegungspfad entlang des Polygonteils verläuft und deswegen keine Zerlegungen über solche Kanten in die Region gelangen können. Durch den gleichen Tiefenwert der Knoten des Polygonteils und der Region können keine Konfliktelemente entstehen. In der Praxis treten solche Fälle häufiger auf (vergl. Abb. 5.38), die Polygonteile mit Knoten des Tiefenwerts t+x enden dann auf einem Ein- oder Auslaufpolygon. Es können auf diese Weise einige Zerlegungspfade eingespart werden. Der Fall, daß die Knoten beider Polygonteile einer schmalen Region den gleichen Tiefenwert besitzen, tritt in der Praxis selten auf. In diesem Fall muß der Tiefenwert der schmalen Region und des breiteren Teils ebenfalls t sein, da sonst die schmale Region nicht existieren würde. Es kann hier bei entsprechenden Voraussetzungen eine Verbesserung in einem angrenzenden breiteren Teil analog zu Abb. 5.37 stattfinden. Mit der Vernetzung der Übergänge ist die Vernetzung der schmalen Regionen abgeschlossen. 5.2. VERNETZUNG VON SCHMALEN REGIONEN 5.2.3 123 Beispiel Wurm In Abb. 5.38 ist die Vernetzung der schmalen Regionen und ihrer Übergänge zum breiteren Teil einer Region für den Abschnitt der Wurm dargestellt. Für die Übergänge wird bereits (in Voraussicht) eine nach Abb. 5.37 verbesserte Vernetzung gezeigt, soweit diese möglich ist. Deswegen ist die Vernetzung entlang des linken Uferpolygons schon komplett durchgeführt. Elemente an Ecken des jeweils anderen Polygonteils innerhalb der breiteren Teile der Region, an die das linke Uferpolygon grenzt, konnten entfernt werden. Anpassungen an Anschlußknoten der Ecken (ohne den Einsatz von neuen Elementen) wurden bereits integriert (vergl. Unterkapitel 5.4). Abbildung 5.38: Vernetzung der schmalen Regionen für das Wurmbeispiel Die schmalen Regionen treten hier häufig nebeneinanderliegend auf. Das Verfeinerungspolygon im Bereich der konvexen Biegung schneidet einige nebeneinanderliegende schmale Regionen. In diesem Bereich tritt auch eine Region auf, die zum einen durch ein Polygonteil, das aus einem Schnittpolygon und zum anderen durch ein Polygonteil, das aus einem Schnitt- und einem Verfeinerungspolygon entstanden ist, begrenzt wird, wobei diese Polygonteile eng beieinanderliegen. Diese Region wird auf der einen Seite durch ein Verfeinerungspolygon und auf der 124 KAPITEL 5. LÖSUNGEN ZUR P-VERNETZUNG anderen Seite durch den Schnitt der beiden oben genannten Polygonteile beendet. Die aus dem Schnitt entstandene Ecke wurde bereits wie eine Ecke innerhalb einer breiteren Region vernetzt, d.h. die Region wird wie eine Region vernetzt, die eine schmale Region und einen breiteren Teil enthält (vergl. auch Abschnitt 4.2.2). Zacken treten im Beispiel zwar in den schmalen Regionen auf, aber eher selten. Da sie nicht sehr kleine Winkel umschließen, werden sie zur Einsparung von Konflikt- und Zerlegungsdreiecken sowie von Zerlegungspfaden nicht wie Zacken vernetzt. Beendigungen einer schmalen Region durch Kehrtwenden treten nicht auf. 5.3 Vernetzung von Zacken In diesem Unterkapitel werden die einzelnen Fälle aus Tabelle 4.3, also die Aufgaben (ii) f) und g) aus Schema 4.31 S. 75, diskutiert. Teilweise werden zur Vernetzung der Zacken Templates, teilweise Algorithmen vorgestellt. Zacken sind laut Definition 57 zwei aufeinanderfolgende Kanten eines Polygonabschnitts, die einen Winkel kleiner γ einschließen. γ ist dabei von außen festzulegen und soll zwischen 0◦ und 120◦ liegen. Je größer γ in diesem Rahmen gewählt wird, je besser ist die Qualität der Elemente, die an den Zacken generiert werden. Jedoch entstehen dabei hauptsächlich Konfliktdreiecke, die wiederum zu vermeiden sind. Das bedeutet: Um möglichst gute Elemente zu erzeugen, muß γ möglichst groß gewählt werden und um möglichst wenige Konfliktdreiecke zu erhalten, muß γ möglichst klein gewählt werden. Entstehen durch mögliche Konfliktdreiecke viele und/oder lange Zerlegungspfade, sollte γ eher klein gewählt werden und damit die Konfliktdreiecke vermieden werden. Im folgenden wird zur Abdeckung möglichst vieler Fälle von einem sehr großen γ (nämlich γ = 120◦ ) ausgegangen. Für ein kleineres γ können die Lösungen leicht übertragen werden. Zacken, die eine gemeinsame Kante mit einer Ecke besitzen, dürfen dann nicht wie eine Zacke vernetzt werden, wenn die Vernetzung einer Zacke und einer Ecke unterschiedlich sind. Die Vernetzung der Ecke hat immer Vorrang, da sie entscheidend für die Einhaltung von Forderung 5.1 Seite 89 und der Vermeidung von Konfliktvierecken ist. Ggfs. muß die zweite Kante einer 5.3. VERNETZUNG VON ZACKEN 125 solchen Zacke dann durch Vierecke vernetzt werden. 5.3.1 Freiliegende Zacken Bei freiliegenden Zacken (vergl. Tabelle 4.3 (i)+(ii) Seite 69) wird zwischen einzelnen Zacken und nebeneinanderliegenden Zacken unterschieden. Da die einzelnen Zacken ein Spezialfall der nebeneinanderliegenden Zacken sind, wird zunächst die Vernetzung der nebeneinanderliegenden Zacken vorgestellt und später kurz auf die einzelnen Zacken eingegangen. Nebeneinanderliegende Zacken Für die Vernetzung mehrerer nebeneinanderliegender Zacken werden die darin enthaltenen Zacken bezüglich ihres Falls (t-Fall + t+x-Fall, vergl. Abschnitt 4.2.1) unterschieden. Die daraus resultierenden Kombinationen mehrerer nebeneinanderliegender Zacken sind geometrisch nicht alle möglich. Eine Aneinanderreihung mehrerer Zacken mit kleinen Winkeln, die ausschließlich einem Fall angehören, ist z.B. nicht möglich, da hierfür Überschneidungen der Kanten existieren müßten (vergl. Abb. 5.39 a)). Abbildung 5.39: (Nicht mögliche) Aneinanderreihung von Zacken Da zu befürchten ist, daß die Anzahl der Kombinationen von Kategorien und Fällen der benachbarten Zacken trotzdem exponentiell bleibt, wird die Vernetzung nicht durch Template-Technik aller Kombinationen gelöst. Stattdessen wird ein Algorithmus vorgestellt, der die enthaltenen Zacken jeweils in Abhängigkeit ihres Zusammenhangs untereinander vernetzt. Dabei erfolgt die Vernetzung wiederum gemäß der Strategie, Konfliktdreiecke zu vermeiden und Zerlegungspfade möglichst entlang der Randelemente zu führen. In diesem Sinne findet durch den Algorithmus eine optimale Vernetzung lokal statt. Der Zeitaufwand für die Vernetzung von (nebeneinanderliegenden) Zacken ist also bezüglich der Anzahl der Zacken linear. Für den Algorithmus wird definiert: Definition 65. Ein Dreieck, das mit genau einem Knoten auf der Kontur liegt, heißt EinKnotenDreieck (vergl. Abb. 5.40 (x): D2 , D7 , D9 , D10 , D11 ). Ein Dreieck, das mit genau einer Kante auf der Kontur liegt, heißt EinKantenDreieck (vergl. Abb. 5.40 (x): D1 , D6 , D8 , D12 ). 126 KAPITEL 5. LÖSUNGEN ZUR P-VERNETZUNG Ein Dreieck, das mit genau zwei Kanten auf der Kontur liegt, heißt ZweiKantenDreieck (vergl. Abb. 5.40 (x): D3 , D4 ). Folgende Probleme können bei der Vernetzung auftreten: Da ZweiKantenDreiecke in der t+x-Region einen Tiefenwert von t besitzen, sollen sie nach Möglichkeit dort nicht generiert werden. Stattdessen sollen entsprechende Stellen mit EinKantenDreiecken vernetzt werden. Wird auf einer Seite einer Kante ein EinKantenDreieck erzeugt, muß die andere Seite ebenfalls mit einem EinKantenDreieck vernetzt werden. Denn das EinKantenDreieck der einen Seite stellt einen Zerlegungsdreieckkandidaten dar: Somit könnte ein Zerlegungspfad in die Region, die auf der anderen Seite der Kante liegt, über diese Kante weitergeleitet werden; damit eine solche Weiterleitung nicht unkontrolliert passiert, wird auf der anderen Seite ebenfalls ein EinKantenDreieck generiert. (Bem: Im Gegensatz zu Eckenkanten, deren Knoten den gleichen Tiefenwert besitzen, läßt sich eine Weiterleitung von Zerlegungspfaden über Zackenkanten mit gleichem Tiefenwert der Knoten nicht immer vermeiden (vergl. Forderung 5.1).) In der t-Region ist die Generierung von ZweiKantenDreiecken möglich, die dabei entstehenden Verbindungskanten sowie die zugehörigen Konturkanten müssen jedoch analog zur Vernetzung von ±20◦ -Ecken vom Typ 1/2 notwendig mit Vierecken vernetzt werden. Diese Probleme müssen bei der Vernetzung der benachbarten Zacken beachtet werden. Wegen einzelner Abhängigkeiten der Zacken voneinander ist die Reihenfolge der Vernetzung wichtig. Bevor der Algorithmus vorgestellt wird, wird die Vernetzung an einem Beispiel dargelegt (Abb. 5.40 (i)). Die Kanten k2 bis k8 stellen mehrere nebeneinanderliegende Zacken dar. k1 und k9 sind die dazu benachbarten Kanten. Zunächst werden die Winkelhalbierenden zwischen je zwei benachbarten Zackenkanten bestimmt (Abb. 5.40 (ii)). Aus der Lage des ggfs. auftretenden Schnitts zweier benachbarter Winkelhalbierender wird die Notwendigkeit zur Generierung von EinKantenDreiecken in der t+x-Region bestimmt: Im Beispiel (Abb. 5.40 (iii)) werden an den Kanten k2 und k8 EinKantenDreiecke generiert, da die Schnittknoten der Winkelhalbierenden P2 und P8 in der t+xRegion relativ nah zur Kante liegen. Die Dreiecke werden durch die Kanten und die Schnittpunkte bestimmt. An k6 wird dagegen kein EinKantenDreieck generiert, da P6 in der t-Region liegt und an k6 deswegen auch ein ZweiKantenDreieck erlaubt ist. Die Generierung eines Vierecks an den Kanten k2 und k8 in der t+x-Region würde zu kleinen, evtl. schlechten Elementen führen. In 5.3. VERNETZUNG VON ZACKEN t k1 k2 k3 t k 7 t k2 k5k4 k8 k9 t 127 k2 k8 k6 t+x t+x k8 t+x t+x (i) (ii) (iii) (iv) t t t t k3 k3 z1 z3 k k4 z2 5 k7 k6 t+x z1 k k5 4 z2 k7 k6 t+x (v) (vi) t t t+x (ix) t+x (vii) t+x (viii) D1 V1 V 5 D2 D 8 V 6 V2 D3 D9 V3 V7 V D DD 8 D7 6 5 4 D10 V V9 V4 10 V11 D t+x D12 11 (x) Abbildung 5.40: Vernetzung nebeneinanderliegender Zacken der t-Region müssen - wie im vorletzten Absatz erwähnt - an diesen Kanten auch EinKantenDreiecke erzeugt werden (Abb. 5.40 (iv)). Diese werden als gleichseitige oder gleichschenklige Dreiecke generiert (s. später). Anschließend werden in der t-Region alle ZweiKantenDreiecke generiert (Abb. 5.40 (v)). Dies geschieht zunächst an den Kanten k3 und k4 und an den Kanten k5 und k6 . Dadurch werden die Verbindungskanten z1 und z2 erzeugt, an denen nach Möglichkeit ein Viereck generiert werden soll. Zwischen der Zwischenkante z2 und der Konturkante k7 ist der Winkel jedoch relativ klein, weswegen an z2 kein Viereck erzeugt werden soll. z2 wird deswegen wie eine (neue) Konturkante behandelt: Es entsteht an z2 und k7 ein Zwei” KantenDreieck“ (vergl. Abb. 5.40 (vi)) durch die Verbindungskante z3 . Die Erzeugung von ZweiKantenDreiecken wird so lange durchgeführt, bis an allen Verbindungskanten Vierecke generiert werden können. Im Beispiel werden 128 KAPITEL 5. LÖSUNGEN ZUR P-VERNETZUNG an z1 und z3 Vierecke generiert (Abb. 5.40 (vii)). Durch die ZweiKantenDreiecke müssen auch an den Konturkanten k3 bis k7 in der t+x-Region Vierecke generiert werden (Abb. 5.40 (viii)). Da (k3 , k4 ), (k5 , k6 ) und (k6 , k7 ) Zacken vom t-Fall sind, ist zumindest in der t+x-Region an deren Zackenknoten genügend Platz zur Generierung von Vierecken. Die noch nicht vernetzten Kanten werden anschließend mit Vierecken vernetzt (vergl. Abb. 5.40 (ix)). Schließlich werden Lücken zwischen zwei Elementen je nach Platz aneinander angepaßt (vergl. Abb. 5.40 (x): V3 und D6 ) oder mit EinKnotenDreiecken gefüllt“ (Abb. 5.40 (x) Füllen“ mit Dreiecken durch D2 , D7 , D9 , D10 , D11 ). ” ” Eine Anpassung geschieht dann, wenn zwischen zwei generierten Elementen nicht notwendigerweise ein EinKnotenDreieck generiert werden muß. Eine detaillierte Begründung erfolgt später. Das Verfahren ist in Algorithmus 5.3 dargestellt. Es folgt eine genauere Beschreibung der einzelnen Schritte für Algorithmus 5.3: Zu Zeile 4 (vergl. Abb. 5.40 (ii) nach (iii)): Aus dem folgenden Lemma 5.7 geht hervor, daß die Überprüfung der Bedingung in dem Fall, daß einer der beiden an der Kante anliegenden Winkel in der t+x-Region größer/gleich 180◦ ist, ohne Berechnung des Schnittpunkts der Winkelhalbierenden erfolgen kann. Lemma 5.7. Gegeben sei eine Zackenkante mit den Knoten A und B und den Winkeln α und β an diesen Knoten (vergl. Abb. 5.41). Falls œ α ≥ 180◦ , dann ist die Bedingung aus Zeile 4 genau dann erfüllt, wenn β ≤ (360◦ −α)/2 ist. Beweis. Sei S der Schnittpunkt der beiden Winkelhalbierenden (vergl. Abb. 5.41(ii)). Das Dreieck ABS besitzt am Knoten A einen Winkel von α/2, am Knoten B einen Winkel von β/2. ⇒“: Bei |SA|=|AB| liegt ein gleichschenkliges Dreieck vor. Für den Winkel ” ASB=γ gilt: γ = β/2. Weiterhin gilt: α/2 + β = 180◦ ⇔ β = 180◦ − α/2 = (360◦ − α)/2. Für |SA| < |AB| gilt: γ > β/2 und damit α/2 + β < 180◦ ⇔ β < 180◦ − α/2 = (360◦ − α)/2. ⇐“: Es gilt α/2 + β/2 + γ = 180◦ ⇔ γ = 180◦ − α/2 − β/2. ” Aus β = (360◦ −α)/2 folgt: γ = 180◦ −α/2−(360◦ −α)/4 = 90◦ −1/4α = β/2. In diesem Fall liegt ein gleichschenkliges Dreieck vor, es gilt |AS|=|AB|. Aus β < (360◦ − α)/2 folgt: γ > 180◦ − α/2 − (360◦ − α)/4 = β/2. In diesem Fall muß |AS| < |AB| gelten. 5.3. VERNETZUNG VON ZACKEN Algorithmus 5.3 (BenachbarteZacken). 1. PROCEDURE 2. BEGIN 3. erzeuge Winkelhalbierende zwischen allen Zackenkanten; 4. falls (Abstand Kante-Schnittpunkt der zugehörigen Winkelhalbierenden in t+x-Region < Kantenlänge der aktuellen Kante) 5. erzeuge EinKantenDreiecke in t+x-Region; 6. passe benachbarte EinKantenDreiecke der t+x-Region aneinander an; 7. generiere gegenüberliegende (gleichseitige oder gleichschenklige) EinKantenDreiecke in t-Region; 8. generiere ZweiKantenDreiecke in t-Region; 9. generiere Vierecke an Verbindungskanten; 10. generiere Vierecke an ZweiKantenDreiecke in t+x-Region; 11. generiere restliche Vierecke; 12. Anpassung der Elemente und Generierung aller restlichen EinKnotenDreiecke; 13. END 129 130 KAPITEL 5. LÖSUNGEN ZUR P-VERNETZUNG α A B A β γ B α β S (i) (ii) Abbildung 5.41: Skizze zum Beweis Lemma 5.7 liefert für die entsprechenden Fälle eine einfache Überprüfung der Bedingung aus Zeile 4. Zu Zeile 5 (vergl. Abb. 5.40 (iii)): Falls die Winkel an beiden Knoten der Kanten kleiner/gleich 180◦ sind, wird für die Generierung des Dreiecks der Schnittpunkt S zwischen den beiden Winkelhalbierenden gewählt (vergl. Abb. 5.42 (i)). Ist einer der beiden größer als 180◦ (œ α) (vergl. Abb. 5.42 (ii)), so wird der Schnittpunkt S’ gewählt, der aus dem Schnitt der Winkelhalbierenden zu β mit der Senkrechten auf AB in dem Knoten A entsteht. Dadurch werden im Dreieck Winkel, die größer als 90◦ sind, verhindert. A B A B S S’ S (i) (ii) Abbildung 5.42: Ermittlung eines Knotens zur Erzeugung von EinKantenDreiecken Zu Zeile 6 (im Beispiel von Abb. 5.40 nicht nötig): 5.3. VERNETZUNG VON ZACKEN 131 Definition 66. Eine Menge von EinKantenDreiecken (an nebeneinanderliegenden Zacken) heißt benachbart, wenn jedes EinKantenDreieck mit wenigstens einem weiteren EinKantenDreieck der gleichen Region einen gemeinsamen Knoten besitzt, an dem ein Winkel von ≤ 180◦ anliegt. Eine Menge von benachbarten EinKantenDreiecken kann ein Problem darstellen, da jeweils die in der Region liegenden Knoten zweier benachbarter Dreiecke nicht notwendigerweise identisch sind. Solche Knoten liegen lediglich auf der gleichen Winkelhalbierenden (vergl. Beschreibung zu Zeile 5 und Abb. 5.43 (i)). Seien S1 ... Sn (n ∈ IN ) die Schnittknoten einer nicht erweiterbaren Menge von n benachbarten EinKantenDreiecken. Die Anpassung der EinKantenDreiecke geschieht durch die Ersetzung von S1 ... Sn durch deren Mittelwert. (vergl. Abb. 5.43). s2 s3 s1 (i) S (ii) Abbildung 5.43: Anpassung benachbarter EinKantenDreiecke Zu Zeile 7 (vergl. Abb. 5.40 (iv)): Hier muß unterschieden werden, ob eine Kante, an der ein EinKantenDreieck in der t-Region generiert werden soll, zu einer Zacke vom t-Fall gehört oder nicht. Sie muß wenigstens zu einer Zacke vom t+x-Fall gehören, da sonst in der t+x-Region an dieser Kante kein EinKantenDreieck generiert worden wäre. Gehört die Kante nicht zu einer Zacke vom t-Fall, kann das Dreieck als gleichseitiges Dreieck mit Kantenlänge der aktuellen Kante generiert werden (Abb. 5.44 (i), vergl. auch D1 und D6 in Abb. 5.40 (iv)). Sonst soll ein gleichschenkliges Dreieck generiert werden, dessen erster Schenkel die aktuelle Kante ist und dessen zweiter Schenkel auf der Winkelhalbierenden in der Zacke vom t-Fall liegt (Abb. 5.44 (ii)). Es soll erwähnt werden, daß die notwendige Generierung eines EinKantenDreiecks in der t-Region die Generierung eines ZweiKantenDreiecks, wie sie für Zacken vom t-Fall vorgeschlagen wird, verhindert. 132 KAPITEL 5. LÖSUNGEN ZUR P-VERNETZUNG (i) (ii) Abbildung 5.44: Generierung gegenüberliegender EinKantenDreiecke Zu Zeile 8 (vergl. Abb. 5.40 (v),(vi)): Die Generierung von ZweiKantenDreiecken in der t-Region erfolgt an allen Zacken vom t-Fall, an denen noch kein Dreieck in der t-Region generiert wurde. Die Generierung geschieht durch die Verbindung der nicht miteinander verbundenen Knoten der Zacke. Diese Verbindungskante wird anschließend wie eine Polygonkante behandelt und es wird überprüft, ob eine dadurch neu entstandene Zacke hieran vorliegt (vergl. Abb. 5.40 (v) z2 k7 ). Eine solche wird wiederum durch ein ZweiKantenDreieck vernetzt. Das Verfahren setzt sich fort, bis keine Zacken vom t-Fall mehr vorhanden sind und an allen nicht vernetzten Verbindungskanten ein Viereck generiert werden kann. Zu Zeile 9 (vergl. Abb. 5.40 (vii)): Die Generierung der Vierecke an den Verbindungskanten geschieht - wie die Generierung der Viereckreihen - mit Hilfe von Winkelhalbierenden (vergl. Abb. 5.45). A B Abbildung 5.45: Generierung eines Vierecks an einer Verbindungskante Dazu werden die Winkel zwischen der Verbindungskante und der benachbarten Kontur- bzw. Verbindungskante gewählt. Ist ein Winkel größer als 270◦ , so wird statt der Winkelhalbierenden die Senkrechte auf die Verbindungskanten zum entsprechenden Knoten gewählt (vergl. Abb. 5.45 Knoten B), damit keine Vierecke mit Winkeln größer 135◦ entstehen. Die auf der 5.3. VERNETZUNG VON ZACKEN 133 Winkelhalbierenden bzw. Senkrechten abgemessene Kante soll Durchschnittskantenlänge besitzen. Zu Zeile 10 (vergl. Abb. 5.40 (viii)): Diese Vierecke werden (mit Hilfe der Winkelhalbierenden zu den Winkeln zwischen jeweils zwei Konturkanten) analog zu den Vierecken an den Verbindungskanten generiert (siehe Zeile 9). Zu Zeile 11 (vergl. Abb. 5.40 (ix)): Alle noch nicht vernetzten Kanten werden jetzt mit Vierecken vernetzt. Dies geschieht wiederum analog zur Vernetzung der Verbindungskanten mit Vierecken (siehe Zeile 9). Zu Zeile 12 (vergl. Abb. 5.40 (x)): Ob zwei benachbarte Elemente, die keine gemeinsame Kante aber einen gemeinsamen Knoten K der Kontur besitzen, aneinander angepaßt werden oder ob dazwischen EinKnotenDreiecke eingesetzt werden, entscheiden der Winkel am gemeinsamen Knoten K zwischen den beiden benachbarten Elementen und die Winkel innerhalb der Elemente in der betrachteten Region an diesem Knoten. In einem Dreieck soll nach Möglichkeit der Winkel nicht größer als 90◦ , in einem Viereck nicht größer als 135◦ werden. Eine Anpassung wird durch die Berechnung eines Mittelwertes der Knoten, die innerhalb der Region liegen und durch eine Kante mit dem aktuell betrachteten Knoten K verknüpft sind, (analog zu Schritt 6) vorgenommen (vergl. Abb. 5.40 (x) z.B. V1 und D1 , V3 und D6 ). Sie soll dann geschen, wenn dadurch die Winkel in den Elmenten an dem Knoten K ihren Maximalwert nicht überschreiten. Die gesamte Anpassung geschieht sukzessiv entlang der Kanten. Die Knoten, deren Mittelwerte berechnet werden, können bereits durch vorherige Anpassung oder durch die Vernetzung zu mehreren Knoten der Kontur verbunden sein. Die Anzahl der Verbindungen jedes Knoten zur Kontur muß bei der Mittelwertberechnung berücksichtigt werden. Ist eine Anpassung zwischen zwei Elementen nicht möglich, da z.B. zu große Winkel entstehen, werden EinKnotenDreiecke in Abhängigkeit des Winkels zwischen den benachbarten Elementen am Knoten K generiert: Ist dieser größer als 90◦ und kleiner als 180◦ , so werden zwei Dreiecke, ist er kleiner als 90◦ wird ein Dreieck eingesetzt. Die Generierung eines Dreiecks erfolgt durch Einsetzen einer Verbindungskante (vergl. Abb. 5.40 (x) z.B. D7 ). Zur Generierung zweier Dreiecke wird zuerst eine Zwischenkante auf der Winkelhalbierenden mit Durchschnittskantenlänge eingefügt; anschließend werden zwei Verbindungskanten eingesetzt. Die Generierung von mehr als zwei EinKnotenDreiecke geschieht analog durch gleichmäßige Aufteilung des Winkels. 134 KAPITEL 5. LÖSUNGEN ZUR P-VERNETZUNG Zusammenfassend werden mit einer weiteren Betrachtung der Schritte u.a. die Fälle genannt, die zu einer schlechten Vernetzung führen oder eine Vernetzung verhindern. Es stellt sich heraus, daß die Qualität der Elemente teilweise mit den Winkeln der Zacken abnimmt aber die Vernetzung in nur wenigen Fällen nicht möglich ist. Als positiv kann herausgestellt werden, daß Dreiecke nur zur Vermeidung schlechter Vierecke oder zur Vermeidung der Weiterleitung von Zerlegungspfaden durch Vierecke oder der Entstehung von Konfliktvierecken generiert werden. Die EinKantenDreiecke in der t+x-Region werden durch die Winkelhalbierenden bestimmt (Zeile 5, vergl. Abb. 5.40 (iii)) und stellen deswegen für benachbarte Elemente keine Probleme dar. Kleine Winkel verschlechtern zwar die Qualität der Elemente. Die Abweichung eines kleinen Winkels zum Optimalwinkel eines Dreiecks ist jedoch immer noch geringer als zum Optimalwinkel eines Vierecks, weswegen die Vernetzung mit EinKantenDreiecken hier sinnvoll ist. ZweiKantenDreiecke würden noch eine bessere Qualität besitzen, sind aber an diesen Stellen nicht erlaubt. Bei der Anpassung der benachbarten EinKantenDreiecke (Zeile 6) durch Erzeugung des Mittelwerts bleibt die Winkelabweichung zu den ursprünglich generierten Dreiecken möglichst gering. Die Generierung von EinKantenDreiecken in der t-Region (Zeile 7, vergl. Abb. 5.40 (iv)) ist auf die beschriebene Weise immer möglich. Nur einer der beiden Winkel kann zu einer Zacke vom t-Fall gehören. Ist dies der Fall, so kann am entsprechenden Knoten zwar ein kleiner Winkel auftreten, aber das Dreieck kann ungehindert generiert werden, da an dem anderen Knoten genügend Platz vorhanden ist. Durch die notwendige Generierung eines EinKantenDreiecks wird leider die Generierung eines ZweiKantenDreiecks, das für kleine Winkel besser wäre, verhindert. Auch die sukzessive Generierung von ZweiKantenDreiecken in der t-Region (Zeile 8, vergl. Abb. 5.40 (v)+(vi)) kann ungehindert erfolgen. Benachbarte Kanten können der Vernetzung nicht entgegenstehen. Durch das Einsetzen von ggfs. mehreren Verbindungskanten (s. Kommentare zu Zeile 8) werden enge Stellen jedoch schon durch Dreiecke vernetzt. Deswegen kann für die Generierung eines Vierecks i.a. von genügend Platz ausgegangen werden. Jedoch ändert sich durch den sukzessiven Einsatz von Verbindungskanten der Polygonabschnitt im Laufe der Vernetzung so, daß Voraussagen zur Qualität der weiteren Vernetzung nicht auf Anhieb möglich sind. Die Situation für die Generierung eines Vierecks an einer Verbindungskante (Zeile 9, vergl. Abb. 5.40 (vii)) erscheint zunächst ähnlich der Situation der Generierung eines Vierecks an einer Verbindungskante bei ±20◦ -Ecken 5.3. VERNETZUNG VON ZACKEN 135 vom Typ1/2. Es muß hier eine entsprechende Bedingung für die jeweils zur Verbindungskante benachbarten Kanten gelten. D.h. für die Generierung eines Vierecks muß insbesondere bezüglich der Nachbarkanten genügend Platz vorhanden sein. Ein Platzmangel bei der Generierung eines Vierecks an einer Polygonkante (Zeile 10, vergl. Abb. 5.40 (viii)) kann nicht auftreten, da die Polygonkante mit wenigstens einer benachbarten Kante eine Zacke vom t-Fall bildet. Mit der anderen Kante kann sie jedoch eine Zacke vom t+x-Fall bilden, wodurch ein solches Viereck an einer Seite einen kleinen Winkel erhalten würde! Solange solche Winkel akzeptiert werden, ist eine Vernetzung möglich. Bei der Generierung der restlichen Vierecke (Zeile 11, vergl. Abb. 5.40 (ix)) treten i.a. keine Platzprobleme auf, da die Kanten, an denen die Vierecke generiert werden, nicht zu Zacken gehören. Für das Verfahren zur Anpassung der Elemente und Generierung restlicher EinKnotenDreiecke (Zeile 12, vergl. Abb. 5.40 (x)) besteht kein Hindernis. Durch die Wahl des Mittelpunktes werden die Winkel wiederum optimiert. Der Einsatz von EinKnotenDreiecken erfolgt in Abhängigkeit des vorhandenen Winkels, weswegen ihre Qualität implizit berücksichtigt wird. Es ist möglich, daß die Vernetzung bezüglich der Qualität der Elemente noch weiter optimiert werden kann. Dies ist z.B. dann der Fall, wenn an einem Knoten mit kleinem Winkel ein Dreieck und ein Viereck mit Hilfe einer Winkelhalbierenden generiert wurden. Eine Verschiebung eines Knotens kann eine Verbesserung der Qualität der Elemente bewirken. Diese weitere Optimierung wird beim Smoothing des gesamten Netzes berücksichtigt (Unterkapitel 5.6). Wie bereits angekündigt, wird jetzt noch kurz auf die Vernetzung einzelner Zacken eingegangen. Einzelne Zacken Einzelne Zacken treten wesentlich häufiger auf als nebeneinanderliegende Zacken. Sie stellen einen Sonderfall der nebeneinanderliegenden Zacken dar und können deswegen auch nach Algorithmus 5.3 vernetzt werden. Zur schnelleren Vernetzung werden hier jedoch noch Templates vorgestellt. Dabei wird nach dem Winkel der Zacken unterschieden. Dies geschieht analog zu Zeile 12 in Algorithmus 5.3, bei der in Abhängigkeit der Größe einer Lücke über die Integration weiterer EinKnotenDreiecke entschieden wird. Es werden dazu folgende Kategorien definiert: 136 KAPITEL 5. LÖSUNGEN ZUR P-VERNETZUNG Tabelle 5.3. Kategorie : ±α M inimum M aximum ±20 0 40 ±60 40 80 ±100 80 120 Es wird weiterhin von γ=120◦ ausgegangen. Für eine andere (kleinere) Wahl von γ brauchen ggfs. die ±100◦ - und evtl. die ±60◦ -Kategorien nicht beachtet zu werden. Neben den Winkelkategorien muß wiederum der Fall der Zacke unterschieden werden. Bei der Vernetzung von Zacken vom t-Fall können in der t-Region analog zu Algorithmus 5.3 Zeile 8 ZweiKantenDreiecke generiert werden. In Algorithmus 5.3 werden solange ZweiKantenDreiecke generiert, bis eine Verbindungskante mit einer (evtl. neuen) Konturkante keine Zacke mehr bildet. Vor Anwendung der Template-Technik soll überprüft werden, ob bei einer Zacke vom t-Fall eine Verbindungskante mit einer benachbarten Konturkante eine Zacke bildet. Ist dies der Fall, so soll nach Algorithmus 5.3 vernetzt werden, weil eine Vorgabe von Templates für alle möglichen solcher Fälle zu aufwendig ist. Deswegen kann für die Template-Vernetzung davon ausgegangen werden, daß an solchen Verbindungskanten immer genügend Platz zur Generierung eines Vierecks mittels Winkelhalbierender ist. Die Begrenzung der Vernetzung zur Vernetzung weiterer Kanten bilden jeweils die Winkelhalbierenden an den beiden äußeren Knoten der Zacke (vergl. Abb. 5.46). Die Winkelhalbierenden können jeweils nur einen Wert zwischen 60◦ und 120◦ annehmen, da zu den benachbarten Kanten keine Zacken vorliegen können. Sie stellen jeweils die Grenze zu Viereckreihen oder zu Nachbarelementen von Ecken dar. Winkelhalbierende Abbildung 5.46: Begrenzung für die Vernetzung von Kanten Es werden hier nur solche Zacken betrachtet, deren beiden Kanten jeweils nicht zu einer Ecke gehören. Die Vernetzung von Zackenkanten, von denen eine zu einer Ecke gehört, geschieht bei der Vernetzung von Anschlußknoten von Ecken. 5.3. VERNETZUNG VON ZACKEN 137 t+x t t t t t t t t+x (i) t-Fall t (ii) t+x-Fall Abbildung 5.47: Vernetzung von ±20◦ -Zacken In Abb. 5.47 ist die Vernetzung für ±20◦ -Zacken dargestellt. Die Vernetzung in der t-Region kann im t-Fall durch ein ZweiKantenDreieck erfolgen (vergl. Abb. 5.47(i)). Nach Voraussetzung existiert genügend Platz, um an der Verbindungskante mit Hilfe der Winkelhalbierenden ein Viereck zu generieren. Wie in Algorithmus 5.3 werden in der t+x-Region an den beiden Kanten der Zacken mit Hilfe von Winkelhalbierenden Vierecke generiert (vergl. Abb. 5.47 (i)). Die beiden Dreiecke in der t+x-Region stellen Konfliktdreiecke dar, deren Zerlegungspfade in die t+x-Region zeigen. Damit ist die Zacke komplett vernetzt. Zu allen Richtungen ist die Begrenzung der Vernetzung durch Winkelhalbierende gegeben. Dies ist eine gute Voraussetzung für die Vernetzung benachbarter Elemente. An diesem Beispiel soll noch einmal kurz die Strategie der Vernetzung bezüglich der Leitung von Zerlegungspfaden aufgezeigt werden: über das ZweiKantenDreieck darf kein Zerlegungspfad geführt werden, da dadurch Zerlegungspfade auf die drei Vierecke treffen können. Auf diese Vierecke dürfen aber nur Zerlegungspfade, die entlang der Kontur verlaufen, treffen, da sie sonst zu Zerlegungsvierecken werden können, die zu vermeiden sind. Die beiden Dreiecke in der t+x-Region sind Konfliktdreiecke, die jeweils einen Zerlegungspfad in die t+x-Region weiterleiten. Zerlegungspfade, die im Inneren der Region (nicht auf Randelementen) verlaufen, dürfen nur auf Dreiecke als Randelemente treffen, da Randvierecke sonst zu Konfliktvierecken werden können. Das ZweiKantenDreieck kann nicht zu einem Zerlegungsdreieck werden (also keine Zerlegungspfade weiterleiten), weil die benachbarten Vierecke in die Richtung des Dreiecks keinen Zerlegungpfad weiterleiten. Im t+x-Fall müssen in der t+x-Region zwei EinKantenDreiecke generiert werden, damit die Elemente den gewünschten Tiefenwert t+x erhalten. 138 KAPITEL 5. LÖSUNGEN ZUR P-VERNETZUNG In der t-Region müssen an den Zackenkanten zur Vermeidung von Zerlegungsvierecken dann ebenfalls EinKantenDreiecke generiert werden, da über die EinKantenDreiecke der t+x-Region Zerlegungspfade auf diese Elemente treffen können. Solche Zerlegungspfade würden durch die Dreiecke in der t-Region an die Randelemente weitergeleitet. Die beiden weiteren Dreiecke stellen Zerlegungsdreieckkandidaten dar, die Zerlegungspfade in das Innere der Region bzw. an die Randelemente weiterleiten würden. In Abb. 5.48 ist die Vernetzung für ±60◦ -Zacken dargestellt. t+x t t t t t t t t+x (i) t-Fall t (ii) t+x-Fall Abbildung 5.48: Vernetzung von ±60◦ -Zacken Die Vernetzung erfolgt ähnlich zur Vernetzung von ±20◦ -Zacken. Im tFall genügt es, in der t+x-Region ein Konfliktdreieck weniger zu generieren. Die Qualität der Elemente ist immer noch ausreichend gut. Im t+x-Fall, der vollkommen gleich zu ±20◦ -Zacken vernetzt wird, hat sich die Qualität der Elemente durchschnittlich verbessert. Die Vernetzung von ±100◦ -Zacken ist in Abb. 5.49 dargestellt. t t t t+x t t t t t+x (i) t-Fall t (ii) t+x-Fall Abbildung 5.49: Vernetzung von ±100◦ -Zacken 5.3. VERNETZUNG VON ZACKEN 139 In beiden Fällen verläuft die Vernetzung vollkommen analog zur Vernetzung von ±60◦ -Zacken. Leider kann im t+x-Fall bei gewünschter guter Qualität der Elemente i.a. kein Zerlegungsdreieckkandidat eingespart werden, da die beiden EinKantenDreiecke der t-Region durch die Winkelhalbierenden bestimmt werden und dadurch relativ viel Platz zwischen diesen Elementen entsteht. Damit wird die Vernetzung von freiliegenden Zacken abgeschlossen. Schwieriger kann die Vernetzung von Zacken werden, die nahe bei Knoten des gleichen oder eines anderen Polygonabschnittes liegen. 5.3.2 Zacken nahe bei Knoten von Polygonabschnitten In diesem Abschnitt werden die Fälle (iii) bis (vi) aus Tabelle 4.3 Seite 69 behandelt. Zunächst wird auf die Fälle (iii) und (iv) eingegangen. Einzelne Zacken Der Begriff nahe beieinander liegend“ zwischen einer Zacke und einem ” nicht benachbarten Knoten wurde bereits in Def. 59 festgelegt. Die Zacke und der Knoten dürfen zu gleichen oder zu unterschiedlichen Polygonabschnitten gehören. Für einzelne Zacken werden nur die Fälle betrachtet, bei denen genau ein Knoten bei einer Zacke liegt. Denn wenn zwei Knoten einer Kante nahe bei einer Zacke liegen, so liegt eine schmale Region vor. Ein Knoten nahe einer Zacke kann Spitzenknoten einer (anderen) Zacke sein. Definition 67. Zwei Zacken heißen nahe beieinander liegend, wenn die erste Zacke nahe bei einem Knoten der zweiten Zacke liegt. Es wird davon ausgegangen, daß von zwei nahe beieinanderliegenden einzelnen Zacken die keinen Übergang zu einer schmalen Region bilden, wenigstens ein Spitzenknoten nahe bei der anderen Zacke liegt. D.h., es liegen entweder ein Spitzenknoten SP1 und ein Seitenknoten SE (Fall A, vergl. Abb.5.50 (i)) oder die beiden Spitzenknoten SP1 und SP2 nahe beieinander (Fall B, vergl. Abb. 5.50 (ii)). Für beide Fälle wird ein Verfahren zur Vernetzung vorgestellt. Die Verfahren können auf gleiche Weise angewendet werden, wenn der Knoten, der nahe der Zacke liegt, selbst nicht zu einer Zacke gehört! Denn die Verfahren berücksichtigen die an den Knoten anliegenden Winkel für alle möglichen auftretenden Winkelmaße. 140 KAPITEL 5. LÖSUNGEN ZUR P-VERNETZUNG k3 P1 k SE 1 k2 α α2 1 SP2 β1 β2 SP1 (i) Fall A SE1 SE3 SP1 α1 α2 β1 SP β2 2 SE2 SE4 (ii) Fall B Abbildung 5.50: Vernetzung nahe beieinander liegender Zacken Zunächst wird die Vernetzung für Fall A diskutiert. Die Idee liegt darin, hintereinander eine an die Situation angepaßte Vernetzung der jeweiligen einzelnen Zacken vorzunehmen. Dabei soll zuerst die Zacke, deren Spitzenknoten SP1 nahe bei der anderen Zacke liegt, vernetzt werden. Die Vernetzung soll den nahe gelegenen Seitenknoten SE der anderen Zacke integrieren und die gewünschte Vernetzung dieser Zacke berücksichtigen. An die bereits generierten Elemente angepaßt soll die Vernetzung der zweiten Zacke stattfinden. Es werden zunächst zwei Beispiele betrachtet. In Abb. 5.51 sind beide Zacken vom t-Fall. Deswegen sollen die Zacken so vernetzt werden, daß an ihren Kanten in der t+x+y-Region und an den zu generierenden Verbindungskanten in der t-Region bzw. in der t+x-Region Vierecke anliegen. Der Knoten SE soll bei der Vernetzung von Zacke 1 integriert werden. Dies kann nur geschehen, wenn er direkt mit SP1 verbunden wird (vergl. Abb. 5.51 (iii)). Wegen der Größe von β1 und β2 wird entschieden, daß an SP1 zu beiden Seiten der Kante SP1 SE am Knoten SP1 zu dem jeweiligen an Zacke 1 zu generierenden Viereck jeweils noch ein Dreieck generiert wird. β1 und β2 werden deswegen im Verhältnis 90:60 aufgeteilt (s. Abb. 5.51 (iv)). Wegen dieser Dreiecke und der notwenigen Vierecke an den Kanten P1 SE und SESP2 werden die Winkel α1 und α2 am Knoten SE ebenfalls jeweils im Verhältnis 90:60 unterteilt (s. Abb. 5.51 (v)). Der Rest von Zacke 1 kann gemäß der einzelnen Zacken vernetzt werden (vergl. Abb. 5.51 (vi)). Die an Zacke 1 entstandene Vernetzung entspricht zwar nicht genau der an einer einzelnen Zacke vorgeschlagenen Vernetzung (s. Abschnitt 5.3.1 5.3. VERNETZUNG VON ZACKEN t t Zacke 2 t t t-Fall SP2 t SE P1 t+x+y t+x 141 α2 SP1 t+x t+x α1 β1 β2 Zacke 1 t-Fall t+x (i) (ii) (iii) (v) (vi) (vii) (iv) Abbildung 5.51: Vernetzung nahe beieinander liegender Zacken (Beispiel) Abb. 5.48 (i)), ist aber durch die notwendige Kante SP1 SE hier sinnvoller. Die Vernetzung von Zacke 2 kann jetzt gemäß der Vernetzung von einzelnen Zacken in Abhängigkeit der Winkelkategorie (Abb. 5.47 - 5.49) erfolgen. Sie muß lediglich am Knoten SE an die Vernetzung von Zacke 1 angepaßt werden (Abb. 5.51 (vii)). Die Vernetzung für Zacke 1 erfolgt unabhängig von der Winkelkategorie, da bereits am Spitzenknoten Elemente generiert wurden. Ist Zacke 1 keine wirkliche Zacke (s. Diskussion oben), so erfolgt die Vernetzung in der t+x-Region durch Viereckreihen. Es ist zu beachten, daß an den erzeugten Verbindungskanten unbedingt Vierecke generiert werden müssen. Im nächsten Beispiel (Abb. 5.52) werden zwei Zacken vom t+x-Fall mit gleicher Konstellation wie in Abb. 5.51 betrachtet. Da beide Zacken vom t+x-Fall sind, sollen an allen Zackenkanten Dreiecke generiert werden. In dem Fall, daß Zacke 1 keine wirkliche Zacke wäre (s. Diskussion oben), würden die zu SP1 inzidenten Kanten sowohl in der tals auch in der t+x-Region mit Vierecken vernetzt. Die Vernetzung der anderen Kanten verliefe dann unter Berücksichtigung der an diesen Kanten zu generierenden Vierecke analog wie sie im folgenden beschrieben wird. Da an SP2 SE ein Dreieck generiert werden muß und an SP1 SE ein Dreieck generiert werden darf, müssen nicht notwendigerweise wenigstens zwei Elemente an α1 generiert werden. Aufgrund der Größe von α1 wird entschie- 142 t+x KAPITEL 5. LÖSUNGEN ZUR P-VERNETZUNG Zacke 2 t SE SP2 t t t+x-Fall t P1 SE SP1 α2 t t t β 1 t α1 SP2 SP1 β2 Zacke 1 t+x-Fall t+x+y (i) (ii) (iii) (iv) γ (v) (vi) (vii) Abbildung 5.52: Vernetzung nahe beieinander liegender Zacken (Beispiel) den, nur ein Dreieck dort zu generieren (Abb. 5.51 (iv)). An der Kante P1 SE muß dagegen ein Viereck generiert werden, da sie nicht zur Zacke gehört. An der Kante SP1 SE muß zu dieser Seite hin - aufgrund des Winkels α2 und des möglich auftretenden Zerlegungspfades von der Kante SESP1 aus - ein Dreieck generiert werden. Aufgrund der Größe von α2 werden deswegen an SE ein Viereck und ein Dreieck generiert und α2 im Verhältnis 90:60 aufgeteilt (vergl. Abb. 5.51 (v)). Der Winkel β1 , an dem das Dreieck an Zacke 1 und das Dreieck an SESP1 generiert werden sollen, wird aufgrund seiner Größe halbiert, so daß hieran insgesamt nur diese zwei Dreiecke generiert werden. An β2 wurde bereits ein Dreieck generiert, so daß der restliche Winkel aufgrund seiner Größe ebenfalls halbiert wird und zwei weitere Dreiecke daran generiert werden (vergl. Abb. 5.51 (vi)). (An der Zackenkante von Zacke 1 muß ein Dreieck generiert werden. Das zweite Dreieck an SP1 ist ein EinKnotenDreieck. Bei Generierung eines Vierecks wäre nicht gewährleistet, daß die Überkreuzung von Zerlegungspfaden verhindert wird.) Anschließend wird der an SP2 verbleibende Winkel γ (vergl. Abb. 5.51 (vi)) aufgrund seiner Größe in drei gleiche Winkel unterteilt und daran drei Dreiecke generiert. Schließlich werden jeweils die beiden Dreiecke innerhalb der Zacken generiert (vergl. Abb. 5.51 (vii)). Anhand der Beispiele können folgende grundlegende Aussagen gemacht werden: Die an den Zackenkanten zu generierenden Elemente sind durch den Fall 5.3. VERNETZUNG VON ZACKEN 143 der Zacke festgelegt. Darf an einer Zackenkante ein Viereck generiert werden, so müssen alle weiteren Knoten des Vierecks innerhalb der Region liegen, d.h. sie dürfen nicht auf einer weiteren Zackenkante liegen. Sonst ist nicht gewährleistet, daß die Überkreuzung von Zerlegungspfaden in diesem Viereck verhindert wird. Soll an einer Kante ein Dreieck generiert werden, so darf dieses auch an einer weiteren Zackenkante anliegen. Dies erscheint jedoch nur sinnvoll, wenn an dieser Zackenkante sowieso ein Dreieck generiert werden muß, da sonst evtl. unnötigerweise ein Zerlegungspfad weitergeleitet wird. Zwischen zwei an zwei benachbarten Kanten anliegenden Elementen dürfen beliebig viele EinKnotenDreiecke generiert werden, wobei zu beachten ist, daß diese Zerlegungsdreieckkandidaten darstellen. Die Verbindung zwischen den beiden Zacken geschieht immer durch eine Kante zwischen den beiden nahe beieinanderliegenden Knoten. Sind die beiden Knoten an dieser Kante von gleichem Tiefenwert, dürfen auf beiden Seiten Vierecke generiert werden, deren weitere Knoten nicht auf einem Konturknoten liegen. Die Generierung eines Dreieckes auf einer Seite dieser Verbindung impliziert die Generierung eines zweiten Dreiecks auf der anderen Seite. Bei unterschiedlichen Tiefenwerten müssen immer Dreiecke generiert werden. Algorithmus 5.4 stellt ein allgemeines Verfahren zur Vernetzung von zwei nahe beieinander liegenden Zacken vom Fall A vor, in dem die oben aufgelisteten Aussagen zu berücksichtigen sind. Mit der Überprüfung eines Winkels (Zeilen 6,8,13,15,19, Algorithmus 5.4) ist die Berechnung der an ihm zu generierenden Elemente in Abhängigkeit der zugehörigen Zacke, der Größe des Winkels und der bereits an dem entsprechenden Knoten generierten Elemente gemeint. Die Aufteilung eines Winkels (Zeilen 7,9,14,16,20, Algorithmus 5.4) bedeutet in diesem Sinne, in den Winkel so Strahlen einzusetzen, daß die daran zu generierenden Elemente bezüglich dieser Winkel optimiert werden, d.h. der Winkel wird im entsprechenden Verhältnis der gewünschten Elemente aufgeteilt. Die Generierung der Elemente an dem großen Winkel einer Zacke oder an einem Knoten (Zeile 17,18,21, Algorithmus 5.4) geschieht gemäß der Aufteilung der Winkel und ist durch die Strahlen festgelegt: Die dabei zu generierenden Knoten erhalten einen an die DKL und die Länge der Zackenkanten angepaßten Abstand zum jeweiligen Konturknoten, falls sie nur mit einem Konturknoten verbunden sind. Soll ein zu generierender Knoten Verbindungen zu mehreren Konturknoten besitzen, so wird der Schnittpunkt der zugehörigen Strahlen bzw. der Durchschnitt dieser Schnittpunkte als Knoten gewählt. Die Generierung aller weiteren Kanten für die Elemente ist durch diese Knoten und für Vierecke durch entsprechend generierte Knoten von 144 KAPITEL 5. LÖSUNGEN ZUR P-VERNETZUNG benachbarten Winkeln impliziert. Die Generierung der Elemente an dem kleinen Winkel einer Zacke (Zeile 17,21, Algorithmus 5.4) geschieht wie bei einzelnen Zacken (vergl. oben). Algorithmus 5.4 verwendet die Bezeichnungen aus Abb. 5.51 (iii). Die Vernetzung von Fall B geschieht ähnlich wie die Vernetzung von Fall A. Hier wird zunächst eine Kante zwischen den beiden Spitzenknoten generiert. Die Winkel werden dann hintereinander gemäß der Zuordnung der Zacke vernetzt. (Die Wahl der zu generierenden Elemente erfolgt dabei gemäß der u.a. am Beispiel dargestellten Strategie auf Seite 137.) Zunächst werden wiederum zwei Beispiele vorgestellt. Im ersten Beispiel (Abb. 5.53) werden zwei sich direkt gegenüberliegende Zacken mit unterschiedlichen Fällen (t-Fall und t+x-Fall) vernetzt. Zacke 1 ist vom t-Fall, Zacke 2 vom t+x-Fall. Das bedeutet, daß an den Kanten von Zacke 1 Vierecke und an den Kanten von Zacke 2 Dreiecke generiert werden sollen. Weil SP1 und SP2 unterschiedliche Tiefenwerte besitzen, soll von beiden Seiten an der Kante SP1 SP2 ein Dreieck generiert werden. Zuerst werden die beiden Spitzenknoten miteinander verbunden (vergl. Abb. 5.53 (ii)). α1 und α2 werden dann jeweils im Verhältnis 90:60 aufgeteilt (Abb. 5.53 (iii)), da an der Zackenkante jeweils ein Viereck und an der Kante SP1 SP2 jeweils ein Dreieck generiert werden und aufgrund der Größe von α1 und α2 keine weiteren Elemente an diesen Winkeln generiert werden sollen. β1 und β2 werden halbiert (vergl. Abb. 5.53 (iv)), da an den Zackenkanten und an SP1 SP2 Dreiecke generiert werden sollen und aufgrund der Größe von β1 und β2 jeweils nur diese zwei Dreiecke generiert werden sollen. Mit Hilfe von Strahlen und gemäß der Vernetzung einzelner Zacken können jetzt alle Elemente erzeugt werden (vergl. Abb. 5.53 (v)). Im zweiten Beispiel (Abb. 5.54) liegen zwei Zacken vom t-Fall vor, wobei die Winkelhalbierenden der Zacken fast senkrecht zueinander stehen. An alle vier Zackenkanten sollen Vierecke generiert werden. An der Kante SP1 SP2 können sowohl von jeder Seite ein Dreieck als auch von jeder Seite ein Viereck generiert werden, da T (SP1 ) = T (SP2 ) gilt. Aufgrund des kleinen Winkels β1 wird entschieden, an der Kante SP1 SP2 zu jeder Seite hin ein Dreieck zu generieren. Wiederum werden zuerst die beiden Spitzenknoten miteinander verbunden. Anschließend findet eine entsprechende Aufteilung der Winkel statt. α1 , α2 und β1 werden aufgrund ihrer Größe jeweils im Verhältnis 90:60 aufgeteilt (Abb. 5.54 (iii)). Da β2 wesentlich größer ist als β1 , findet hier 5.3. VERNETZUNG VON ZACKEN Algorithmus 5.4 (NaheBeieinanderliegendeZackenA). 1. PROCEDURE 2. BEGIN 3. ordne Zacken entsprechend ihrer Tiefenwerte ein (t-Fall/t+x-Fall); 4. erzeuge Verbindung SESP1 ; 5. entscheide über Elemente an SESP1 aufgrund von Tiefenwerten und Winkeln; 6. überprüfe α1 ; 7. teile α1 auf; 8. überprüfe α2 ; 9. teile α2 auf; 10. falls α1 nicht aufgeteilt werden mußte 11. erzeuge Dreieck SE-SP2-SP1; 12. β2 =β2 -Winkel SE-SP1-SP2; 13. überprüfe β1 ; 14. teile β1 auf; 15. überprüfe β2 ; 16. teile β2 auf; 17. generiere alle Elemente an Zacke1; 18. generiere alle Elemente an SE; 19. überprüfe γ; 20. teile γ auf; 21. generiere restliche Elemente an Zacke2; 22. END 145 146 KAPITEL 5. LÖSUNGEN ZUR P-VERNETZUNG Zacke 1 SE1 SE 3 t t t t+x t+x t+x+y SP1 SP2 t+x t+x t SE 2 Zacke 2 t-Fall α1 t+x-Fall β1 α 2 β2 SE 4 (i) (ii) (iv) (v) (iii) Abbildung 5.53: Vernetzung nahe beieinander liegender Zacken (Beispiel) eine Aufteilung im Verhältnis 90:60:60 statt (Abb. 5.54 (iv)). D.h. an diesem Winkel soll zu dem notwendigen Viereck und dem notwendigen Dreieck ein zusätzliches Dreieck generiert werden. Mit Hilfe der erzeugten Strahlen können wiederum alle Elemente generiert werden (Abb. 5.54 (v)). Abb. 5.54 (vi) zeigt die gesamte Vernetzung der Zacken. Durch die unterschiedlichen Größen der Winkel insbesondere durch den kleinen Winkel β1 sind die Elemente unterschiedlich groß. Dies kann evtl. durch ein späteres Smoothing des gesamten Netzes ausgeglichen werden. Aus den beiden Beispielen läßt sich jetzt Algorithmus 5.5 für die Vernetzung von Zacken vom Typ B ableiten. Das überprüfen und Aufteilen von Winkeln und die Generierung von Elementen geschieht dabei analog wie in Algorithmus 5.4. Damit sind Verfahren für die Fälle (iii) und (iv) aus Tabelle 4.3 gefunden. Es wird jetzt noch diskutiert, wie ein Bereich, in dem Knoten nahe bei nebeneinanderliegenden Zacken liegen, vernetzt wird (vergl. Fälle (v) und (vi) aus Tabelle 4.3). Nebeneinanderliegende Zacken Es braucht wiederum nicht zwischen gleichen und unterschiedlichen Polygonabschnitten unterschieden zu werden. Die Fälle, in denen mehrere be- 5.3. VERNETZUNG VON ZACKEN Zacke 1 SE 1 t Zacke 2 SE 3 t t+x t SE 4 t t t t SP1 SP2 t t-Fall 147 t-Fall α1 β 1 α2 β2 SE 2 (i) (ii) (iii) (iv) (v) (vi) Abbildung 5.54: Vernetzung nahe beieinander liegender Zacken (Beispiel) nachbarte Knoten nahe bei nebeneinanderliegenden Zacken liegen, brauchen in diesem Abschnitt nicht mehr untersucht zu werden, da sie zu den schmalen Regionen gehören. Zunächst werden nur solche Fälle betrachtet, bei denen genau ein Knoten SP nahe bei nebeneinanderliegenden Zacken liegt. Wie bei der Vernetzung von einzelnen Zacken, die nahe einem Knoten liegen, kann wieder Œ angenommen werden, daß der Knoten SP selber innerhalb einer Zacke liegt und ein Spitzenknoten ist. Außerdem wird davon ausgegangen, daß SP nur nahe zu einem Knoten K der nebeneinanderliegenden Zacken liegt (vergl. Abb. 5.56). Ist dies nicht der Fall, gehört der Bereich zu den schmalen Regionen oder die nebeneinanderliegenden Zacken müssen entweder neu geglättet werden oder der Bereich wird als nicht vernetzbar“ deklariert. Von K kann deswegen angenommen ” werden, daß er entweder Spitzenknoten ist, dessen kleiner Winkel nicht in der Region zwischen K und SP liegt, oder daß er einen Abschluß zu den nebeneinanderliegenden Zacken bildet. Denn sonst würde noch ein weiterer (zu K benachbarter) Knoten B der nebeneinanderliegenden Zacken nahe bei SP liegen (vergl. Abb. 5.55). Für die Vernetzung ist eine Kombination der Verfahren für freiliegende nebeneinanderliegende Zacken (vergl. Abschnitt 5.3.1) und Knoten, die bei einzelnen Zacken liegen (Verfahren in diesem Abschnitt), sinnvoll. Zunächst 148 KAPITEL 5. LÖSUNGEN ZUR P-VERNETZUNG Algorithmus 5.5 (NaheBeieinanderliegendeZackenB). 1. PROCEDURE 2. BEGIN 3. ordne Zacken entsprechend ihrer Tiefenwerte ein (t-Fall/t+x-Fall); 4. erzeuge Verbindung SP1 SP2 ; 5. entscheide über Elemente an SP1 SP2 aufgrund von Tiefenwerten und Winkeln; 6. überprüfe α1 ; 7. falls α1 nicht aufgeteilt werden muß 8. erzeuge Dreieck SE1 -SP1 -SP2 ; 9. sonst teile α1 auf; 10. überprüfe α2 ; 11. falls α2 nicht aufgeteilt werden kann 12. 13. 14. 15. falls α1 nicht aufgeteilt werden kann Fehlermeldung; sonst erzeuge Dreieck SP1 -SP2 -SE3 ; 16. sonst teile α2 auf; 17. überprüfe β1 ; 18. falls β1 nicht aufgeteilt werden muß 19. erzeuge Dreieck SE2 -SP1 -SP2 ; 20. sonst teile β1 auf; 21. überprüfe β2 ; 22. falls β2 nicht aufgeteilt werden kann 23. 24. 25. 26. falls β1 nicht aufgeteilt werden kann Fehlermeldung; sonst erzeuge Dreieck SP1 -SP2 -SE4 ; 27. sonst teile β2 auf; 28. generiere alle Elemente an SP1-SP2; 29. generiere alle Elemente an Zacke1; 30. generiere alle Elemente an Zacke2; 31. END 5.3. VERNETZUNG VON ZACKEN 149 B SP K Abbildung 5.55: Knoten nahe bei nebeneinanderliegenden Zacken wird die Vernetzung am Beispiel vorgestellt. Anschließend wird ein Umriß des Verfahrens dargestellt. Das Beispiel in Abb. 5.56 zeigt eine Kombination der Beispiele aus Abb. 5.40 und Abb. 5.53. Die Zacke SE1 SP SE2 ist vom t+x-Fall. Sie liegt nahe dem Knoten K4 (entspricht dem Knoten K der obigen Bezeichnung), der den Spitzenknoten zur Zacke aus k3 und k4 bildet. Zunächst werden K4 und SP miteinander verbunden (vergl. Abb. 5.56 (ii)). Da T (K4 ) 6= T (SP ) gilt, müssen (wie bei der Vernetzung einzelner Zacken) an SP K4 zu beiden Seiten hin Dreiecke generiert werden (vergl. Abb. 5.56 (iii)). Die Entscheidung für die Generierung von Elementen an dieser Kante entspricht der Anweisung aus Zeile 5 aus Algorithmus 5.5. Unter Berücksichtigung dieser Entscheidung erfolgt die Vernetzung der einzelnen Zacke gemäß Algorithmus 5.5 (vergl. Abb. 5.56 (iv)). Die Vernetzung der nebeneinanderliegenden Zacken muß leicht modifiziert werden. Die nebeneinanderliegenden Zacken werden am Knoten K4 aufgeteilt und auf die Kantenzüge k1 k2 k3 und k4 k5 k6 k7 k8 k9 wird jeweils Algorithmus 5.3 modifiziert angewendet: Statt der Winkelhalbierenden an K4 in der t+x-Region wird die jeweilige Kante des zu dieser Seite generierten Dreiecks gewählt. D.h. für den Kantenzug k1 k2 k3 wird die Winkelhalbierende an K4 durch einen Strahl mit Beginn K4 und Verlauf durch die Kante K4 P1 und für den Kantenzug k4 k5 k6 k7 k8 k9 wird die Winkelhalbierende an K4 durch einen Strahl mit Beginn K4 und Verlauf durch die Kante K4 P2 ersetzt (vergl. 5.56 (v)). An K4 kann eine solche Ersetzung in der t-Region nicht stattfinden. Die Zacke k3 k4 wird deswegen in der t-Region zuerst vernetzt (vergl. Abb. 5.56 (vi)). Hier kann die Vernetzung gemäß Algorithmus 5.3 stattfinden, wobei jedoch die veränderten Platzverhältnisse beachtet werden müssen: Da die Zacke vom t-Fall ist und in der t+x-Region an den Kanten k3 und k4 genug Platz für ein Viereck ist, kann zwischen K3 und K5 eine Verbin- 150 KAPITEL 5. LÖSUNGEN ZUR P-VERNETZUNG t+x+y t k1 K1 K2 K3 k2 k3 K K5 k4 4 K8 k k5 K6 7 K9 k k 8 K 6 7 t+x k9 SE1 SP SE2 t+x+y t t+x+y t Fall 2 t+x t+x K10 (i) (ii) (iii) t+x+y t+x+y t t t+x t+x (iv) (v) t+x+y t t+x (vii) t+x+y k1 K1 t K2 K3 k K2 k3 K5 k4 4 K8 k k5 K6 7 K9 k k 8 K 6 7 t+x K10 k9 SE1 SP SE2 (vi) t+x+y k1 K1 t K2 K3 k2 k3 K K5 k4 4 K8 k k5 K6 7 K9 k k 8 K 6 7 t+x K10 k9 SE1 SP SE2 (viii) Abbildung 5.56: Vernetzung nebeneinanderliegender Zacken mit nahe liegendem Knoten (Beispiel) dungskante generiert werden, an die von der anderen Seite auch ein Viereck generiert werden muß. Wäre die Generierung eines Vierecks an k3 oder k4 aufgrund der veränderten Platzsituation nicht möglich, so müßte diese Zacke wie eine Zacke vom t+x-Fall nach Algorithmus 5.3 vernetzt werden. Jetzt kann die Vernetzung wie in Algorithmus 5.3 hintereinander auf die Kantenzüge angewendet werden, wobei die Winkelhalbierende an K4 in der t+x-Region durch die beiden Strahlen, wie oben beschrieben, ersetzt wird. In Abb. 5.56 (vii) ist die Vernetzung für den Kantenzug k1 k2 k3 und in Abb. 5.56 (viii) ist die komplette Vernetzung dargestellt. Liegen mehrere Knoten SPi nahe bei nebeneinanderliegenden Zacken 5.3. VERNETZUNG VON ZACKEN 151 (vergl. Abb. 5.57), werden analog zuerst die Bereiche um diese Knoten vernetzt und anschließend die verbleibenden Kantenzüge nach Algorithmus 5.3. Aus diesen Überlegungen kann nun Algorithmus 5.6 formuliert werden. Bezüglich der Bezeichnungen gilt (vergl. auch Abb. 5.57): Kl seien die Knoten, zu dem die einzelnen Knoten SPl nahe liegen und kl1 und kl2 die Kanten, die zu Kl inzident sind . R2 sei die Region zwischen den einzelnen Knoten und den nebeneinanderliegenden Zacken, R1 sei die auf der anderen Seite der nebeneinanderliegenden Zacken liegende Region. Algorithmus 5.6 (BenachbarteZackenNaheBeiZacke). 1. PROCEDURE 2. BEGIN 3. für alle l 4. erzeuge Verbindung Kl SPl ; 5. bestimme Elemente an Kl SPl in Abhängigkeit von T(Kl ) und T(SPl ); 6. vernetze Kanten an SPl nach Algorithmus 5.5 7. 8. 9. 10. 11. für alle l erzeuge Elemente an kl1 und kl2 in R1 in Abhängigkeit der veränderten Platzsituation; für alle l vernetze noch nicht vernetzten Kantenzug bis zum Knoten Kl nach Algorithmus 5.3; vernetze noch nicht vernetzten Kantenzug bis Ende nach Algorithmus 5.3; 12. END Damit wird die Vernetzung von Zacken, die nicht innerhalb von schmalen Regionen liegen, abgeschlossen. 152 KAPITEL 5. LÖSUNGEN ZUR P-VERNETZUNG R2 k11 R1 K1 k12 SP1 k22 K2 k21 SP2 Abbildung 5.57: Zwei Knoten nahe bei nebeneinanderliegenden Zacken 5.3.3 Beispiel Wurm Für das Wurmbeispiel treten einige, einzelne freiliegende Zacken auf, deren Vernetzung in Abb. 5.58 dargestellt ist. Im unteren Teil liegen zwei Knoten nahe beieinander. Sie werden nach dem Prinzip zweier nebeneinanderliegender Zacken vernetzt. Eine Zacke im oberen Teil kann nicht wie eine solche vernetzt werden, da sie eine gemeinsame Kante mit einer Ecke besitzt und an dieser Kante sonst unterschiedliche Elemente generiert werden müßten. Da insbesondere auch die Vernetzung der Zacken die Anzahl der Konfliktelemente und damit der Zerlegungspfade stark erhöht, kann auf Wunsch eine variable Zuordnung der Zacken zu ihren Typen vorgenommen werden. Das kann z.B. dazu führen, daß Zacken, in der Region, in der Konflikt- und Zerlegungsdreiecke entstehen können, nicht als solche typisiert und vernetzt werden. Für den Abschnitt der Wurm ist eine solche Vernetzung in Abb. 5.59 dargestellt. Es ist allerdings bei dieser Vernetzung zu beachten, daß im weiteren Verlauf dadurch schlechtere Elemente mit evtl. längeren Kanten entstehen können. Für die weitere Vernetzung der Randelemente durch Viereckreihen müssen ggfs. noch Anpassungselemente (vergl. Seite 74) generiert werden, die zu diesen Viereckreihen hin das ±90◦ -Kriterium erfüllen. 5.4. ANPASSUNGSELEMENTE UND ANSCHLUSSKNOTEN 153 2 3 2 3 3 2 Abbildung 5.58: Vernetzung der Zacken für das Wurmbeispiel 5.4 Anpassungselemente und Anschlußknoten Die Generierung von Anpassungselementen (Schema 4.31 (iii)) ist überall dort nötig, wo bereits ein oder mehrere Randelemente generiert wurden, die das ±90◦ -Kriterium zur noch nicht vernetzten Seite hin nicht erfüllen. Neben den Anschlußknoten (Def. 22 und 58) an Zacken und Ecken sind dabei z.B. auch Elemente an den Übergängen an schmalen Regionen (vergl. Abb. 5.36), die das ±90◦ -Kriterium noch nicht erfüllen und an die Viereckreihen generiert werden sollen, zu berücksichtigen. Auch neben Dreiecken, die zwangsweise neben einer schmalen Region generiert werden mußten (vergl. Abb. 5.26 (viii)), müssen ggfs. Anpassungselemente generiert werden. Ein Anschlußknoten bildet in diesen Fällen ein auf der Kontur liegender Knoten des Elements, an das Anpassungselemente generiert werden sollen. Ein zu vernetzender Anschlußknoten P2 (vergl. Abb. 5.60) ist zum Zeitpunkt seiner Vernetzung zu folgenden zwei Knoten benachbart: Zu einem Knoten P3 , der innerhalb der Region liegt. Dieser Knoten hat den gleichen Tiefenwert wie die Region. Und zu einem Knoten P1 , der auf der Kontur liegt. Dieser Knoten hat den gleichen Tiefenwert wie der Anschlußknoten. 154 KAPITEL 5. LÖSUNGEN ZUR P-VERNETZUNG 2 3 2 3 3 2 Abbildung 5.59: Korrigierte Vernetzung der Zacken für das Wurmbeispiel Für die Tiefenwertsituation der drei Knoten gibt es demnach zwei Möglichkeiten: Alle Tiefenwerte sind gleich (vergl. Abb. 5.60 (i)) oder der Tiefenwert der beiden Knoten auf der Kontur unterscheidet sich von dem der beiden Knoten innerhalb der Region (vergl. Abb. 5.60 (ii)). t P3 t k2 P1 t t (i) Fall 1 P2 k1 t+x P3 t+x k2 P2 k1 P1 t t (ii) Fall 2 Abbildung 5.60: Fälle für zu vernetzende Anschlußknoten Der zu vernetzende Winkel ist der Winkel am Anschlußknoten P2 . Hier müssen wiederum alle Winkelmöglichkeiten diskutiert werden (±20◦ , ±90◦ , ±180◦ , ±270◦ und ±340◦ -Winkel). Winkel, die von ±90◦ -Winkeln abweichen, können z.B. auftreten, wenn eine Zackenkante gleichzeitig Kante einer Ecke ist, also eine Zacke schon am zur Ecke gehörenden Schnittknoten beginnt. In diesem Fall wird sie, wie 5.4. ANPASSUNGSELEMENTE UND ANSCHLUSSKNOTEN 155 bereits erwähnt, nicht wie eine Zacke vernetzt, sondern es wird zunächst die Ecke und anschließend der Zackenknoten als Anschlußknoten vernetzt. Bei ±90◦ -Winkeln ist die Wahrscheinlichkeit, daß das ±90◦ -Kriterium bereits erfüllt ist, recht hoch. In solchen Fällen braucht eine Anpassung nicht stattzufinden, weil ein solcher Winkel immer akzeptiert werden kann. Erstes Ziel ist es, bei genügend großem Platz zum nächsten Anschlußknoten (d.h. von P2 ist der nächste Anschlußknoten mindestens zwei Kanten entfernt) für P1 das ±90◦ -Kriterium zu erfüllen (Schema 4.31 (iii) a)). Sind zwei Anschlußknoten nur durch eine Kante verbunden (nebeneinanderliegende Anschlußknoten) oder ist ein Knoten zweifacher Anschlußknoten (er ist zu beiden Seiten hin Anschlußknoten (Das tritt z.B. auf, wenn zwei Ecken einen gemeinsamen Knoten, nämlich den Anschlußknoten, besitzen.)) (Schema 4.31 (iii) b)), so wird eine spezielle Vernetzung durchgeführt, die weiter unten beschrieben ist. In Abb. 5.61 ist die Vernetzung bei genügend großem Platz dargestellt (Schema 4.31 (iii) a)). Es werden dabei beide Tiefenwertfälle (vergl. Abb. 5.60) und alle Winkelkategorien berücksichtigt, wobei hier vereinfachend (Skizze) angenommen wird, daß das ±90◦ -Kriterium durch einen 90◦ -Winkel erfüllt wird. Die Vernetzung muß im jeweiligen Fall entsprechend an das ±90◦ Kriterium angepaßt werden. t/t+x t/t+x t/t+x t/t+x t t (i) t/t+x t (ii) t t/t+x t t (iii) Abbildung 5.61: Vernetzung an Anschlußknoten Bei der Vernetzung des ±20◦ -Winkels (Abb. 5.61 (i)) kann bei großem k2 gegenüber k1 der Winkel an P1 bereits größer werden als der dort ideale Winkel zur Einhaltung des ±90◦ -Kriteriums. Da eine leichte Abweichung zum ±90◦ -Kriterium erlaubt ist, ist ein dort generiertes Viereck immer noch einem Dreieck vorzuziehen. Ggfs. kann k2 gekürzt werden. Dies ist erlaubt, da sie nicht zur Kontur gehört. 156 KAPITEL 5. LÖSUNGEN ZUR P-VERNETZUNG Wie oben bereits erwähnt, braucht beim ±90◦ -Winkel keine Anpassung stattzufinden. Beim ±180◦ -Winkel und ±270◦ -Winkel können Konfliktdreiecke (bzw. Zerlegungsdreieckkandidaten) nicht ausgeschlossen werden (Abb. 5.61 (ii) + (iii)). Die Dreiecke werden bei Fall 2 (vergl. Abb. 5.60) auf jeden Fall zu Konfliktdreiecken. Bei Fall 1 werden sie zu Zerlegungsdreieckkandidaten, die einen Zerlegungspfad ins Regioninnere weiter leiten, wenn von den Seiten ein Zerlegungspfad auftrifft. Ein ±340◦ -Winkel kann praktisch ausgeschlossen werden, da bereits eine Kante nicht zur Kontur gehört. Treten trotzdem Fälle dieser Kategorie auf, so werden sie wie ±270◦ -Winkel behandelt. Es wird nun die Vernetzung von nebeneinanderliegenden Anschlußknoten, also von solchen, die nur durch eine Kante verbunden sind, diskutiert (Schema 4.31 (iii) b)). Diese Vernetzung geschieht in Abhängigkeit der Abstandslänge l zwischen den beiden Knoten, die zu diesen Anschlußknoten innerhalb der Region generiert wurden und damit nicht auf der Kontur liegen (vergl. Abb. 5.62). Da nach Möglichkeit in den zu vernetzenden Zwischenraum Elemente eingesetzt werden sollen, deren Kantenlängen der DKL (also der gewünschten Durchschnittskantenlänge, s. Def. 3.4 Seite 27) oder einer anderen in diesem Bereich gewünschten Kantenlänge entsprechen, werden bl/DKLc Elemente eingesetzt (vergl. Abb. 5.62). Dazu wird die Verbindung zwischen den beiden Knoten in bl/DKLc Teile unterteilt. Mit dem Teil, der mit der Kante zwischen den beiden Anschlußknoten das beste Viereck (bezüglich der Winkel) bildet, wird ein Viereck erzeugt. Aus den anderen Teilen werden jeweils Dreiecke generiert, wozu der jeweils nächst gelegene Anschlußknoten gewählt wird. Beispiel: In Abb. 5.62 (ii) wird die Verbindung zwischen den beiden Knoten P1 und P2 , die im Inneren der Region liegen und durch eine Kante mit den Anschlußknoten verbunden sind, in zwei Teile unterteilt. Da der linke Teil mit der Kante zwischen den beiden Anschlußknoten das bessere Viereck bildet, wird es generiert. Der rechte Teil liegt näher zum rechten Anschlußknoten, weswegen hiermit ein Dreieck generiert wird. Die Elemente werden anschließend bezüglich der gewünschten Kantenlänge korrigiert. Evtl. generierte Dreiecke stellen im Fall 2 (vergl. Abb. 5.60) Konfliktdreiecke und im Fall 1 Zerlegungsdreieckkandidaten dar. Zur Reduzierung solcher Dreiecke kann die Verbindung statt in bl/DKLc in bl/maxerlaubtc Teile unterteilt werden, wobei maxerlaubt eine maximal erlaubte Länge der Kanten angibt. In Abb. 5.62 sind einige Beispielvernetzungen dargestellt. 5.4. ANPASSUNGSELEMENTE UND ANSCHLUSSKNOTEN 157 l l (i) P1 P2 (ii) l (iii) Abbildung 5.62: Vernetzung nebeneinanderliegender Anschlußknoten Es wird zum Schluß noch die Vernetzung von zweifachen Anschlußknoten diskutiert. Diese findet in Abhängigkeit der Größe des Winkels zwischen den beiden bereits dort generierten Kanten und dem Abstand l ihrer Knoten, die im Regioninneren liegen, statt. Bei kleinem Winkel (Abb. 5.63 (i)) oder geringem Abstand (Abb. 5.63 (ii)) wird der Durchschnitt der beiden Knoten gewählt und beide Kanten zu einer verschmolzen (Abb. 5.63 (i)+(ii)). Dies geschieht auch bei Überschneidung der beiden Kanten, also bei negativen“ ” Winkeln. Entstehen dadurch entartete oder sehr schlechte Elemente, wird der Bereich als nicht vernetzbar“ deklariert. Um die Nicht-Vernetzbarkeit“ ” ” aufzuheben, muß entweder eine schlechte Qualität der Elemente in Kauf genommen werden. Oder eine Vernetzung muß erneut stattfinden, wobei die Freiheitsgrade bei der Anpassung der Polygone (vergl. Schema 3.20 II (ii), Seite 36) erhöht werden, damit diese stärker geglättet sind. Dadurch resultieren z.B. weniger Zacken. Bei einem größeren Winkel und einem längeren Abstand l werden auf der Verbindung zwischen beiden Knoten analog zu nebeneinanderliegenden Anschlußknoten bl/DKLc viele Kanten eingesetzt und dadurch Dreiecke gebildet (Abb. 5.63 (iii)), deren Kanten ggfs. anschließend an die gewünschte Kantenlänge angepaßt werden. (i) (ii) (iii) Abbildung 5.63: Vernetzung zweifacher Anschlußknoten Nach der Generierung der Anpassungselemente an den Anschlußknoten 158 KAPITEL 5. LÖSUNGEN ZUR P-VERNETZUNG erfolgt schließlich das Einsetzen von Viereckreihen (vergl. Abschnitt 4.2.3 S. 73 und Schema 4.31 (iv) a)). Damit ist die Vernetzung aller Randelemente vollständig diskutiert (vergl. Schema 4.31 (i),(ii),(iii),(iv) a)). Im Beispiel des Abschnitts der Wurm sind keine Anpassungselemente zu generieren oder zweifache Anschlußknoten zu vernetzen. Zweifache Anschlußknoten wurden der Einfachheit halber bereits früher vernetzt. Es werden einige nebeneinanderliegende Anschlußknoten vernetzt und teilweise aneinander angepaßt. Abb. 5.64 stellt die komplette Vernetzung der Randelemente dar. Abbildung 5.64: Vernetzung mit Viereckreihen für das Wurmbeispiel Polygonteile, mit gleichem Tiefenwert der Knoten wie der anliegenden zu vernetzenden Region, auf denen garantiert kein Zerlegungspfad geführt wird, brauchen nicht mit Viereckreihen vernetzt zu werden. An ihnen können keine Konfliktelemente entstehen. 5.5 Zerlegungspfade innerhalb von Regionen In den letzten Unterkapiteln wurde die Generierung aller Randelemente vorgestellt. Diese werden so generiert, daß Zerlegungspfade häufig entlang der 5.5. ZERLEGUNGSPFADE INNERHALB VON REGIONEN 159 Randelemente verlaufen. Von Randelementen, die Konfliktdreiecke darstellen, können Zerlegungspfade ausgehen, die ins Innere einer Region zeigen. Dreiecke, als Randelemente, die nicht Konfliktdreiecke darstellen, können Zerlegungsdreieckkandidaten (s. Def. 4.1.6) sein. Diese können ebenfalls Zerlegungspfade ins Innere einer Region weiterleiten. In diesem Unterkapitel wird die Generierung solcher Zerlegungspfade, die von Konflikt- und Zerlegungsdreiecken ausgehen bzw. weitergeleitet werden und ins Innere einer Region zeigen (vergl. Schema 4.31 (iv) b)), diskutiert. 5.5.1 Darstellung des Verfahrens Bei der Vernetzung von Ecken, Zacken und schmalen Regionen werden teilweise Konflikt- und Zerlegungsdreiecke erzeugt, die die Generierung eines Zerlegungspfades in die Region hinein notwendig machen (vergl. z.B. Abb. 5.17 S. 95 oder Abb. 5.51 S. 141). Dies gilt auch für Zerlegungsdreieckkandidaten, da von diesen ebenfalls Zerlegungspfade ausgehen können. Definition 68. Konflikt- und Zerlegungsdreiecke sowie Zerlegungsdreieckkandidaten, von denen ein Zerlegungspfad ausgehen kann, der ins Innere einer Region führt, heißen I-Dreiecke (Ins-Innere-führende-Dreiecke). In Abb. 5.65 (i) stellen die Dreiecke D1 ,..., D4 I-Dreiecke dar: D4 (i) D3 D1 D4 D2 D3 D1 D2 (ii) Abbildung 5.65: I-Dreiecke innerhalb einer Region Bemerkung 5.1. I-Dreiecke entsprechen bezüglich der Vernetzung von nebeneinanderliegenden Zacken den EinKnotenDreiecken (s. Def. 65, S. 125). Damit die Zerlegungspfade, die von I-Dreiecken ausgehen, nicht unkontrolliert über die Kontur hinweglaufen, wurde ein Verfahren entwickelt, daß I-Dreiecke innerhalb einer Region paarweise zuordnet und durch Zerlegungspfade miteinander verbindet. 160 KAPITEL 5. LÖSUNGEN ZUR P-VERNETZUNG Die Zuordnung soll so stattfinden, daß sich die Zerlegungspfade nicht überschneiden. Denn bei einer Überschneidung würden auf ein Viereck von allen Seiten Zerlegungspfade treffen. Dies würde bei Zerlegungspfaden mit gleichem Zerlegungslayer zur kompletten Zerlegung des zum Viereck zugehörigen Elementstapels führen (vergl. Forderung 4.1). Dadurch würden viele zusätzliche Prismen und Tetraeder entstehen. Da zum Zeitpunkt der Vernetzung der Zerlegungspfade nicht notwendigerweise vorausgesagt werden kann, welche Zerlegungslayer ein Zerlegungspfad besitzt und Zerlegungspfade oft mehrere Zerlegungslayer besitzen, ist die Überschneidung von Zerlegungspfaden grundsätzlich zu vermeiden. Aus dem gleichen Grund findet auch bei der Zuordnung der I-Dreiecke keine Unterscheidung durch ihre Zerlegungslayer statt. Im folgenden wird die Strategie der Zuordnung von Zerlegungspfaden beschrieben. Definition 69. Zwei I-Dreiecke heißen benachbart, wenn es zwischen ihnen eine Verbindung aus Randelementen entlang der Kontur gibt, die kein weiteres I-Dreieck enthält. Ein I-Dreieckpaar (Di , Dj ) heißt benachbart, wenn Di und Dj benachbart sind. In Abb. 5.65 (i) sind die I-Dreieckpaare (D1 ,D2 ),(D2 ,D3 ),(D3 ,D4 ) und (D4 ,D1 ) jeweils benachbart. Im folgenden ist mit einem (Dreieck-)Paar immer ein benachbartes IDreieckpaar gemeint. Die Vermeidung von Überschneidungen der Zerlegungspfade soll durch eine sukzessive Zuordnung von jeweils benachbarten I-Dreiecken eingehalten werden: Auf eine noch zu bestimmende Weise wird ein benachbartes Dreieckpaar ausgewählt und durch einen Zerlegungspfad verbunden (in Abb. 5.65 (ii) D1 und D4 ). Dadurch wird die Region in zwei disjunkte Bereiche unterteilt, wovon einer ggfs. noch I-Dreiecke enthält, und einer auf keinen Fall I-Dreiecke enthalten kann. Definition 70. Der aktuelle Bereich ist der Bereich, der alle noch zu verbindenen I-Dreiecke enthält. Die weitere Zuordnung und Vernetzung zwischen den I-Dreiecken findet anschließend sukzessiv auf gleiche Weise innerhalb des aktuellen Bereiches statt. Dies geschieht so lange bis der aktuelle Bereich keine I-Dreiecke mehr enthält. Auf diese Weise werden Überschneidungen von Zerlegungspfaden verhindert. 5.5. ZERLEGUNGSPFADE INNERHALB VON REGIONEN 161 Es soll jetzt ein erstes sinnvolles“ Dreieckpaar, dessen I-Dreiecke durch ” einen Zerlegungspfad miteinander verbunden werden sollen, bestimmt werden. Eine Verbindung von benachbarten I-Dreiecken durch einen Zerlegungspfad ist jedoch nicht immer möglich. Wenn z.B. eine andere Region (störende Region) in die gerade betrachtete Region hineinreicht, können die Elemente eines möglichen Zerlegungspfades zwischen zwei Dreiecken beliebig schlecht werden, so daß die Generierung eines Zerlegungspfades zwischen zwei solchen Dreiecken (fast) unmöglich ist. (Ein solches Beispiel wird im folgenden noch diskutiert; vergl. Abb. 5.66.). Ein Dreieckpaar heißt dann nicht verbindbar. Die Wahl der benachbarten I-Dreiecke, zwischen denen ein (erster) Zerlegungspfad generiert werden soll, hängt deswegen entscheidend von der Qualität der Zerlegungspfade ab. Die Qualität eines Zerlegungspfades wird bestimmt durch: a) die Anzahl seiner Vierecke, b) die Qualität seiner Vierecke, c) seine Überschneidungen mit bereits generierten Bereichen. Die Qualität eines Dreieckpaares sei gleich der Qualität eines Zerlegungspfades zwischen den beiden I-Dreiecken. Falls keine nicht-verbindbaren Dreieckpaare vorliegen, erscheint es sinnvoll, für den aktuellen Bereich jeweils ein Dreieckpaar bester Qualität zu ermitteln. Da für die Ermittlung eines Dreieckpaares bester Qualität die Generierung eines Zerlegungspfades zu aufwendig ist, wird zunächst eine Qualitätsabschätzung zur Bestimmung eines solchen Paares vorgenommen. Eine solche Qualitätsabschätzung wird im nächsten Abschnitt beschrieben. Die Qualität eines Dreieckpaares, zwischen dem evtl. ein Zerlegungspfad ZP generiert wird, entspricht also einer Abschätzung der Qualität von ZP. Sind in Abhängigkeit der Qualität zwei I-Dreiecke für die Zuordnung gewählt worden, wird zwischen diesen ein Zerlegungspfad generiert (Abb. 5.65 (ii)). Damit ist die Zuordnung von Zerlegungspfaden innerhalb einer Region, für den Fall, daß keine nicht verbindbaren Dreieckpaare auftreten, klar. Insbesondere wird durch das sukzessive Zuordnen benachbarter I-Dreiecke eine Überschneidung von Zerlegungspfaden vermieden. Es soll jetzt an einem Beispiel (Abb. 5.66) diskutiert werden, wie eine Zuordnung stattfinden kann, wenn ein nicht-verbindbares Paar im aktuellen Bereich liegt. Der in Abb. 5.66 dargestellte Teil enthalte alle im aktuellen Bereich befindlichen I-Dreiecke. Die Qualität wird in diesem Beispiel anschaulich beurteilt. Nach dem allgemeinen Verfahren würden zunächst zwei bezüglich der Qualität beste benachbarte I-Dreiecke ausgewählt. Das Dreieckpaar (1,6) 162 KAPITEL 5. LÖSUNGEN ZUR P-VERNETZUNG 5 6 4 3 2 1 Abbildung 5.66: Beispiel für die Zuordnung von Elementen zur Generierung von Zerlegungspfaden stellt jedoch ein Problem dar: Eine direkte geradlinige Verbindung zwischen I-Dreieck 1 und 6 würde über die in der Mitte liegende Region verlaufen. Ein Zerlegungspfad soll aber nicht beliebig in eine andere Region führen. Insbesondere könnten dadurch sonst Überschneidungen zwischen Zerlegungspfaden auftreten, wenn z.B. entlang der Randelemente, die an der Kontur der zu schneidenen Region liegen, Zerlegungspfade geführt werden. Dies ist (, wie oben schon in einem anderen Kontext beschrieben wurde,) aber auf jeden Fall zu vermeiden. Deswegen erweist sich folgendes Verbot als sinnvoll: Zwei I-Dreiecke dürfen nicht durch einen Zerlegungspfad, der eine andere Region schneidet, verbunden werden (vergl. Abb. 5.67)! Abbildung 5.67: Nicht verbindbare Elemente Dadurch wird jedoch eine mögliche Verbindung durch einen Zerlegungspfad zwischen 1 und 6 so erschwert, daß das Paar als nicht verbindbar “ ” 5.5. ZERLEGUNGSPFADE INNERHALB VON REGIONEN 163 eingestuft wird. Wesentlich dafür ist der mangelnde Platz zur Generierung eines Zerlegungspfades. Alle anderen Zerlegungspfade in Abb. 5.66 zwischen zwei benachbarten I-Dreiecken erscheinen bezüglich des Platzes bzw. möglicher Überschneidungen möglich. (Auf den Platzbedarf einer Verbindung wird bei der Qualitätsberechnung noch genauer eingegangen.) Trotzdem muß auch hier die Zuordnung vorsichtig geschehen: Eine Verbindung zwischen I-Dreieck 4 und I-Dreieck 5 (kurz: Paar (4,5)) könnte z.B. zu einem Engpass führen, da IDreieck 6 dann nur noch mit I-Dreieck 3 und I-Dreieck 1 mit I-Dreieck 2 verbunden werden könnte. Dieses Problem resultiert ebenfalls aus der störenden Region, die zwischen I-Dreieck 1 und I-Dreiecke 6 liegt. Ein solcher Engpaß kann immer bei Platzmangel entstehen. Wegen der Nicht-Verbindbarkeit des Paares (1,6) soll wenigstens eines der I-Dreiecke 1 und 6 zuerst vernetzt werden. Dadurch wird auf jeden Fall verhindert, daß die I-Dreiecke zu irgendeinem Zeiptpunkt miteinander verbunden werden müssen. Dies könnte nämlich nach der oben beschriebenen Strategie, bei der nacheinander die Paare jeweils bester Qualität verbunden werden, geschehen. Außerdem sollen dadurch Engpässe zu weiteren benachbarten I-Dreiecken, wie sie im letzten Absatz beschrieben wurden, vermieden werden. Für die Suche eines geeigneten Partners für 1 oder 6 wird deswegen ein sogenannter Doppelpaarvergleich durchgeführt, indem einige Paarbildungen qualitativ abgeschätzt werden. Dabei wird wie folgt vorgegangen: Es werden die Qualitäten vierer Doppelpaare verglichen. Die ersten Doppelpaare bilden jeweils die I-Dreiecke 1 bzw. 6 mit ihren gültigen Nachbarn und die der beiden Nachbarn davon, also hier die Doppelpaare (1,2), (3,4) und (5,6), (3,4). Die zweiten Doppelpaare sind das Doppelpaar (2,3) und (1,4) unter der Voraussetzung, daß die Verbindung von (2,3) zuerst konstruiert wird, und das Doppelpaar (4,5) und (3,6) unter der Voraussetzung, daß die Verbindung zu (4,5) zuerst erzeugt wird, berechnet. (Für die Verbindung, die zuerst erzeugt wird, wird bei der Qualitätsabschätzung ein Zerlegungspfad approximiert. Dieser wird dann bei der Qualitätsabschätzung für das zweite Paar bezüglich der Überschneidung berücksichtigt.) D.h. es wird jeweils ein Paar aus den gültigen Nachbarn mit dessen Nachbarn und ein Paar aus dem zu betrachtenden Element und seinem überübernächsten Nachbarn gebildet. Für alle Doppelpaare wird die Qualität aus beiden Paaren berechnet. Aus den vier berechneteten Qualitäten wird die beste gewählt. Ist die Qualität von (1,2),(3,4) die beste, so wird eine Verbindung von 1 nach 2 konstruiert. Bei (5,6), (3,4) wird eine Verbindung von 5 nach 6 generiert, bei (2,3), (1,4) eine Verbindung von 2 nach 3 und bei (4,5), (3,6) eine Verbindung von 4 nach 5. 164 KAPITEL 5. LÖSUNGEN ZUR P-VERNETZUNG Die Qualitätsüberprüfung in dieser Weise hat folgenden Hintergrund: Wird eines der I-Dreiecke 1 und 6 mit seinem Nachbarn vernetzt ((1,2) oder (5,6)), so kommt das direkt dem Ziel entgegen, diese I-Dreiecke möglichst früh zu vernetzen. Zwei Nachbarn eines solchen I-Dreiecks ((2,3) oder (4,5)) werden nur dann vernetzt, wenn die Vernetzung des zugehörigen I-Dreiecks (I-Dreieck 1 oder 6) mit dem neuen Nachbarn (I-Dreieck 4 oder 3) möglich ist und sogar zu einer besseren Gesamtqualität führt. Durch eine weitere Qualitätsberechnung in dem neuen Bereich kann evtl. (hier nicht möglich) sogar noch eine bessere Zuordnung gefunden werden. Also ist auch durch diese Vernetzung die letztendliche Zielsetzung, die Erhöhung der Gesamtqualität der Vernetzung, gewährleistet. Existieren in dem neuen Bereich weitere nicht-verbindbare Paare (wurde z.B. I-Dreieck 1 vernetzt, könnte I-Dreieck 6 mit einem im aktuellen Bereich benachbarten I-Dreieck nicht verbindbar sein), wird das Verfahren erneut auf gleiche Weise im dann aktuellen Bereich angewendet. Falls in einem aktuellen Bereich mehrere nicht verbindbare benachbarte Paare existieren, werden auf analoge Weise Doppelpaare gebildet und verglichen, falls dies möglich ist. Es wird dann zum entsprechenden Paar zum Doppelpaar bester Qualität ein Zerlegungspfad generiert. In der schematischen Darstellung in Abb. 5.68 (i) seien die Paare (1,10), (4,5) und (9,16) benachbarte nicht verbindbare Paare. Zu den I-Dreiecken 1 und 4 können keine Doppelpaare konstruiert werden, da 1 und 4 ebenfalls nicht verbindbar sind (dies muß aber für die Doppelpaare gelten.) Deswegen werden für diese I-Dreiecke nur Paare zum Vergleich gebildet. Lägen zwischen 1 und 4 keine I-Dreiecke, so könnten diese Dreiecke für die Zuordnung zunächst nicht berücksichtigt werden. Sie hätten jeweils zwei Nachbarn, mit denen sie ein nicht verbindbares Paar bilden. Evtl. wäre eine Zuordnung zu einem späteren Zeitpunkt möglich. Wenn nicht, gilt die Region als nicht ” vernetzbar“. Existieren in einem aktuellen Bereich ausschließlich I-Dreiecke, die mit keinem ihrer Nachbarn verbunden werden können, so wird die Region als nicht vernetzbar“ deklariert. In Abb. 5.68 (ii) ist ein solcher Fall schematisch ” dargestellt. Die Nicht-Verbindbarkeit“ kann nicht aufgehoben werden, da ” die Hinwegnahme einer störenden Region nicht möglich ist. Es ist möglich, daß eine Region eine ungerade Anzahl I-Dreiecke besitzt. In diesem Fall muß die Anzahl dieser Elemente wegen der paarweisen Zuordnung begradigt werden. Zur Begradigung wird entweder ein I-Dreieck weggenommen oder eines hinzugefügt. Durch die Wegnahme eines I-Dreiecks müssen die jeweils benachbarten Elemente angepaßt werden. Sie verschlechtern sich i.a. bezüglich ihrer Win- 5.5. ZERLEGUNGSPFADE INNERHALB VON REGIONEN 4 1 2 3 10 11 165 5 6 7 8 9 12 13 14 15 16 (i) 1 2 3 4 5 6 (ii) Abbildung 5.68: Schematische Darstellung nicht verbindbarer Paare kel. Für jedes I-Dreieck wird deswegen die Qualität der Elemente, die sich durch die Wegnahme verändern, berechnet. Die jeweilige Summe aller Abweichungen von den optimalen Winkeln entscheidet darüber, welches I-Dreieck entfernt wird. Ist die Qualität der Elemente durch die Hinwegnahme eines I-Dreiecks für jedes I-Dreieck zu schlecht, wird stattdessen ein I-Dreieck hinzugefügt. Zum Einsetzen eines neuen I-Dreiecks wird ein Knoten auf der Kontur der Region gewählt, an dem die in der Region anliegenden Elemente die größte positive Gesamtabweichung von ihren optimalen Winkeln besitzen. Zwischen diesen Elementen wird ein I-Dreieck eingesetzt. Damit ist das prinzipielle Vorgehen für die Zuordnung von I-Dreiecken klar. Es ist in Algorithmus 5.7 noch einmal skizziert. Nach jeder Zuordnung zweier I-Dreiecke wird die entsprechende Verbindung generiert, damit evtl. Überschneidungen für die nächste Verbindung einkalkuliert werden können. In den folgenden Abschnitten wird die Berechnung der Qualitätsabschätzung eines Dreieckpaares diskutiert. Ebenfalls wird die Generierung der Zerlegungspfade beschrieben. 5.5.2 Qualitätsberechnung Im letzten Abschnitt wurde diskutiert, wie die Zuordnung von I-Dreiecken in Abhängigkeit einer Qualitätsabschätzung der dazwischen zu generierenden Zerlegungspfade abläuft. In diesem Abschnitt wird eine sinnvolle Berechnung einer Qualitätsabschätzung für I-Dreieck-Paare vorgestellt. 166 KAPITEL 5. LÖSUNGEN ZUR P-VERNETZUNG Algorithmus 5.7 (I-Dreieckpaare). 1. PROCEDURE 2. BEGIN 3. aktueller Bereich:=Region; 4. while (aktueller Bereich enthält I-Dreiecke) 5. 6. 7. falls (aktueller Bereich enthält ungerade Anzahl von I-Dreiecken) begradige Anzahl; falls (aktueller Bereich enthält Dreieckpaare) 8. ermittle Qualität aller Dreieckpaare; 9. falls (existiert nicht verbindbares Paar) 10. wähle ein I-Dreieck I aus einem nicht-verbindbaren Paar mit Doppelpaar bester Qualität; 11. wähle daraus entstandenes Paar aus; 12. sonst 13. wähle Paar bester Qualität; 14. falls (Qualität des ausgewählten Paares < ∞) 15. generiere Verbindung zwischen gefundenem Paar; 16. 17. 18. 19. END aktualisiere Bereich; sonst exit: Region nicht vernetzbar; 5.5. ZERLEGUNGSPFADE INNERHALB VON REGIONEN 167 Statt der Betrachtung der I-Dreiecke eines Dreieckpaares können ebenso nur die Kanten dieser I-Dreiecke, von denen ein Zerlegungspfad ins Innere der Region ausgehen soll, betrachtet werden: Definition 71. k1 und k2 sind die zwei ins Innere einer Region zeigenden Kanten eines I-Dreieck-Paares, die durch einen Zerlegungspfad verbunden werden sollen. Die Qualitätsabschätzung Q soll mittels einer Formel, in der die wesentlichen Merkmale widergegeben werden, vorgenommen werden. Die Formel soll aus zwei Faktoren bestehen: In einem ersten Faktor R der Formel sollen sich die gegenseitige Lage von k1 und k2 und der Platz, den eine Verbindung dazwischen benötigt, widerspiegeln. Eine Nicht-Verbindbarkeit von Paaren sowie die Berücksichtigung von möglichen Überschneidungen mit bereits generierten Teilen soll sich in einem zweiten Faktor S der Formel widerspiegeln. Für die Qualitätsabschätzung Q ergibt sich somit Q = R ∗ S; (5.1) Die beiden Faktoren werden nacheinander ermittelt. Wie noch ersichtlich wird, gliedert sich der Faktor R in mehrere Unterfaktoren. Ermittlung von R Zur Ermittlung von R wird definiert: Definition 72. DKL(k1 , k2 ) ist die Durchschnittskantenlänge von k1 und k2 . Ein Senkrechtvektor auf k1 oder k2 ist der Vektor mit Länge DKL(k1 , k2 ), der im Mittelpunkt von k1 bzw. k2 beginnt und in die Region zeigt (vergl. Abb. 5.69). Es wird zunächst ein Beispiel betrachtet: In Abb. 5.70 sind einige Kantenpaare mit ihren Senkrechtvektoren dargestellt. Eine anschauliche Bewertung von Abb. 5.70 würde die Reihenfolge (i), ..., (x) bezüglich der Qualität ergeben: Zeigen die Senkrechtvektoren zueinander (Abb. 5.70 (i)+(ii)), so ist die Lage besonders gut. Je geringer der Abstand zwischen den Kanten dann ist, desto weniger Elemente müssen generiert werden, desto besser ist die Qualität. Zerlegungspfade können durch direkte Verbindungen der Kanten generiert werden. Bei Abweichungen von dieser Lage wird die Qualität schlechter. Ein Zerlegungspfad kann nicht 168 KAPITEL 5. LÖSUNGEN ZUR P-VERNETZUNG k2 k1 Abbildung 5.69: Senkrechtvektoren mehr durch direkte Verbindung, sondern muß in einem Bogen generiert werden, wodurch mehr Platz gebraucht wird und längere Zerlegungspfade entstehen. Zeigen die Senkrechtvektoren auseinander (Abb. 5.70 (vii)) oder liegen sie z.B. untereinander (Abb. 5.70 (viii)), so braucht ein Zerlegungspfad noch mehr Platz, weil er in einem großen oder in mehreren Bögen generiert werden muß. Eine Lage wie in (Abb. 5.70 (x)) ist besonders schlecht, da ein Zerlegungspfad in einem riesigen Bogen generiert werden muß und deswegen viele Elemente enthält. Diese Eigenschaften und damit auch eine Reihenfolge können bereits durch die Lage der Kanten und der Senkrechtvektoren sowie durch die Winkel zwischen ihnen abgeschätzt werden. Zur Ermittlung von R ist es sinnvoll, im Wesentlichen die folgenden drei Kriterien der Kantenpaare, die später noch deutlicher werden, zu berücksichtigen: 1. Die Richtung der Senkrechtvektoren zueinander in Abhängigkeit ihres Abstands voneinander 2. Eine starke Abweichung eines Senkrechtvektors von einer Ideallage 3. Die Lage der Senkrechtvektoren zueinander Der Faktor R soll sich aus drei Faktoren R1 , R2 , und R3 zusammensetzen, wobei R1 hauptsächlich das erste Kriterium, R2 das zweite und R3 das dritte Kriterium widerspiegelt. Es gilt also R = R1 ∗ R2 ∗ R3 . (5.2) Im folgenden wird die Ermittlung dieser Faktoren erklärt, wobei die Faktoren so gewählt werden, daß sie bei idealer Lage der Kanten gleich 1 sind und sich mit zunehmender Qualitätsverschlechterung des Paares erhöhen. 5.5. ZERLEGUNGSPFADE INNERHALB VON REGIONEN (i) 169 (ii) (iii) (vi) (iv) (v) (vii) (viii) (ix) (x) Abbildung 5.70: Verschiedene Kantenpaare zur Bestimmung der Qualität ihrer Lage zueinander 170 KAPITEL 5. LÖSUNGEN ZUR P-VERNETZUNG Durch die Faktoren kann nur eine ungefähre Qualitätsbewertung vorgenommen werden. Entscheidend ist schließlich die Reihenfolge für verschiedene Kantenpaare, die daraus resultiert. Ermittlung von R1 Zeigen die Senkrechtvektoren von k1 und k2 direkt aufeinander (Abb. 5.71), so liegen die beiden Kanten k1 und k2 bezüglich ihrer Richtung ideal zueinander. Ein Zerlegungspfad, der beide verbindet, muß nicht gekrümmt werden. Es muß ein Maß gefunden werden, daß eine dazu abweichende Lage sinnvoll bewertet. Abbildung 5.71: Ideallage zweier Kanten zueinander Mit Hilfe der Senkrechtvektoren wird eine erste Bewertung bezüglich der Abweichung zur Ideallage ermittelt. V1 sei die Verbindung zwischen den beiden Ursprüngen der Senkrechtvektoren und V2 die Verbindung zwischen den beiden Zielen der Senkrechtvektoren (vergl. Abb. 5.72). Dann sagt D = |V1 | − |V2 |; (5.3) als Differenz der beiden Längen etwas über die Abweichung zur Ideallage aus: D liegt zwischen 2∗DKL(k1 ,k2 ) und -2∗DKL(k1 ,k2 ). Ist D=2∗DKL(k1 ,k2 ), so zeigen beide Vektoren direkt aufeinander (Abb. 5.71), ist D=-2∗DKL(k1 ,k2 ), so zeigen sie direkt voneinander weg (Abb. 5.72 (ii)). Für D=0 können die Vektoren z.B. parallel zueinander liegen (Abb. 5.72 (iii)+(iv)). Tendenziell bedeutet somit ein größeres D eine bessere Lage der Kanten zueinander. Ein erstes Maß ist mit D gefunden. In die Bewertung soll zusätzlich noch die Entfernung der Kanten voneinander einfließen. Je größer die Entfernung ist, desto mehr Zerlegungsvierecke müssen generiert werden. Damit hat sie direkte Auswirkung auf die Kosten eines Zerlegungspfades. Die Optimalität des Abstandes ist abhängig von der Richtung der Kanten zueinander und damit von D. Bei kleinem D ist ein 5.5. ZERLEGUNGSPFADE INNERHALB VON REGIONEN 171 V2 V1 V2 V1 (ii) (i) V2 V2 V1 V1 (iii) (iv) Abbildung 5.72: Veranschaulichung von D für verschiedene Kantenlagen Mindestabstand zum Einfügen von Elementen zu bevorzugen, da die Richtungen der Senkrechtvektoren auseinander zeigen. Als optimal wurde dabei ein Abstand von 5∗DKL(k1 ,k2 ) gewählt. Bei einem großem D kann bei entsprechend naher Lage mit einem einzigen Element die Verbindung geschaffen werden, die beiden Senkrechtvektoren zeigen aufeinander zu. Das generierte Element ist dann immer noch relativ gut. Deswegen wird hier der Abstand von 1∗DKL(k1 ,k2 ) als optimal angesehen. Aus diesem Grund erfolgt die Integration von D in die Qualitätsberechnung im Zusammenhang mit dem Abstand der beiden Kanten voneinander. Die Qualitätsberechnung ist so zu wählen, daß ein großes D selbst dann zu bevorzugen ist, wenn der Abstand wesentlich größer ist als bei einem kleinen D. Erst wenn bei einem großen D der Abstand ein Vielfaches von dem Abstand bei einem kleinen D beträgt, soll das Kantenpaar mit dem kleinen D bevorzugt werden. Dies entspricht der Bevorzugung von gut zueinanderliegenden Kanten mit größerem Abstand gegenüber schlecht zueinanderliegenden Kanten mit geringem Abstand. Der Abstand zwischen zwei Kanten wird vereinfachend durch |V1 | abgeschätzt. R1 ist der Faktor für die Qualitätsberechnung, in dem der Abstand |V1 | und die Differenz D in Abhängigkeit voneinander integriert sind. R1 = ||V1 | + D − 3| + 5 √ ∗ 3 − D; D+3 (5.4) Der erste Faktor von R1 minimiert sich bei optimalem Abstand für ein festes D. Z.B. wird für D=2 ein Minimum für |V1 |=1 (R1 =1, optimal!)) √ und für D=-2 ein Minimum für |V1 |=5 (R1 =5) erzielt. Der zweite Faktor 3 − D 172 KAPITEL 5. LÖSUNGEN ZUR P-VERNETZUNG verstärkt, daß ein großes D unabhängig vom Abstand der beiden Kanten stärker bevorzugt wird. Das Minimum, das für D=-2 bei |V1 |=5 mit R1 =5 angenommen wird, ist in Bezug auf die beiden weiteren Faktoren R2 und R3 , wie später noch deutlich wird, sehr groß. Da bei D=-2 die Senkrechtvektoren jedoch entgegengesetzt und damit sehr schlecht zueinander liegen, ist diese Bewertung sinnvoll. Ermittlung von R2 : Für die Ermittlung des Faktors R2 sollen noch einmal die Fälle Abb. 5.72 (iii)+(iv) betrachtet werden. Hier wird deutlich, daß R1 nicht für die Aussagekaft der Kantenlage genügt. Obwohl D und |V1 | und damit auch R1 in beiden Fällen gleich sind, ist die Lage der Kanten in Abb. 5.72 (iv) schlechter als die der Kanten in Abb. 5.72 (iii). Denn eine Verbindung zwischen den Kanten in Abb. 5.72 (iv) ist aufwendiger als zwischen den Kanten in Abb. 5.72 (iii). Abhilfe kann durch die Integration einer Bewertung der beiden Winkel α und β, die jeweils die kleinsten Winkel zwischen einem Senkrechtvektor und der Verbindung V1 darstellen, erreicht werden (vergl. Abb. 5.73). α β V1 Abbildung 5.73: Abweichende Winkel α und β Für α = β = 0◦ entsteht eine optimale Lage wie in den Abb. 5.71 und 5.70 (i) +(ii). Abb. 5.72 (iii) und (iv) legen nahe, daß der größere Winkel die Qualität stärker verschlechtert, als dies durch den kleineren Winkel aufgehoben werden kann. Deswegen wird zunächst ein Faktor W berechnet, der sich mit zunehmenden größerem Winkel erhöht. W = α + β + c ∗ max(α, β) c ∈ Q; c+2 (5.5) Der Wert c gibt dabei an, um wieviel der größere Winkel stärker bewertet wird. Für c=1 ergibt sich die doppelte Bewertung, die vernünftig erscheint und im folgenden gewählt wird. 5.5. ZERLEGUNGSPFADE INNERHALB VON REGIONEN 173 In Abb. 5.72 (iii) (Ann.: α=β=90◦ ) + (iv) (Ann.: α=45◦ , β=135◦ ) beträgt der Durchschnitt von α und β jeweils 90◦ . Für Abb. 5.72 (iii) ist W=1∗90◦ , für Abb. 5.72 (iv) gilt W=7/6∗90◦ . Um einen sinnvollen Bewertungsfaktor für die Qualitätsberechnung zu erhalten, wird W durch den Durchschnitt dividiert. Es ergibt sich der Bewertungsfaktor R2 mit R2 = W α+β 2 falls α, β > 0◦ ; (5.6) ◦ R2 = 1 falls α, β = 0 ; R2 liegt (für c=1) zwischen 1 und 4/3: Bei R2 =1 sind die Winkel gleich groß und damit die Lage der Kanten besser (z.B. in Abb. 5.74 (i)). Für R2 =4/3 liegt der andere Extremfall vor: Ein Winkel ist möglichst klein und der andere möglichst groß. D.h. ein Winkel ist 0◦ , der andere 180◦ (vergl. Abb. 5.74 (ii)) und damit R2 =4/3. Die Lage der Kanten ist schlechter. α β (i) α (ii) Abbildung 5.74: Unterschiedliche Kantenlagen bei gleichem durchschnittlichen Abweichungswinkel Der Faktor R2 berücksichtigt nicht, ob die Senkrechtvektoren auseinander zeigen oder nicht. In Abb. 5.75 sind α und β und damit auch R2 gleich groß wie in Abb. 5.74 (i), obwohl die Lage der Kanten zueinander schlechter ist. Da D jedoch in Abb. 5.75 relativ klein ist, überwiegt bei der Bewertung dadurch der schlechte Faktor R1 und spiegelt die Qualität ausreichend wider. Ermittlung von R3 : Sind V1 und V2 gleich groß (D=0) und die Winkel α und β jeweils gleich groß, so muß eine Lage, bei der die Senkrechtvektoren voneinander weg zeigen (vergl. Abb. 5.76 (i)) durch einen weiteren Faktor anders bewertet werden, als eine Lage, bei der sie in die gleiche Richtung (vergl. Abb. 5.76 (ii)) oder aufeinander zu zeigen. Dies wurde bisher weder bei R1 noch bei R2 berücksichtigt und soll im Faktor R3 widergespiegelt werden. 174 KAPITEL 5. LÖSUNGEN ZUR P-VERNETZUNG k1 α β k2 Abbildung 5.75: Unterschiedliche Kantenlage bei gleichen Abweichungswinkeln zu Abb.5.74 (i) V2 k2 γ V2 k1 (i) V1 V1 k1 k2 (ii) Abbildung 5.76: Unterschiedliche Kantenlagen bei gleich großem V1 und V2 Bei gleichem Abstand |V1 | der Kanten zueinander besäßen beide Kantenpaare sowohl für R1 als auch für R2 gleich große Werte, obwohl das Paar mit den entgegengesetzten Senkrechtvektoren schlechter zu bewerten ist. Ein Merkmal für voneinander wegzeigende Senkrechtvektoren bei D=0 ist ein größerer Winkel γ als kleinster Winkel zwischen den Geraden, auf denen V1 und V2 liegen, und ein Schnitt von V1 und V2 (vergl. Abb. 5.76). Für die Berechnung von R3 wird vorausgesetzt, daß |V1 | genügend groß ist, da sonst das Ergebnis verfälscht wird: Ist |V1 | <MinAbstand (z.B. MinAbstand=1/2*DKL), so wird vereinfachend für R3 der Wert 1 angenommen, da dann die Generierung eines Zerlegungspfades durch Einsetzen eines einzigen Vierecks möglich sein kann. Liegt D nahe bei 2, so ist γ klein, da die Vektoren aufeinander zu zeigen 5.5. ZERLEGUNGSPFADE INNERHALB VON REGIONEN 175 γ V2 V1 Abbildung 5.77: γ als kleinster Winkel zwischen den Geraden, auf denen V1 und V2 liegen (vergl. Abb. 5.70 (i)+(ii)). Liegt D nahe bei -2, so ist γ ebenfalls klein, da die Vektoren voneinander wegzeigen (vergl. Abb. 5.70 (x)). Die jeweils gleiche Größe von γ steht im Konflikt dazu, daß die Lage der Kanten im ersten Fall besonders gut und im zweiten Fall besonders schlecht ist. Eine solche schlechte Lage wie im zweiten Fall wird aber bereits durch R1 widergespiegelt, weswegen dieser Faktor entsprechend mehr ins Gewicht fallen soll als ein weiterer Faktor R3 , der γ integriert. Der Faktor ½ γ 1 + 100 γ > MinAbstand R3 = (5.7) 1 γ ≤ MinAbstand liegt zwischen 1 und 1.9. Denn γ kann maximal 90◦ groß werden. Da für große D γ automatisch relativ klein ist und für kleine D R1 groß genug ist, genügt R3 den Anforderungen. Mit den Faktoren R1 , R2 und R3 erscheinen die wichtigsten Qualitätsmerkmale erfaßt. Zur Berechnung der Gesamtqualität ohne Berücksichtigung des Platzverbrauchs werden sie multipliziert. R = R1 ∗ R2 ∗ R3 = √ 2 ∗ (|V1 + D − 3| + 5) ∗ 3 − D ∗ (α + β + c ∗ max(α, β)) γ ∗ (1 + ); (D + 3) ∗ (α + β) ∗ (c + 2) 100 (5.8) Zur Verifikation von R wird im folgenden die Reihenfolge der Kantenpaare aus Abb. 5.70 mit Hilfe von R bestimmt. Der einfachheithalber sei DKL(k1 ,k2 )=1. Alle anderen notwendigen Werte wurden in Bezug dazu abgeschätzt. In der folgenden Tabelle sind alle relevanten Größen und Faktoren zur Berechnung von R aufgelistet. 176 KAPITEL 5. LÖSUNGEN ZUR P-VERNETZUNG Tabelle 5.4. Abb. 5.70 (i) (ii) (iii) (iv) (v) (vi) (vii) (viii) (ix) (x) α(◦ ) 0 0 60 90 73 70 72 180 107 180 β(◦ ) γ(◦ ) V1 V2 D R1 0 0 3 1 2 1.4 0 0 5 3 2 1.8 60 10 3 2 1 2.121 45 20 1.5 0.5 1 1.945 45 15 4 3 1 2.475 110 0 3 3 0 2.887 72 18 3 3 0 2.887 0 0 3 3 0 2.887 134 6 3 4 −1 6 180 0 1.5 3.5 −2 19.007 R2 R3 R 1 1 1.4 1 1 1.8 1 1.1 2.227 1.111 1.2 2.593 1.079 1.15 3.072 1.074 1 3.101 1 1.18 3.407 1.333 1 3.849 1.037 1.06 6.597 1 1 19.007 Das Ergebnis stimmt mit der anfangs bestimmten anschaulichen Bewertung der Kantenpaare überein. Ermittlung von S Zur Berechnung von Q (vergl. Gleichung 5.1) fehlt noch die Ermittlung des Faktors S, der eine Bewertung des Schnitts des zu generierenden Zerlegungspfades mit bereits vernetzten Teilen widerspiegeln soll. Für die Generierung einer Verbindung mittels Zerlegungspfad ist es entscheidend, ob hierfür genügend Platz vorliegt oder ob Überschneidungen mit bereits generierten Teilen entstehen. Kleinere Überschneidungen können ggfs. zunächst akzeptiert werden, da sie in einem späteren Schritt - analog zum Nähen beim Paving - behoben werden können (und müssen). Größere Überschneidungen sollen durch eine entsprechende Gewichtung des Faktors S möglichst vermieden werden. Eine Berechnung von Überschneidungen muß für alle Paare, für die eine Qualitätsabschätzung ermittelt wird, durchgeführt werden. Für eine Abschätzung der Überschneidung, die ein zu generierender Zerlegungspfad mit bereits vernetzten Bereichen besitzen würde, ist die Generierung eines Zerlegungspfades zu aufwendig, weswegen eine Abschätzung des Verlaufs des Zerlegungspfades bevorzugt wird. Die direkte Verbindung der jeweiligen Knoten der Kanten miteinander ist jedoch i.a. zu schlecht für eine Abschätzung. (In Abb. 5.79 ergibt z.B. die direkte Verbindung der jeweiligen Kantenknoten (K1a mit Kza und K1i mit Kzi ) eine vollkommen unrealistische Abschätzung für den Verlauf eines möglichen Zerlegungspfades.) Deswegen werden Zwischenkanten erzeugt (vergl. Abb. 5.79), über die eine Verbindung verlaufen könnte. Eine Approximation findet dann durch direkte Verbindung der Zwischenkanten statt. Die Notwendigkeit einer Zwischenkante soll durch R und die Winkel α1 , β1 , α2 und β2 zwischen den Senkrechtvektoren auf den Kanten und der Ver- 5.5. ZERLEGUNGSPFADE INNERHALB VON REGIONEN 177 bindung der entsprechenden Knoten der Kanten (vergl. Abb. 5.78) entschieden werden. Je kleiner α1 , β1 , α2 und β2 sind, desto besser ist die Lage der beiden Kanten zueinander. α2 α1 k1 β1 β2 k2 Abbildung 5.78: α1 , β1 , α2 und β2 übersteigt der Wert R eines Kantenpaares einen vorgegebenen Wert (bei Betrachtung der Beispiele aus Abb. 5.70 erscheint R=2 ein sinnvolles Maß zu sein) oder ist einer der Winkel α1 , β1 , α2 und β2 >50◦ , sollen eine oder mehrere Zwischenkanten generiert werden. Diese können ggfs. später für die Vernetzung benutzt werden. Durch den Einsatz einer Zwischenkante kz zwischen zwei Kanten k1 und k2 werden aus dem Paar (k1 ,k2 ) zwei Paare, zwischen denen ein Zerlegungspfad zu generieren ist, nämlich (k1 ,kz ) und (kz ,k2 ). Die Plazierung der Zwischenkante soll möglichst optimal sein. Deswegen werden an sie folgende Forderungen gestellt: Die Plazierung von kz soll so erfolgen, daß zwischen je zwei Senkrechtvektoren der dadurch enstandenen beiden neuen Kantenpaare jeweils gleiche Winkel entstehen. Außerdem soll der Mittelpunkt der Zwischenkante in möglichst gleichem Abstand zu den jeweiligen Mittelpunkten der beiden anderen Kanten liegen. Die Qualität (bezüglich R) der Zwischenkante zu den beiden anderen Kanten soll stark gegenüber der Qualität der beiden anderen Kanten zueinander verbessert sein. Zur Ermittlung einer solchen möglichst optimalen Zwischenkante kz (vergl. Abb. 5.79) mit Länge DKL(k1 ,k2 ) wird vom Mittelpunkt M der Strecke V1 ein Vektor durch Addition der beiden Senkrechtvektoren der Kanten erzeugt. Auf diesen Vektor wird eine Gerade g gelegt. Ist der Vektor ein Nullvektor, so wird die Gerade senkrecht zu V1 erzeugt. kz soll auf der Geraden g liegen, da alle Kanten auf dieser Gerade zwei der oben gewünschten Bedingungen erfüllen: Es entstehen zwischen den jeweiligen Senkrechtvektoren der beiden Kantenpaare (k1 ,kz ) und (kz ,k2 ) jeweils gleiche Winkel und der Mittelpunkt von kz hat jeweils gleichen Abstand zu den Mittelpunkten der beiden Kanten 178 KAPITEL 5. LÖSUNGEN ZUR P-VERNETZUNG Kza kz Kzi K2i k1 K1a K1i M k2 K2a Abbildung 5.79: Erzeugung einer Zwischenkante kz zwischen den Kanten k1 und k2 k1 und k2 . Sei R1 der nach Gleichung 5.8 berechnete Qualitätsfaktor für das Kantenpaar k1 und kz und R2 der nach Gleichung 5.8 berechnete Qualitätsfaktor für das Kantenpaar kz und k2 (vergl. Abb. 5.79). R1 und R2 sind jeweils abhängig von den Koordinaten, von kz , die bis jetzt noch unbekannt sind. Zur optimalen Plazierung von kz auf g und damit zur Optimierung der Qualität der beiden Kantenpaare (dritte Bedingung) genügt es, das Minimum der Funktion R1 ∗ R2 zu ermitteln. Da durch die Lage auf der Geraden der y-Wert vom x-Wert abhängig ist und die gewünschte Länge der Kanten feststeht, also die Senkrechtvektoren in Abhängigkeit vom x-Wert formuliert werden können, ist R1 ∗ R2 eine einstellige Funktion, deren Minimum bestimmt werden kann. Mit dem Minimum ist eine optimale Zwischenkante gefunden. Sind für die gefundene Zwischenkante einer oder beide der Qualitätsfaktoren R1 und R2 zu groß oder ist einer der Winkel α1 , β1 , α2 und β2 an den Verbindungen der Kanten größer als 50◦ , so wird zwischen den entsprechenden Kanten rekursiv eine neue Zwischenkante eingesetzt. Dies geschieht so lange, bis die Qualitätsfaktoren zwischen allen Kanten ausreichend gut sind und alle Winkel α1 , β1 , α2 und β2 kleiner als 50◦ sind. Durch die direkten Verbindungen zu und zwischen den Zwischenkanten entsteht dann ein approximierter Zerlegungspfad (vergl. Abb. 5.80). Dieser wird für die Abschätzung des Platzbedarfs bzw. der Überschneidung 5.5. ZERLEGUNGSPFADE INNERHALB VON REGIONEN 179 mit dem bereits vernetzten Gebiet benutzt. Abbildung 5.80: Verbindungen zu und zwischen den (Zwischen-)Kanten Definition 73. Die approximierte Überschneidung U(k1 ,k2 ) (kurz U) zu einem approximierten Zerlegungspfad, der von k1 zu k2 verläuft, ist die Größe der Schnittfläche des Schnitts zwischen dem bereits vernetzten Gebiet und dem approximierten Zerlegungspfad. Die approximierte Überschneidung U eines approximierten Zerlegungspfades ZP kann mit Hilfe des Gitterverfahrens (s. Seite 68) ermittelt werden. U nimmt großen Anteil an der Qualität des Kantenpaares, da eine Überschneidung nicht erlaubt ist und eine Verhinderung der Überschneidung starke Qualitätseinbußen erfordert. Die approximierte Überschneidung U wird in den Faktor S integriert, mit dem R multipliziert wird. Für die Berechnung von S sind folgende Kriterien zu berücksichtigen: Neben dem absoluten Wert U ist die Überschneidungsfläche relativ zum Platzverbrauch des gesamten approximierten Pfades zu integrieren. Liegt keine Überschneidung vor, so soll S=1 gelten. Wird mit dem approximierten Pfad eine fremde Region vollkommen durchquert, soll S=∞ gelten, da das zugehörige Kantenpaar nicht verbindbar ist. Es sei G die Gesamtfläche eines approximierten Zerlegungspfades. Dann realisiert folgende Berechnung von S die oben erwähnten Forderungen: ½ S= 1 + U/G + U falls keine andere Region durchquert wird ∞ sonst (5.9) wobei U in DKL*DKL berechnet wird. Wird also z.B. eine Fläche von 1 DKL*DKL überschnitten und G ist 10 DKL*DKL, so gilt S=2.1. Dies entspricht einer gewünschten starken Integration der Überschneidungen. Die Gesamtqualität Q eines Kantenpaares unter Berücksichtigung von Überschneidungen ergibt sich aus den Gleichungen 5.8 und 5.9 wie folgt. 180 KAPITEL 5. LÖSUNGEN ZUR P-VERNETZUNG Q=R∗S = √ 2∗(|V1 +D−3|+5)∗ 3−D∗(α+β+c∗max(α,β)) ∗ (D+3)∗(α+β)∗(c+2) γ U (1 + 100 ) ∗ (1 + G + U ) ∞ falls keine andere Region durchquert wird sonst (5.10) Q wird zur Bestimmung des aktuell zu wählenden Kantenpaares benutzt (s. Algorithmus 5.7). 5.5.3 Generierung eines Zerlegungspfades Ist die Bestimmung des zu verbindenden Kantenpaares mittels Q abgeschlossen, kann die Generierung des Zerlegungspfades zwischen den beiden Kanten stattfinden. Ausgehend von den für die Approximation berechneten Zwischenkanten und den daraus entstandenen Kantenpaaren soll zwischen den Kanten eines Kantenpaares jeweils ein Teil des Zerlegungspfades ermittelt werden. Zusammengesetzt ergeben diese Teile den gesamten Zerlegungspfad. Für die Ermittlung eines Teils des Zerlegungspfades zwischen den Kanten eines Kantenpaares gibt es mehrere Möglichkeiten. Eine besteht darin, den Teil des Zerlegungspfades durch eine direkte Verbindung zwischen zwei solcher Kanten zu generieren (vergl. Abb. 5.80) und dazwischen Kanten einzusetzen. Diese Lösung ist jedoch i.a. zu schlecht. Es gibt mehrere Möglichkeiten hier Abhilfe zu schaffen. Eine Möglichkeit besteht darin, solange nach dem oben beschriebenen Verfahren weitere Zwischenkanten einzusetzen, bis die direkten Verbindungen jeweils akzeptabel sind. Diese Lösung ist schnell und sorgt i.a. für akzeptable Zerlegungspfade. Es soll aber ein komplizierteres Verfahren vorgestellt werden, weil die Optimierung der Kantenlängen durch das sukzessive Einsetzen von Zwischenkanten leider vernachlässigt wird. Zur Vermeidung stark abweichender Kantenlängen der Elemente eines Zerlegungspfades wurde im Rahmen der Arbeit ein Verfahren entwickelt, das die Teile eines Zerlegungspfades zwischen den Kanten der Kantenpaare mittels Kreisbögen generiert (vergl. Abb. 5.81). Der Zerlegungspfad wird dann mittels Einsetzen von Knoten in äquidistanten Abständen auf den Kreisbögen entlang dieser Kreisbögen geführt. Dadurch werden sowohl die Winkel der Zerlegungsvierecke als auch ihre Kantenlängen optimiert. 5.5. ZERLEGUNGSPFADE INNERHALB VON REGIONEN 181 Die Erzeugung von Kreisbögen ist nur notwendig, wenn die Senkrechtvektoren zweier Kanten ks und kt , zwischen denen ein Teil eines Zerlegungspfades generiert werden soll, nicht (fast) direkt aufeinanderzeigen. Zeigen die Senkrechtvektoren von ks und kt (fast) direkt aufeinander, wird der Zerlegungspfad mittels der direkten Verbindungen der jeweiligen Knoten generiert, da diese dann ausreichend gut sind! Für die Entscheidung kann z.B. der Wert D (vergl. Gleichg. 5.3) benutzt werden. Ist der Abstand zwischen den beiden Kanten ks und kt relativ klein, so ist die Generierung eines Zerlegungpfades mittels Kreisbögen zu aufwendig. Falls |V1 | < 2 ∗ max(|ks |, |kt |), soll der Zerlegungspfad ebenfalls durch direkte Verbindung ermittelt werden. In allen anderen Fällen findet eine Ermittlung durch Kreisbögen statt. Es wird zunächst die Ermittlung der Kreisbögen beschrieben. Anschließend wird auf die Generierung eines Zerlegungspfades mittels Kreisbögen eingegangen. Aufgaben zur Ermittlung der Kreisbögen Es seien ks (=Ksa Ksi ) und kt (=Kta Kti ) die Kanten eines Kantenpaares, zwischen denen Kreisbögen ermittelt werden sollen (vergl. Abb. 5.81). Da sich die Kreisbögen nicht schneiden dürfen, sind die jeweiligen Endknoten der Kanten, die zum jeweils gleichen Kreisbogen gehören, eindeutig festgelegt. Aufgrund der Lage der Kanten bzw. der dazugehörenden Knoten wird ein Kreisbogen ba (a=außen) zwischen den voneinander weiterentfernten Knoten Ksa und Kta und ein Kreisbogen bi (i=innen) zwischen den näher beieinanderliegenden Knoten Ksi und Kti erzeugt. Der Kreis Ki , der durch den Kreisbogen bi bestimmt ist, liegt aufgrund der Lage der Kanten ks und kt und der noch zu diskutierenden Anforderungen an bi und ba mit hoher Wahrscheinlichkeit innerhalb des Kreises Ka , der durch ba bestimmt ist (vergl. Abb. 5.82). Ka bildet in diesem Fall einen Außenkreis zu Ki . Der Vollständigkeit halber werden aber alle Möglichkeiten der Lage der beiden Kreise Ka und Ki , auf denen ba und bi liegen, aufgeführt. Diese beiden Kreise besitzen entweder einen Berührungspunkt (wobei Ki in Ka liegt) oder zwei Schnittpunkte oder sie liegen - wie bereits erwähnt - ineinander. Eine andere Lage kann aufgrund der im folgenden beschriebenen Anforderungen ausgeschlossen werden. Für den Fall, daß der kleinste Abstand zwischen den beiden Kreisen zwischen bi und ba liegen soll, können Ki und Ka nur ineinanderliegen. Für zwei ineinanderliegende Kreise wird definiert (vergl. Abb. 5.82): Definition 74. A sei der kleinste Abstand zwischen zwei ineinanderliegenden Kreisen. R sei der Radius des größeren Kreises mit Mittelpunkt Ma und 182 KAPITEL 5. LÖSUNGEN ZUR P-VERNETZUNG Kta κta k ba t κti Kti bi κsa K sa κ si Ksi ks Abbildung 5.81: Kreisbögen zwischen zwei Kanten r der Radius des kleineren Kreises mit Mittelpunkt Mi . A kann dann wie folgt berechnet werden: A R Mi Ma Ki r Ka Abbildung 5.82: Zwei ineinanderliegende Kreise A = R − |Mi Ma | − r; (5.11) Bemerkung 5.2. Gleichung 5.11 kann auch auf die anderen oben erwähnten Kreiskombinationen angewendet werden, ist A dann negativ, besitzen die Kreise zwei Schnittpunkte, ist A=0 besitzen sie einen Berührungspunkt. Es werden nun folgende Anforderungen an bi und ba gestellt: Die Bogenlängen von bi und ba sollen nach Möglichkeit nicht zu weit auseinanderliegen, da sonst die Kanten, die auf den beiden Kreisbögen generiert 5.5. ZERLEGUNGSPFADE INNERHALB VON REGIONEN 183 werden sollen, in ihren Längen stark voneinander abweichen (Längenanpassungsanforderung). Da bi i.a. durch die Vorgabe der Knoten Ksi und Kti kleiner als ba ist, soll bi deswegen so groß wie möglich und ba so klein wie möglich konstruiert werden. Dabei darf jedoch nicht der Abstand zwischen den beiden Kreisbögen zu gering werden, da dadurch die später zu generierenden Kanten zwischen den Kreisbögen, die zu den Vierecken des zu generierenden Zerlegungspfades gehören, zu sehr variieren. Deswegen wird festgelegt, daß eine kürzeste Verbindung zwischen bi und ba , die sowohl auf ba als auch auf bi senkrecht steht, nicht kleiner als 2/3*DKL sein darf (Abstandsanforderung). Außerdem soll zur Einhaltung der Qualität der Vierecke darauf geachtet werden, daß die Winkel (κsa , κsi , κta , κti ) zwischen den Kreisbögen und den Kanten ks und kt nicht zu nah an 0◦ oder 180◦ liegen (z.B. zwischen 15◦ und 165◦ liegen) (Winkelanforderung) (vergl. Abb. 5.81). Damit entsteht ein Optimierungsproblem, da die gewünschten Qualititätsmerkmale teilweise gegensätzlich wirken. Zur Veranschaulichung des Optimierungsproblems wird folgende Situation beschrieben: Das Problem erinnert daran, eine Gummischleuder mit zwei Gummis zu spannen. Die Gummiverbindungen sind in einem gewissen Abstand voneinander an einer Halterung befestigt und verbinden jeweils zwei Punkte miteinander, deren Abstände zueinander nicht notwendigerweise gleich groß sind. Da die beiden Gummiverbindungen gleich lang gegeben sein sollen, sollen sie zur Erzeugung einer möglichst gleichen Spannung auch im gespannten Zustand möglichst gleich lang sein (Längenanpassungsforderung). Der Pfeil, der durch den Doppelbogen abzuschießen ist, besitze am Pfeilanfang eine Vorrichtung für den Gummibogen, der zwischen den Punkten mit größerem Abstand liegt. Der zweite Bogen kann durch den Pfeil erst nach einem gewissen Abstand zum ersten Bogen gehalten werden (Abstandsanforderung). Aus Stabilitätsgründen kann angenommen werden, daß der Winkel zwischen der Halterung für die Gummis, und den Gummibögen nicht zu groß werden darf (Winkelanforderung). Aus dieser Veranschaulichung heraus soll das Optimierungsproblem im folgenden Doppelbogenproblem genannt werden. Die beiden Kreisbögen werden unter Berücksichtigung des Doppelbogenproblems hintereinander konstruiert. Dabei wird zuerst der äußere Kreisbogen ba generiert. In Abhängigkeit davon wird der innere Kreisbogen bi generiert. 184 KAPITEL 5. LÖSUNGEN ZUR P-VERNETZUNG Ermittlung von ba ba soll wie folgt konstruiert werden (vergl. Abb. 5.83). εt Kta γ αkt δ Kti εs ks Ksa α Ma Ksi Abbildung 5.83: Ermittlung des Kreismittelpunkts Ma Zunächst soll der Kreismittelpunkt Ma von ba bestimmt werden: Damit Ma gleiche Entfernung zu den beiden Knoten Ksa und Kta besitzt, wird die Mittelsenkrechte zur Strecke Ksa Kta erzeugt, worauf Ma liegen soll. Zur Ermittlung von Ma wird von Ksa und Kta aus jeweils ein Strahl erzeugt (vergl. Abb. 5.83), der die Mittelsenkrechte schneidet. Zwischen dem jeweiligen Strahl und der jeweiligen Kante soll in entgegengesetzter Richtung zum Senkrechtvektor ein noch näher zu bestimmender Winkel α liegen, der letztlich garantiert, daß die Winkel an Ksa und Kta zwischen Kreisbogen ba und jeweiliger Kante nur um einen bestimmten Betrag vom Idealwinkel 90◦ abweichen (zur Einhaltung der Winkelanforderung). Der Schnittpunkt eines Strahls mit der Senkrechten, der am nächsten zur Verbindung Ksa Kta liegt, wird zum Mittelpunkt Ma gewählt, damit die Abweichung zum 90◦ -Winkel an beiden Knoten Ksa und Kta nicht zu stark wird. Damit sind Ma und demnach ba direkt abhängig von der Wahl von α. Bei der Bestimmung von α muß deswegen bereits die Minimierung von ba unter Berücksichtigung der Minimierung der Abweichung von 90◦ zwischen ba und den Kanten, also die Längen- und die Winkelanforderung, beachtet werden! Die Bestimmung von α geschieht wie folgt: Es sei ² der größte der beiden Abweichungswinkel ²s und ²t , die zwischen den Senkrechten auf ks in Ksa bzw. auf kt in Kta und Ksa Kta liegen (vergl. 5.5. ZERLEGUNGSPFADE INNERHALB VON REGIONEN 185 Abb. 5.83), d.h. ² = max(²s , ²t ). Dann sei α=²/2. Lemma 5.8. Die Wahl von α führt immer zu einem Ergebnis, d.h. es gibt immer einen Schnittpunkt, von einem der Strahlen mit der Mittelsenkrechten. Beweis. (vergl. Abb. 5.83) Nach Voraussetzung ist die Strecke Ksi Kti immer kleiner oder gleich groß wie die Strecke Ksa Kta . Deswegen liegen entweder beide Kanten ks und kt parallel zur Mittelsenkrechten von Ksa Kta oder von wenigstens einer Kante liegt der zweite Knoten, also Ksi oder Kti , näher zur Mittelsenkrechten als der jeweils andere Knoten der entsprechenden Kante (also Ksa oder Kta ). Liegen beide Kanten parallel zur Mittelsenkrechten, so liegen die Kanten ideal zueinander, die Senkrechtvektoren zeigen direkt aufeinander, so daß, wie anfangs erwähnt, keine Kreisbögen generiert werden. Dieser Fall kann deswegen ausgeschlossen werden. Es sei œ kt die Kante, deren zweiter Knoten (Kti ) am nächsten zur Mittelsenkrechten liegt (vergl. dazu Abb. 5.83). Wegen der Lage von kt gilt ²t ≥ ²s und damit ² = ²t . Es sei γ der Winkel zwischen Ksa Kta und kt . Es gilt ²t + γ = 90◦ . Wegen α = ²t /2 gilt für den Winkel δ zwischen Ksa Kta und dem Strahl: δ = γ + ²t /2 < 90◦ . Der Strahl hat somit einen Schnittpunkt mit der Mittelsenkrechten und die Wahl von α führt zu einem Ergebnis. α α εt κ γ ta K sa α Kti εs Kta α δ κsa K si Ma Abbildung 5.84: Abweichung zwischen Kanten und Kreisbögen 186 KAPITEL 5. LÖSUNGEN ZUR P-VERNETZUNG Je kleiner ² = ²t ist, je besser ist die Lage von kt zu bewerten und je größer ist δ und je weiter ist Ma von Ksa Kta entfernt und je kleiner ist ba . Diese Tendenz ist sinnvoll und kommt der gewünschten Lösung entgegen. Es soll noch kurz gezeigt werden, daß ein so konstruiertes ba die Winkelanforderung erfüllt. (Die Längen- und Abstandsanforderungen können nur im Zusammenhang mit bi erfüllt werden.) Mit Hilfe von Ma kann ba eindeutig konstruiert werden! Der Winkel κta zwischen Kreisbogen ba und der Kante kt , die für die Konstruktion von Ma gewählt wurde, beträgt κta = 90◦ − α = 90◦ − ²/2 mit ²t = ² (vergl. Abb. 5.84). Der Winkel κsa zwischen ks und dem Kreisbogen ba liegt zwischen κsa = 90◦ − α und κsa = 90◦ + 3 ∗ α, weil ²s ≤ ²t = 2 ∗ α gilt. Durch das sukzessive Einfügen von Zwischenkanten bei schlechter Lage der Kanten (vergl. Abschnitt 5.5.2) kann davon ausgegangen werden, daß ²t = ² ≤ 50◦ gilt. Es gilt also: 65◦ ≤ κta ≤ 90◦ und 65◦ ≤ κsa ≤ 165◦ . Die Winkelanforderung gilt damit als erfüllt. Ermittlung von bi : Unter der Berücksichtigung der Lage und der Länge von ba wird jetzt bi ermittelt. Nach dem Doppelbogenproblem soll der Bogen bi so konstruiert werden, daß er einerseits möglichst so lang wie ba ist (Längenanforderung) und daß andererseits die minimale Entfernung zum Bogen ba nicht kleiner als 2/3∗DKL ist (Abstandsanforderung). Außerdem muß die Winkelanforderung eingehalten werden, damit ein Winkel zwischen Kreisbogen und einer Kante nicht zu klein wird. Zur Vereinfachung der Ermittlung von ba und aufgrund der Abstandsanforderung wird außerdem gefordert: Forderung 5.2. Der Kreisbogen bi darf nicht größer als ein Halbkreis sein. Die Einhaltung der Längenanforderung bedeutet eine Optimierung bezüglich der Länge, die Einhaltung der Abstands- und Winkelanforderungen lediglich eine Verhinderung einer schlechten Generierung. Deswegen soll zur Ermittlung von bi bei bereits bestehendem ba die in folgendem Algorithmus 5.8 dargestellte Strategie angewendet werden. Dabei soll der zur Berechnung des Bogens bi erforderliche Kreismittelpunkt Mi auf der Mittelsenkrechten zur Verbindung Ksi Kti liegen. Bevor die einzelnen Schritte und Vorgehensweisen für Algorithmus 5.8 genauer erklärt werden, soll zunächst gezeigt werden, daß eine solche Vorgehensweise sinnvoll ist. 5.5. ZERLEGUNGSPFADE INNERHALB VON REGIONEN 187 Algorithmus 5.8 (Innenkreisbogen). 1. PROCEDURE 2. BEGIN 3. ermittle bi mit |bi | = |ba |; 4. falls |bi | > |Halbkreis| 5. 6. 7. 8. 9. ermittle bi als Halbkreis; falls bi erfüllt nicht Winkelanforderung ermittle bi , das Winkelanforderung erfüllt; falls bi erfüllt nicht Abstandsanforderung ermittle bi , das Abstandsanforderung erfüllt; 10. END Dazu wird folgendes Lemma gezeigt: Lemma 5.9. Es gilt (vergl. Abb. 5.85): (a) bi verkleinert sich ⇔ (b) κsi bzw. κti vergrößern sich ⇔ (c) der Abstand zwischen bi und ba vergrößert sich (außer zwischen Ksi und Ksa bzw. zwischen Kti und Kta ) Beweis. Es wird gezeigt: (a) ⇒ (c) ⇒ (b) ⇒ (a) (a) ⇒ (c) Verkleinert sich bi , vergrößert sich der Abstand jedes Punktes auf bi zu jedem Punkt auf ba (ausgenommen von Ksi zu Ksa und von Kti zu Kta ). Damit wird auch der Abstand zwischen bi und ba größer. (c) ⇒ (b) Vergrößert sich der Abstand zwischen bi und ba , so vergrößert sich auch der Abstand zwischen ks und bi und kt und bi . Damit vergrößern sich auch κsi und κti . (b) ⇒ (a) Vergrößern sich κsi und κti , werden die Winkel in Ksi und Kti zwischen Ksi Kti und bi kleiner. Da bi ein Kreisbogen ist, muß er sich verkleinern. Werden mit der Ermittlung eines bi mit |bi | = |ba | (Zeile 3) auch die anderen drei Anforderungen erfüllt, so ist die Generierung von bi sinnvoll, da 188 KAPITEL 5. LÖSUNGEN ZUR P-VERNETZUNG ba Ksa Kta kt ks Ksi Kti Abbildung 5.85: Skizze zum Beweis die Längenanforderung sogar optimal erfüllt wird. Muß bi auf einen Halbkreis verkleinert werden (Zeile 5), so kommt dies der Winkelanforderung und der Abstandsanforderung entgegen, was Lemma 5.9 verdeutlicht. Muß zur Erfüllung der Winkelanforderung (Zeile 7) oder der Abstandanforderung (Zeile 9) ein neues bi ermittelt werden, so ist dieses (wegen Lemma 5.9) ebenfalls kleiner als das alte und kommt somit der jeweils anderen Forderung entgegen. (Wenn κsi und/oder κti die Winkelanforderungen nicht erfüllen, kann davon ausgegangen werden, daß κsi oder κti < 15◦ ist. Es kann ausgeschlossen werden, daß κsi oder κti > 165◦ ist, da dann ks oder kt so liegen würden, daß zwischen ihnen eine weitere Kante generiert worden wäre.) Wegen Lemma 5.9 ist mit Algorithmus 5.8 eine sinnvolle Strategie zur Ermittlung von bi gefunden. Es sollen nun die in Algorithmus 5.8 angesprochenen einzelnen Verfahren zur Ermittlung von bi sowie die Überprüfung der in diesem Algorithmus angesprochenen Bedingungen diskutiert werden. Ermittlung von bi mit |bi | = |ba | (vergleiche Abb. 5.86, Zeile 3) Zur Ermittlung von bi genügt es, Mi bzw. Bi Mi zu ermitteln. Ist r bekannt, so kann Bi Mi direkt berechnet werden, da Bi Kti ebenfalls bekannt ist. Es gilt: 2 ∗ φ ∗ r = |ba | = |bi |; weil 2φ der Bogenwinkel zu bi ist. Außerdem gilt: (5.12) 5.5. ZERLEGUNGSPFADE INNERHALB VON REGIONEN 189 bi Bi Ksi Kti φ r Mi Abbildung 5.86: Ermittlung von bi mit |bi | = |ba | sin(φ) = . Ksi Kti 2 r ; (5.13) Da |Ksi Kti | und |bi | bekannt sind, können aus den beiden Gleichungen φ und r und daraus wiederum Mi eindeutig ermittelt werden. Überprüfung Halbkreis (Zeile 4) Die Überprüfung, ob bi größer als ein Halbkreis ist, kann leicht mittels Radius und Bogenmaß ermittelt werden bzw. an φ abgelesen werden. Ermittlung eines Halbkreis (Zeile 5) Ist klar, da Ksi Kti bekannt ist. Überprüfung der Winkelanforderung (Zeile 6) Die Überprüfung der Winkelanforderung stellt kein Problem dar, da die Kanten und bi bekannt sind. Ermittlung von bi , das Winkelanforderung erfüllt (vergl. Abb. 5.87), Zeile 7) Wie oben bereits erwähnt, kann davon ausgegangen werden, daß für das bisher ermittelte bi κsi oder κti < 15◦ gilt. Deswegen werden jetzt von ks und kt jeweils Winkel von 15◦ +90◦ =105◦ an Ksi bzw. Kti abgetragen, deren zugehörige Strahlen dann einen Schnittpunkt mit der Mittelsenkrechten zu Ksi Kti bilden. Wird der von Ksa Kta 190 KAPITEL 5. LÖSUNGEN ZUR P-VERNETZUNG Ksa ks 15° Kta k 15° t Ksi Mi Kti Abbildung 5.87: Ermittlung von bi , das Winkelanforderung erfüllt weiter entfernte Schnittpunkt als Mi gewählt, so ist die Winkelanforderung (für beide Winkel) erfüllt. Überprüfung der Abstandsanforderung(Zeile 8) bi kann nur dann die Abstandanforderung nicht erfüllen, wenn der kleinste Abstand zwischen Ki und Ka zwischen den beiden Kreisbögen liegt. Andernfalls gibt es keine Strecke, die sowohl senkrecht auf bi als auch auf ba steht und der Abstand zwischen den Kreisbögen nimmt dann in eine Richtung zu. Da die Kanten ks und kt jeweils ≥ 2/3*DKL sind, wird eine solche Situation dann als akzeptabel gewertet. Ob der kleinste Abstand zwischen den beiden Bögen liegt, kann sehr leicht daran festgestellt werden, ob die Schnittpunkte der Geraden, die durch Mi Ma verläuft, mit Ki und Ka jeweils innerhalb der Bögen liegen oder nicht. Liegt einer der Schnittpunkte außerhalb des jeweiligen Bogens, so liegt der kleinste Abstand nicht innerhalb der Kreisbögen. Falls er innerhalb liegt, muß er mittels Gleichung 5.11 ermittelt werden und überprüft werden, ob er größer 2/3*DKL ist. Ermittlung von bi , das Abstandsanforderung erfüllt(Zeile 9) Es soll nun ein Kreisbogen bi ermittelt werden, dessen kürzester Abstand zu ba mindestens 2/3*DKL beträgt. Dabei wird zunächst davon ausgegangen, daß der kürzeste Abstand zwischen den beiden Kreisen Ki und Ka zwischen bi und ba liegt. Gleichung 5.11 soll zur Ermittlung des Mittelpunkts Mi genutzt werden. Dafür wird A=2/3*DKL vorgegeben. In Gleichung 5.11 sind |Mi Ma | und r unbekannt. 5.5. ZERLEGUNGSPFADE INNERHALB VON REGIONEN 191 Es wird deswegen eine weitere Gleichung mit den unbekannten r und |Mi Ma | ermittelt (vergl. Abb. 5.88). Bi K si l2 K ti m2 r Mi m m1 Ma l1 U Abbildung 5.88: Berechnung von |Mi Ma | Bi sei der Mittelpunkt der Verbindung Ksi Kti und U sei der Knoten auf der Mittelsenkrechten zu Ksi Kti , auf den Ma bei senkrechter Projektion auf diese Mittelsenkrechte projiziert würde. Die Knoten Ksi , Kti , U, Bi und Ma liegen fest. l1 sei der Abstand zwischen U und Ma , l2 sei der Abstand zwischen Kti und Bi . Damit sind l1 und l2 ebenfalls bekannt. Es sei m1 der Abstand zwischen (dem gesuchten Knoten) Mi und U und m2 der Abstand zwischen Mi und Bi . Nach Konstruktion von ba und Forderung 5.2 liegen Mi und Ma auf der gleichen Seite der Geraden durch Ksi Kti . Es gelten die folgenden Beziehungen: 2 |Mi Ma | = l12 + m21 ; (5.14) r2 = l22 + m22 ; (5.15) m = m1 + m2 ; (5.16) und Außerdem gilt 192 KAPITEL 5. LÖSUNGEN ZUR P-VERNETZUNG Damit kann |Mi Ma | durch r und die bekannten Größen l1 , l2 und m ausgedrückt werden. r l12 − l22 + m2 + r2 − 2m |Mi Ma | = q r2 − l22 ; (5.17) Durch Einsetzen von Gleichung 5.17 in Gleichung 5.11 ergibt sich r A=R− l12 − l22 + m2 + r2 q − 2m r2 − l22 − r; (5.18) Die einzige unbekannte Größe r kann numerisch ermittelt werden. Gleichung 5.18 führt auf eine Gleichung vierten Grades mit der Unbekannten r. Gibt es mehrere Lösungen unter Einhaltung von Forderung 5.2, die so liegen, daß A innerhalb der Kreisbögen liegt, so wird die Lösung mit dem kleinsten r gewählt. Wegen Einhaltung von Forderung 5.2 gilt: Je kleiner r ist, desto größer ist der Kreisbogen bi (vergl. Abb. 5.89). Damit verstärkt die Wahl des kleinsten r die Maximierung des Kreisbogens bi ohne den Abstand zwischen den beiden Kreisbögen zu klein zu halten. Kti r´ r´´ r´´´ Ksi Abbildung 5.89: Verhalten von Kreisen mit gleicher Sehne Das oben beschriebene Verfahren führt nur unter folgender Voraussetzung zu einem Ergebnis: Es muß mindestens einen Kreis Ki mit Mittelpunkt Mi geben, der im Kreis Ka mit Mittelpunkt Ma liegt und für die beiden Kreise gilt: Unter Einhaltung von Forderung 5.2 müssen die beiden Kreise einen kleinsten Abstand A=2/3∗DKL zueinander besitzen, der im Bereich der beiden zu konstruierenden Kreisbögen liegen muß. Kann kein Kreis Ki ermittelt werden, dessen kleinster Abstand 2/3∗DKL innerhalb der zu ermittelnden Kreisbögen liegt, so wird bi auf ganz andere 5.5. ZERLEGUNGSPFADE INNERHALB VON REGIONEN 193 Weise ermittelt: Dieser Fall kann eintreten, obwohl der kleinste Abstand des von Ki zu Ka bezüglich des bis dahin nach Algorithmus 5.8 ermittelten Kreisbogens bi innerhalb von bi und ba liegt. (Denn nur in diesem Fall wird bi überhaupt ggfs. neu ermittelt.) Ein solcher Fall kann z.B. auftreten, wenn ks und kt bereits die Länge 2/3∗DKL besitzen. Die zwischen ks und kt liegenden Kanten der Vierecke des Zerlegungspfades würden bezüglich ihrer Lage und Länge idealerweise so liegen, daß sie einen kontinuierlichen Übergang von einer Kante zur anderen Kante schaffen. Das bedeutet, daß die Kanten in ihrer Länge von der größeren zur kleineren kleiner werden und daß der Winkel zwischen näher beieinanderliegenden Kanten kleiner ist als der zwischen weiter auseinanderliegenden Kanten. bi wird mit Hilfe dieser Überlegung konstruiert, indem als Annäherung an diese Ideallage ein Knoten Kmi zwischen Ksi und Kti auf bi so ermittelt wird, daß die Kante Kma Kmi , wobei Kma der Mittelknoten zwischen Ksa und Kta auf ba ist, in diesem Sinne optimal zwischen ks und kt liegt. Die Konstruktion von bi erfolgt also auf folgende Weise: Auf ba wird der Knoten Kma als Mittelknoten zwischen Ksa und Kta ermittelt (vergl. −−−−→ −−−−→ Abb. 5.90). ks und kt werden als Vektoren (Ksa Ksi und Kta Kti ) addiert und der entstandene Vektor auf die Länge 2/3∗DKL reduziert. Er wird zu Kma −−−−−→ − −−−− → sa Ksi +Kta Kti addiert (vergl. wiederum Abb. 5.90). Also gilt: Kmi = Kma + K −−−−−→ − −−−− → ∗ |Ksa Ksi +Kta Kti | 2/3DKL. Auf diese Weise wird Kmi als dritter Knoten auf bi gefunden. Ksi , Kmi und Kti bestimmen bi vollständig. Kma ba Ksa Kta K mi ks bi kt g Ksi Kti Abbildung 5.90: Konstruktion von bi Es ist möglich, daß der Abstand zwischen Kma und der Geraden g durch Ksi Kti bereits ≤ 2/3∗DKL ist. In diesem Fall wird Ksi Kti als bi gewählt. Damit sind die einzelnen Schritte zu Algorithmus 5.8 dargestellt. Die Konstruktionsbeschreibung der Kreisbögen ist abgeschlossen. Es wird nun noch kurz die Ermittlung eines Zerlegungspfades mittels bi und ba beschrieben. 194 KAPITEL 5. LÖSUNGEN ZUR P-VERNETZUNG Generierung eines Zerlegungspfades mit Hilfe von bi und ba Zur Generierung eines Zerlegungspfades werden auf beiden Kreisbögen gleichviele Knoten in äquidistanten Abständen eingesetzt. Anschließend sollen die Knoten so einander zugeordnet werden, daß Vierecke entstehen. Die Ermittlung der Anzahl der einzusetzenden Knoten geschieht in Abhängigkeit der Längen Li und La der Kanten, die durch direkte Verbindung von äquidistanten Knoten auf den Kreisbögen entstehen (vergl. Abb. 5.91). Es sei x der Bogenwinkel des Kreisbogens ba : R L2 x Abbildung 5.91: Konstruktion eines Polygonzugs auf einem Kreisbogen Dann gilt für die Kantenlänge La auf ba : La = 2 ∗ R ∗ sin( x ); 2n (5.19) wobei n-1 die Anzahl der einzusetzenden Knoten ist und x/2n < 90◦ angenommen werden kann. Analog gilt für die Kantenlänge Li auf bi mit Bogenwinkel y bei einer Unterteilung in n Teile: Li = 2 ∗ r ∗ sin( y ); 2n (5.20) Für die Generierung der Vierecke wird gewünscht, daß Li und La möglichst wenig von DKL abweichen. Damit ausschließlich Vierecke entstehen, müssen in die Kreisbögen jeweils gleich viele Knoten eingesetzt werden. Damit kann nur die Forderung realisiert werden, daß Li und La im Durchschnitt der DKL entsprechen sollen. Für die Durchschnittslänge DuL von Li und La gilt: DuL = R ∗ sin( y x ) + r ∗ sin( ); 2n 2n (5.21) 5.5. ZERLEGUNGSPFADE INNERHALB VON REGIONEN 195 Wird DuL=DKL gewählt, ist Gleichung 5.21 für n ∈ IR eindeutig lösbar. Aufgrund der Voraussetzungen zur Konstruktion der Kreisbögen bi und ba gilt: x,y≤180◦ und die Kreisbögen werden in mindestens zwei Teile unterteilt, also insbesondere kann n durch Gleichung 5.21 ermittelt werden. Das Ergebnis für n wird zu N ∈ IN gerundet. N ist die Anzahl der Vierecke, die durch Erzeugen von N-1 Knoten in äquidistanten Abständen auf den Kreisbögen entstehen, wobei die Länge der entstandenen Kanten möglichst nahe bei DKL liegt. Ein Beispiel zeigt Abb. 5.92. K sa K ta K si K ti Abbildung 5.92: Konstruktion eines Zerlegungspfades mit Hilfe der beiden Kreisbögen Das Verfahren wird so für alle Abschnitte zwischen den (Zwischen-)Kanten durchgeführt. Auf diese Weise entsteht der komplette Zerlegungspfad eines Kantenpaares. Treten trotz vorheriger Abschätzung Überschneidungen von Zerlegungspfaden mit bereits vernetzten Bereichen auf, können sie analog zur Operation des Nähens beim Paving korrigiert werden. Dabei dürfen jedoch keine Elemente hinzugenommen, weggenommen oder bezüglich ihrer Topologie verändert werden. Ist das Nähen auf diese Weise nicht möglich, wird die Region als nicht vernetzbar“ eingestuft. ” Da im Beispiel der Wurm die Zacken zur Einsparung von Konfliktdreiecken nicht wie Zacken vernetzt wurden und keine ±270◦ - und ±340◦ -Ecken auftreten, sind keine I-Dreiecke entstanden (vergl. Abb. 5.59). Somit brauchen hier keine Zerlegungspfade innerhalb von Regionen generiert zu werden. In diesem Kapitel wurde gezeigt, wo und wie Zerlegungspfade innerhalb der Regionen generiert werden. Für die P-Vernetzung bleibt noch die Vernetzung der Gebiete innerhalb der Regionen (vergl. Schema 4.31 (v)), die 196 KAPITEL 5. LÖSUNGEN ZUR P-VERNETZUNG außerhalb der Zerlegungspfade liegen sowie ein Smoothing (vergl. Schema 4.31 (vi)). Dies wird in folgenden Unterkapitel kurz besprochen. 5.6 Fertigstellung des P-Netzes Alle Zerlegungsdreiecke und -pfade werden Zerlegungsgraphen zugeordnet. Die Vernetzung der übrig gebliebenen Bereiche ist unproblematisch. Es kann hier eine bereits existierende Netzgenerierung, bei der möglichst viele gute Vierecke generiert werden, eingesetzt werden: Eine solche Netzgenerierung stellt z.B. das Paving dar [Blac91a] [Blac91b] [Lee99] [Zhon00]. Eine Erweiterung des Pavings, bei dem ggfs. Dreiecke eingesetzt werden und so auch Gebiete mit ungerader Anzahl Kanten vernetzt werden können, wird in [Stol97] vorgestellt. Da im vorliegenden Fall ebenfalls Gebiete ungerader Kantenanzahl bestehen können, soll dieses Verfahren hier eingesetzt werden. Weil in den zu vernetzenden Gebieten nicht mehr auf Zerlegungen geachtet werden muß, dürfen auch Vierecke (oder Dreiecke) generiert werden, von denen zwei oder mehr Kanten auf der Kontur des aktuellen Bereichs liegen. Zur Optimierung der Qualität der Elemente kann nach der Generierung ein Smoothing-Verfahren auf das P-Netz angewendet werden. Dabei werden die Knoten so verschoben, daß die an ihnen anliegenden Elemente möglichst gut sind. Für ein Vierecknetz, das durch Paving entstanden ist, finden sich hierzu Verfahren in [Blac91a]. Im vorliegenden Netz müssen Dreiecke ins Smoothing integriert werden. In [Stol97] wird dazu ein Verfahren vorgestellt, bei dem Dreiecke auf rechtwinklige Dreiecke optimiert werden. Das Verfahren kann vermutlich leicht auf gleichseitige Dreiecke übertragen werden. Smoothing-Verfahren für 2D-Netze mit Vier- und Dreiecken finden sich z.B. auch in [Cana98], [Bale99] und [Zhou00]. Es ist zu beachten, daß die Knoten auf den Polygonabschnitten nicht bewegt werden dürfen, da sie i.a. übergänge zwischen unterschiedlichen Tiefenwerten bilden und somit bestimmte Höhenübergänge widerspiegeln. Deswegen wird das Smoothing für alle Regionen einzeln und nur die Phase zur Glättung der inneren Knoten durchgeführt. Durch das (erweiterte) Paving werden i.a. gute Ergebnisse erzielt [Blac91a] [Blac91b] [Lee99] [Zhon00] [Stol97]. Bei wenigen Zerlegungspfaden und dreiecken können die noch zu vernetzenden Gebiete relativ groß sein. Insgesamt wird damit eine gute Netzgenerierung garantiert. In Abb. 5.93 (entspricht Abb. 3.6 Seite 17) ist die komplette Vernetzung der Regionen für das Beispiel der Wurm dargestellt. Die Vernetzung au- 5.6. FERTIGSTELLUNG DES P-NETZES 197 ßerhalb der Zerlegungspfade wurde teilweise mit (erweiterten) Modulen aus [Stol97] erzeugt. Die Abb. zeigt eine bereits geglättete Vernetzung. Abbildung 5.93: Komplette Vernetzung der Regionen für das Wurmbeispiel Damit ist die P-Vernetzung abgeschlossen. Es bleibt die notwendigen Zerlegungen auf den einzelnen Ebenen im 3D-Netz zu spezifizieren. Dies wird im folgenden Kapitel diskutiert. 198 KAPITEL 5. LÖSUNGEN ZUR P-VERNETZUNG Kapitel 6 Zerlegungsgraphen Zusammenfassung Nach der P-Vernetzung liegt ein P-Netz vor, das aus P-Dreiecken und (hauptsächlich) aus P-Vierecken besteht. Das P-Netz setzt sich aus den p-vernetzten Regionen zusammen. Die P-Elemente einer Region besitzen (fast) alle den gleichen Tiefenwert. Aus diesen P-Elementen werden mit Hilfe der Algorithmen 4.1 und 4.2 Seite 50 und 57 dreidimensionale (nicht zerlegte) Elementstapel generiert. Der Tiefenwert eines P-Elements gibt dabei die Anzahl der 3D-Elemente im Elementstapel an. Alle Elementstapel bilden nach Folgerung 4.4 Seite 62 zusammen ein konformes Erstnetz (s. Definition 35, Seite 33) (vergl. Schema 3.20 IV a), Seite 36). Das P-Netz besitzt (P-)Zerlegungspfade mit Zerlegungslayern. Durch die Zerlegungspfade und deren Zerlegungslayer sind die 3D-Zerlegungspfade im 3D-Netz eindeutig bestimmt. Die 3D-Zerlegungspfade geben alle zu zerlegenden 3D-Elemente des Erstnetzes an. Diese Elemente müssen so in zulässige Elemente, also Prismen und Tetraeder, zerlegt werden, daß das resultierende Netz konform ist. Dies ist i.a. auf verschiedene (aber nicht auf alle) Arten möglich, wobei die Qualität des Gesamtnetzes dabei unterschiedlich sein kann. Dieses Kapitel beschäftigt sich mit Zerlegungspfaden und 3D-Zerlegungspfaden und ihrer optimalen Zerlegung (vergl. Schema 3.20 IV b), Seite 36). Zunächst wird in Unterkapitel 6.1 ein Verfahren zur Detektion aller Zerlegungspfade und damit zur Ermittlung von Zerlegungsgraphen (Def. 55 Seite 65) vorgestellt. In Unterkapitel 6.2 wird ersichtlich, daß das Problem der Ermittlung einer insgesamt optimalen Zerlegung aller 3D-Zerlegungspfade mittels des Zerlegungsgraphen (Definition 55, Seite 65) gelöst werden kann. Dieses Problem ist nicht trivial. Die Übertragung des Problems auf Zer199 200 KAPITEL 6. ZERLEGUNGSGRAPHEN legungsgraphen führt zu einem graphentheoretischen Optimierungsproblem. Zur Lösung dieses Problems wird in Unterkapitel 6.3 ein im Rahmen dieser Dissertation entwickelter effizienter Algorithmus vorgestellt. Mit der Lösung des Optimierungsproblems können die 3D-Zerlegungspfade eines 3D-Netzes zerlegt werden. Das 3D-Netz ist damit komplett generiert. 6.1 Detektion aller Zerlegungsgraphen Für die Optimierung der Zerlegung der zu zerlegenden Elemente innerhalb eines 3D-Netzes mittels Zerlegungsgraphen müssen diese zunächst ermittelt werden. Dies wird in diesem Unterkapitel vorgestellt. Dazu werden zunächst einige Eigenschaften von Zerlegungsgraphen diskutiert. Bei der Einführung von Zerlegungsgraphen in Abschnitt 4.1.6 wurde bereits erklärt, warum die Z-Knoten eines Zerlegungsgraphen vom Grad eins oder drei sind. Eine Z-Kante ist nach Definition 54 das Abbild einer Zuordnung eines bestimmten Zerlegungspfades und eines bestimmten Zerlegungslayers. Ein ZKnoten ist nach Definition 53 das Abbild einer Zuordnung eines bestimmten Zerlegungsdreiecks und eines bestimmten Zerlegungslayers. Da ein Elementstapel eines P-Dreiecks nicht zerlegt werden kann und garantiert ist, daß ein Elementstapel eines Ein- oder Auslaufvierecks nicht zerlegt wird, entstehen keine Zerlegungspfade in senkrechter Richtung. Damit ist die Definition einer Z-Kante sinnvoll und Z-Knoten sind nur inzident zu Z-Kanten, die durch die Zuordnung eines gleichen Zerlegungslayers entstanden sind. Ebenfalls können deswegen nur zwei Z-Kanten zueinander inzident sein, die durch die Zuordnung eines gleichen Zerlegungslayers enstanden sind. Damit gilt für die (Zusammenhangs-)komponenten (Definition siehe Graphentheorie) eines Zerlegungsgraphen zu einem P-Netz: Folgerung 6.1. Jede Zusammenhangskomponente eines Zerlegungsgraphen besteht ausschließlich aus Z-Kanten und Z-Knoten, die durch die Zuordnung eines gleichen Zerlegungslayers enstanden sind. Damit kann jeder Zusammenhangskomponente eindeutig ein Zerlegungslayer zugeordnet werden. Nach Bemerkung 3.3 Seite 32 kann es z.B. Zerlegungsdreiecke geben, die durch einen Zerlegungspfad der Länge 0 miteinander verbunden sind. Dies kann z.B. bei der Vernetzung von Zacken oder Ecken entstehen. Es liegen 6.1. DETEKTION ALLER ZERLEGUNGSGRAPHEN 201 dann zwei P-Dreiecke direkt nebeneinander. Für die Detektion eines Zerlegungsgraphen ist es sinnvoll, nacheinander alle Zusammenhangskomponenten zu ermitteln. Die Detektion einer Zusammenhangskomponente soll jeweils von einem Konfliktdreieck an beginnen. Da Konfliktdreiecke die einzigen Auslöser für Zerlegungspfade sind, müssen auf diese Weise alle Zusammenhangskomponenten eines Zerlegungsgraphen gefunden werden. Am einfachsten erscheint eine rekursive Ermittlung (s. auch Beispiel unten): Von einem Konfliktdreieck mit einem bestimmten Konfliktlayer (vergl. Def. 27 Seite 30) wird genau ein Zerlegungspfad mit diesem Zerlegungslayer ausgelöst. Dies liegt daran, daß im 3D-Netz an entsprechender Stelle ein 2-3-Element generiert wird. Zur Ermittlung einer Zusammenhangskomponente eines Zerlegungsgraphen wird nun von einem Konfliktdreieck mit Konfliktlayer t ausgehend der dadurch ausgelöste Zerlegungspfad verfolgt, bis er auf ein Zerlegungsdreieck oder ein Ein- oder Auslaufviereck trifft. Falls im ersten Fall (Zerlegungspfad trifft auf ein Zerlegungsdreieck) t für das Zerlegungsdreieck kein Konfliktlayer ist, wird der von ihm ausgehende noch nicht durchlaufene Zerlegungspfad mit gleichem Zerlegungslayer, der (aus der Sicht des ankommenden Zerlegungspfades) nach rechts verzweigt, verfolgt und das Verfahren rekursiv angewendet. Anschließend wird der noch nicht verfolgte Zerlegungspfad mit gleichem Zerlegungslayer, der nach links verzweigt, verfolgt und das Verfahren rekursiv angewendet. (Falls ein solcher Zerlegungspfad schon verfolgt wurde, wird er nicht ein zweites Mal verfolgt.) Falls im ersten Fall t Konfliktlayer ist oder der Zerlegungspfad auf ein Ein- oder Auslaufviereck trifft, ist die Suche an dieser Stelle beendet. Auf diese Weise kann eine Zusammenhangskomponente ermittelt werden. Nach dem Auffinden einer Komponente wird die nächste detektiert, wobei von einem noch nicht betrachteten Paar (Konfliktdreieck, Konfliktlayer) ausgegangen wird. Im folgenden wird die Detektion an einem Beispiel durchgeführt (vergl. Abb. 6.1 und 6.2). Abb. 6.1 zeigt einen Teil der Vernetzung für das Wurmbeispiel. Die PDreiecke D1 , D2 , D3 , D5 und D6 stellen Konfliktdreiecke mit Konfliktlayer 1 dar, die Zerlegungspfade mit Zerlegungslayer 1 auslösen. Die Konfliktdreiecke D4 , D6 bis D8 und D10 lösen Zerlegungspfade mit Zerlegungslayer 2 aus. Dies geht jeweils aus den Tiefenwerten der P-Knoten der P-Dreiecke gemäß Tabelle 4.2 (Seite 60) und Lemma 4.9 (Seite 61) hervor. Die P-Dreiecke D9 und D11 sind Zerlegungsdreieckkandidaten (, für die zum jetzigen Zeitpunkt noch nicht klar ist, ob auf sie ein Zerlegungspfad auftrifft, so daß sie zu Zer- 202 KAPITEL 6. ZERLEGUNGSGRAPHEN 3 2 D8 2 2 2 3DD10 11 2 V1 D7 D6 2 2 1 1 1 1 1 0 3 2 2 2 D D53 D4 1 1 0 1 0 D9D1 D2 0 0 2 Abbildung 6.1: Detektion Zerlegungsgraph für einen Teil der Vernetzung für das Wurmbeispiel legungsdreiecken werden). Sie lösen selber keine Zerlegungspfade aus. Von den benannten Konfliktdreiecken ausgehend sollen jetzt die in diesem Bereich liegenden Komponenten des Zerlegungsgraphen ermittelt werden. Zur Detektion der Komponenten müssen alle Konfliktlayer aller Konfliktdreiecke betrachtet werden. Komponenten, die aus Zerlegungspfaden mit höheren Zerlegungslayern entstehen, sind i.a. kleiner als Komponenten, die aus Zerlegungspfaden mit kleineren Zerlegungslayern entstehen, weil Zerlegungspfade mit kleineren Zerlegungslayern eher in eine benachbarte Region gelangen und dadurch eine weitere Ausbreitung möglich ist. Es werden zuerst die Komponenten detektiert, die aus Zerlegungspfaden mit höheren Zerlegungslayern entstehen. Deswegen werden zuerst die Konfliktdreiecke betrachtet, die Zerlegungspfade mit Zerlegungslayer 2 auslösen. Vom Konfliktdreieck D7 beginnt ein Zerlegungspfad mit Zerlegungslayer 2 der an D6 endet. Da D7 und D6 Konfliktdreiecke mit Konfliktlayer 2 sind, kann sowohl von D7 als auch von D6 kein Zerlegungspfad mit gleichem Zerlegungslayer in eine andere (zweite) Richtung verlaufen, weswegen die erste Komponente K21 bereits gefunden ist (vergl. jetzt und im folgenden Abb. 6.2). Sie besteht aus den Z-Knoten, die D7 und D6 und dem Zerle- 6.1. DETEKTION ALLER ZERLEGUNGSGRAPHEN (D7,2) (D7,1) (D9,1) (D8,2) (D11,2) K 22 K21 (D11,1) (D10,2) K 23 (D4,2) 203 (V1,1) (D8,1) (D 1,1) (D10,1) (D2,1) (D5,1) (D3,1) K11 (D4,1) (D6,2) (D6,1) K 12 (i) (ii) Abbildung 6.2: Zerlegungsgraph für Abb. 6.1 gungslayer 2 zugeordnet werden, und der Z-Kante, die dem Zerlegungspfad zwischen diesen beiden Konfliktdreiecken und dem Zerlegungslayer 2 zugeordnet wird. Von D8 verläuft ein Zerlegungspfad mit Zerlegungslayer 2 zu D4 . Da D8 und D4 wiederum Konfliktdreiecke mit Konfliktlayer 2 sind, kann die nächste Komponente K22 auf vollkommen analoge Weise zu K21 ermittelt werden. Von D10 verläuft ein Zerlegungspfad der Länge null mit Zerlegungslayer 2 zum Zerlegungsdreieckkandidaten D11 . Dadurch wird D11 Zerlegungsdreieck und es wird ein weiterer Zerlegungspfad mit Zerlegungslayer 2 ausgelöst, der von D11 zurück zu D11 verläuft. Da D10 Konfliktdreieck mit Konfliktlayer 2 ist, ist Komponente K23 gefunden: Sie besteht aus den beiden Z-Knoten, die D10 und D11 und dem Zerlegungslayer 2 zugeordnet sind, einer Z-Kante, die dem Zerlegungspfad der Länge null zwischen den beiden Dreiecken D10 und D11 und dem Zerlegungslayer 2 zugeordnet ist und einer Z-Kante, die eine Schlinge ist und dem Zerlegungspfad und dem Zerlegungslayer 2 zugeordnet ist, der von D11 zurück zu D11 läuft. Jetzt sind alle Komponenten mit Zerlegungslayer 2 ermittelt, da alle Konfliktdreiecke mit Konfliktlayer 2 betrachtet wurden. Es werden nun die Komponenten mit Zerlegungslayer 1 ermittelt. Von D2 verläuft ein Zerlegungspfad mit Zerlegungslayer 1 zu D3 . D2 und D3 sind Konfliktdreiecke mit Konfliktlayer 1, so daß die erste Komponente mit Zerlegungslayer 1 K11 gefunden ist: Sie besteht aus den Z-Knoten, die D2 und D3 und dem Zerlegungslayer 1 zugeordnet sind und der Z-Kante, die dem Zerlegungspfad zwischen D2 und D3 und dem Zerlegungslayer 1 zugeordnet ist. Bei der Ermittlung der nächsten Komponente wird das oben beschriebene 204 KAPITEL 6. ZERLEGUNGSGRAPHEN rekursive Verfahren deutlich. Von D5 aus verläuft ein Zerlegungspfad mit Zerlegungslayer 1 und Länge null zu D4 . Dieses Dreieck verhält sich für den Zerlegungslayer 1 wie ein Zerlegungsdreieck, so daß Zerlegungspfade zu D8 und zu D10 weitergeleitet werden. Es wird jetzt zuerst der Zerlegungspfad, der von D4 nach rechts verzweigt (bezüglich des Zerlegungspfades, der von D5 kommt), verfolgt. Mit einem Zerlegungspfad der Länge null wird D10 erreicht. D10 verhält sich für den Zerlegungslayer 1 wiederum wie ein Zerlegungsdreieck. Es wird wieder von D10 der nach rechts verlaufende Zerlegungspfad der Länge null, der zu D8 führt, verfolgt. Die Detektion für die aktuell zu ermittelnde Komponente erfolgt analog weiter über D7 und D9 zu D1 . D1 ist Konfliktdreieck mit Konfliktlayer t. Deswegen findet hier keine weitere Verzweigung statt. Es wird nun das letzte Dreieck betrachtet, von dem nach rechts verzweigt wurde: D9 . Von hier aus wird jetzt der Zerlegungspfad mit Zerlegungslayer 1, der nach links verzweigt, verfolgt. Er endet bei V1 , von wo aus keine weiteren Zerlegungspfade ausgehen. Von D9 aus sind nun alle Zerlegungspfade mit Zerlegungslayer 1 ermittelt. Da die Ermittlung der Komponente rekursiv erfolgt, wird jetzt das zuletzt betrachtete Dreieck gewählt, bei dem noch nicht der nach links verlaufende Zerlegungspfad verfolgt wurde. Dies ist D7 . Der zu verfolgende Zerlegungspfad trifft auf D6 . Da D6 Konfliktdreieck mit Konfliktlayer 1 ist, verläuft von dort kein weiterer Zerlegungspfad mit Zerlegungslayer 1. Deswegen wird jetzt nach dem rekursivem Verfahren der von D8 nach D4 verlaufende Zerlegungspfad detektiert. Da von D4 die anderen beiden Zerlegungspfade mit Zerlegungslayer 1 bereits durchlaufen wurden, erfolgt die weitere Detektion von D10 von der Seite, von der ein Zerlegungspfad mit Zerlegungslayer 1 noch nicht detektiert wurde. Ein solcher mit Länge null führt zu D11 . Von dort wird der nach rechts verlaufende Zerlegungspfad mit Zerlegungslayer 1 ermittelt, der wiederum an D11 endet. Ein weiterer Zerlegungspfad kann von den für die aktuell zu ermittelnde Komponente betrachteten Dreiecken nicht ermittelt werden, da bereits alle Zerlegungspfade, die von diesen Dreiecken ausgehen, verfolgt wurden. Damit ist die Komponente K12 gefunden. Sie besteht aus den Z-Knoten, die den Dreiecken D1 , D4 bis D11 und dem Viereck V1 und dem Zerlegungslayer 1 zugeordnet sind und aus den Z-Kanten, die den durchlaufenen Zerlegungspfaden und dem Zerlegungslayer 1 zugeordnet sind. Damit sind alle Konfliktlayer aller Konfliktdreiecke untersucht und alle Komponenten des Zerlegungsgraphen detektiert. Algorithmus 6.1 formuliert das dem Beispiel zugrundeliegende rekursive Verfahren. 6.1. DETEKTION ALLER ZERLEGUNGSGRAPHEN Algorithmus 6.1 (Zerlegungsgraphdetektion). 1. PROCEDURE 2. BEGIN ? 3. Kontrollmenge KM:= ; 4. for (alle Konfliktlayer (KL)) 5. i:=0; 6. for (alle Konfliktdreiecke (KD) mit Konfliktlayer KL) 7. falls ((KD,KL)∈KM) / 8. ermittle Zerlegungspfadrichtung R gemäß Lemma 4.10 Seite 61 von (KD,KL); 9. einfüge (KD,KL) in KM; 10. detect(KD,KL,R,Komponente KKL,i ); 11. i++; 12. END 13. PROCEDURE detect(KD,KL,R,KKL,i ); 14. BEGIN 15. 16. falls (KD,KL) zugeordneter Z-Knoten ∈ / KKL,i einfüge (KD,KL) zugeordneter Z-Knoten in KKL,i ; 17. ZP:=Zerlegungspfad in Richtung R; 18. verfolge ZP; 19. einfüge (ZP,KL) zugeordnete Z-Kante in KKL,i ; 20. falls (ZP trifft auf neues Dreieck (ND)) 21. falls (ND ist Konfliktdreieck mit Konfliktlayer KL) 22. einfüge (ND,KL) zugeordneter Z-Knoten in KKL,i ; 23. einfüge (ND,KL) in KM; 24. 25. 26. 27. 28. 29. 30. 31. END else falls (Zerlegungspfad nach rechts von / KKL,i ) (ND,KL) ausgehend ∈ detect(ND,KL,rechts); falls (Zerlegungspfad nach links von (ND,KL) ausgehend ∈ / KKL,i ) detect(ND,KL,links); else (ZP trifft auf ein Ein- oder Auslaufviereck V) einfüge (V,KL) zugeordneter Z-Knoten in KKL,i ; 205 206 6.2 KAPITEL 6. ZERLEGUNGSGRAPHEN Zerlegungen und Zerlegungsgraphen Zerlegungsgraphen bestehen aus Z-Kanten und Z-Knoten. Diese sind Abbilder von eineindeutigen Zuordnungen von Zerlegungsdreiecken und Zerlegungspfaden mit bestimmten Zerlegungslayern. Jedem Zerlegungspfad mit einem bestimmten Zerlegungslayer ist eineindeutig ein 3D-Zerlegungspfad, und jedem Zerlegungsdreieck mit einem bestimmten Zerlegungslayer ist eineindeutig ein bestimmtes 3D-Element zugeordnet. Damit sind einem Zerlegungsgraphen eineindeutig bestimmte Elemente, nämlich die zu zerlegenden Elemente im 3D-Netz, zugeordnet. Die einem Zerlegungsgraphen zugeordneten Elemente müssen nun so zerlegt werden, daß ausschließlich erlaubte Elemente entstehen, also Hexaeder, Prismen und Tetraeder. Eine Zerlegungsanforderung an ein Hexaeder auf einem 3D-Zerlegungspfad wird wegen der Überschneidungsfreiheit von Zerlegungspfaden (vergl. Forderung 4.1 S. 63) immer nur von zwei gegenüberliegenden Seiten gestellt. Deswegen genügt es, alle einem Zerlegungsgraphen zugeordneten Hexaeder (innerhalb eines 3DZerlegungspfades) lediglich in zwei Prismen zu zerlegen. Zur Einhaltung der Konformitätsbedingung muß dabei jedoch die Zerlegungsrichtung auf einem 3D-Zerlegungspfad beibehalten werden (vergl. Abb. 6.3 (i) a) + (ii) a)). Abbildung 6.3: a) Einhaltung einer Zerlegungsrichtung eines 3DZerlegungspfades b) Orientierung der zugeordneten Z-Kante Die Einhaltung einer Zerlegungsrichtung eines 3D-Zerlegungspfades soll bei der zugeordneten Z-Kante im Zerlegungsgraphen einer Orientierung entsprechen (vergl. Abb. 6.3 (i) b) + (ii) b)). Das erscheint sinnvoll, da es für die Orientierung einer Kante und für die Wahl der Zerlegungsrichtung eines 6.2. ZERLEGUNGEN UND ZERLEGUNGSGRAPHEN 207 3D-Zerlegungspfades jeweils genau zwei Möglichkeiten gibt. Bei 3D-Zerlegungspfaden der Länge 0 grenzen 2-3-Elemente und/oder SPrismen jeweils mit einem Viereck aneinander. Da die Zerlegungen auch hier konform durchgeführt werden müssen, entstehen gleiche Zerlegungsrichtungsmöglichkeiten wie bei Zerlegungspfaden einer Länge größer 0: Die Elemente grenzen an genau einem Viereck aneinander. Dieses kann auf zwei Weisen in zwei Dreiecke zerlegt werden. Die Orientierung der Z-Kante, die einem 3D-Zerlegungspfad der Länge null zugeordnet ist, erfolgt demnach analog. Die Zerlegung der 2-3-Elemente kann auf zwei verschiedene Weisen stattfinden (vergl. Abb. 6.4) (vergl. auch Abschnitt 4.1.4 S. 55). Abbildung 6.4: Möglichkeiten der Zerlegung von 2-3-Elementen Die Zerlegung von S-Prismen wird durch die Zerlegung der zugehörigen Vierecksoberflächen bestimmt. Dabei ist eine Zerlegung eines S-Prismas nicht auf alle Weisen bezüglich der Zerlegung ihrer Viereckoberflächen möglich (vergl. Satz 6.1), sondern nur auf die in Abb. 6.5 dargestellten zwei verschiedenen Arten. Die anderen beiden Möglichkeiten (vergl. Abb. 6.6 (i) a) + (ii) a)) entsprechen fast einem Schönhardt-Polyeder (bzw. seiner gegenorientierten Version) (vergl. Abb. 6.6 (i) b) + (ii) b)), von dem Schönhardt 1928 in [Schö28] gezeigt hat, das es nicht in Tetraeder zerlegbar ist (vergl. Abb. 6.6). Daß die durch die Oberflächenzerlegungen der in Abb. 6.6 (i) a) + (ii) a) dargestellten S-Prismen entstandenen Polyeder ebenfalls nicht tetraedisierbar sind, zeigt der folgende Satz: Satz 6.1. Die durch die Oberflächenzerlegungen der in Abb. 6.6 (i) a) + (ii) a) dargestellten S-Prismen entstandenen Polyeder sind nicht tetraedisierbar. 208 KAPITEL 6. ZERLEGUNGSGRAPHEN Abbildung 6.5: Möglichkeiten der Zerlegung von S-Prismen Beweis. Die Beweis erfolgt œ für das S-Prisma aus Abb. 6.6 (i) a). Das durch die Oberflächenzerlegung enstandene Polyeder P kann durch Drehen der oberen Dreiecksoberfläche im Uhrzeigersinn um seine Achse in ein Schönhardt-Polyeder überführt werden (vergl. Abb. 6.6 (i)). Wie Schönhardt zeigt, muß für eine Tetraedisierung seines Polyeders wenigstens eine neue Kante eingesetzt werden: Dies gilt, weil bei der Drehung von P um 60◦ im Gegenuhrzeigersinn ein Oktaeder ensteht. Da lediglich der Zusammenhang der Kanten des Polyeders entscheidend ist, muß auch in P wenigstens eine neue Kante eingesetzt werden. Wenn kein neuer Knoten eingesetzt werden soll (sonst Verletzung der Vertikalbedingung), bleiben dafür aber lediglich die Diagonalen der Vierecke, zwischen denen noch keine Kanten existieren (vergl. auch [Schö28]). Da die Vierecke jeweils in einer Ebene liegen, müßte ein Vierecke zweifach zerlegt werden, was nicht erlaubt ist. Satz 6.1 muß für die gesamte Zerlegung beachtet werden und kann ein Hindernis darstellen! Definition 75. Eine Zerlegung der einem Zerlegungsgraphen zugeordneten Elemente heißt zulässig, wenn alle Elemente eines 3D-Zerlegungspfades in zwei Prismen zerlegt werden, die S-Prismen wie in Abb. 6.5 und die 23-Elemente wie in Abb. 6.4 und die zerlegten Elemente zusätzlich konform zueinander sind. Ein Z-Knoten vom Grad drei in einem Zerlegungsgraphen kann eineindeutig einem S-Prisma im zugehörigen 3D-Netz zugeordnet werden. Die zulässigen Zerlegungen der S-Prismen können durch die Orientierungen der Z-Kanten, die inzident zu dem Z-Knoten sind, der dem S-Prisma zugeordnet ist, dargestellt werden. Unter Beachtung der Umsetzung in Abb. 6.3 kann Abb. 6.7 (i) der Zerlegung aus Abb. 6.5 (i) und Abb. 6.7 (ii) kann der Zerlegung aus Abb. 6.5 (ii) zugeordnet werden. 6.2. ZERLEGUNGEN UND ZERLEGUNGSGRAPHEN a) b) a) b) 209 (i) (ii) Abbildung 6.6: (i) a) + (ii) a) nicht tetraedisierbare S-Prismen (i) b) nicht tetraedisierbares Schönhardt-Polyeder (ii) b) gegenorientierte Version des Schönhardt-Polyeder In Abb. 6.7 (i) zeigt ein Pfeil auf den Z-Knoten und zwei zeigen davon weg. Diese Situation wird deswegen Aufspaltung genannt. In Abb. 6.7 (ii) zeigen zwei Pfeile auf den Z-Knoten und einer davon weg. Diese Situation wird deswegen Vereinigung genannt. Definition 76. Eine Orientierung eines Zerlegungsgraphen heißt zulässig, wenn alle Z-Kanten so orientiert sind, daß sie ausschließlich wie in Abb. 6.7 auf die Z-Knoten vom Grad drei auftreffen. Definition 77. Ein Z-Knoten eines orientierten Zerlegungsgraphen heißt zulässig orientiert, wenn er vom Grad eins ist oder seine inzidenten ZKanten so orientiert sind, daß sie ausschließlich wie in Abb. 6.7 auf den Z-Knoten auftreffen. Bemerkung 6.1. Wegen der vorangegangenen Überlegungen und den Definitionen 75 und 76 ist die Zerlegung der eines Zerlegungsgraphen zugeordneten Elemente genau dann zulässig, wenn die Orientierung des Zerlegungsgraphen zulässig ist. Aufgabe ist es, eine zulässige Zerlegung der zu zerlegenden Elemente in einem 3D-Netz zu ermitteln, wobei die Qualität der gesamten Zerlegung zu optimieren ist. Wegen Bemerkung 6.1 genügt es, eine zulässige und optimale Orientierung im zugehörigen Zerlegungsgraphen zu ermitteln, wobei das Maß der Qualität der zerlegten 3D-Elemente entsprechend auf die orientierten 210 KAPITEL 6. ZERLEGUNGSGRAPHEN (i) a) b) (ii) a) b) Abbildung 6.7: Zuordnungen für die Zerlegungen von S-Prismen im Zerlegungsgraphen Zerlegungspfade übertragen werden muß. Die Bewertung der Orientierung einer Z-Kante eines Zerlegungsgraphen soll also aus der Qualität der zerlegten Elemente des zugeordneten 3D-Zerlegungspfades resultieren: Je nach Richtung der Zerlegung wird dem Zerlegungspfad eine Bewertung gegeben, die in Abhängigkeit der Abweichungen zu den Optimalwinkeln (im Sinne von Def. 23+24 Seite 29, hier auf Oberflächenelemente angewendet) bestimmt wird. Dazu werden sowohl die zerlegten Hexaeder des 3DZerlegungspfades als auch die zerlegten S-Prismen und 2-3-Elemente berücksichtigt. Da die Zerlegungen dieser Elemente durch die Zerlegungen ihrer Oberflächen eindeutig bestimmt sind, genügt es, die Abweichungen zu den Optimalwinkeln bezüglich der Oberflächen in die Bewertungen zu integrieren. Es ist zu beachten, daß bei der Zerlegung eines 3D-Zerlegungspfades von den an ihn angrenzenden S-Prismen zunächst nur eine Oberflächenseite zerlegt wird. Dies reicht jedoch für die Bewertung aus, da die Zerlegung der anderen Oberflächenvierecke in Abhängigkeit der Zerlegung der anderen benachbarten 3D-Zerlegungspfade geschieht und dort in deren Bewertung integriert wird. Die Bewertungen sind œ ≥ 0, wobei sie einen Wert der Abweichung zu den Optimalwinkeln angeben, auf dessen Berechnung hier nicht näher eingegangen werden soll. Bestehen keine Abweichungen zu den Optimalwinkeln, ist die Bewertung null. Je größer die Abweichungen sind, desto größer ist die Bewertung. Die Bewertung für die Orientierung der 3D-Zerlegungspfade wird jetzt auf die Zerlegungsgraphen übertragen. Das bedeutet für den zugeord- 6.2. ZERLEGUNGEN UND ZERLEGUNGSGRAPHEN 211 neten Zerlegungsgraphen, daß einer Z-Kante in Abhängigkeit ihrer Orientierung die Bewertungen der entsprechenden Zerlegungen des zugeordneten 3D-Zerlegungspfades zugeordnet wird. Definition 78. Die (Gesamt-)bewertung eines orientierten Zerlegungsgraphen ist die Summe aller Bewertungen aller Z-Kanten für die gewählte Orientierung. Die Aufgabe liegt somit in dem Optimierungsproblem, eine zulässige, (bezüglich der Gesamtbewertung) minimale Orientierung eines Zerlegungsgraphen zu ermitteln! Es wird deswegen im folgenden Minzuproblem genannt. Ohne Einhaltung der geforderten Zulässigkeit der Orientierung könnte das Optimierungsproblem trivial durch lokale Optimierung der Z-Kanten gelöst werden. Die Behandlung oder Lösung eines solchen Problems ist aus der Literatur nicht bekannt! Einige Flußprobleme der Graphentheorie wie z.B. das MaxFlow-Problem oder das Minimum-Cost-Flow-Problem [Chri75] erinnern an die Problemstellung des Minzuproblems. Die Nebenbedingung und Aufgabenstellung des Minzuproblems, insbesondere die Erzeugung einer zulässigen Orientierung im Sinne von Def. 76 werden jedoch dabei nicht berücksichtigt. In Abb. 6.14 (i) (s. S.226 ) ist die Zusammenhangskomponente Z12 (vergl. Abb. 6.2) mit anderer Benennung der Z-Knoten dargestellt, die aus dem in Abb. 6.1 dargestellten P-Netz ermittelt wurde (vergl. letztes Unterkapitel). Dabei sind den Z-Kanten für jeweils unterschiedliche Orientierungen unterschiedliche (fiktive) Bewertungen zugeordnet. Für die Bewertung sind hier œ (fiktive) Integer-Werte angenommen worden. Der Wert auf einer Seite der Z-Kante gibt die Bewertung an, die die Z-Kante bei einer Orientierung, bei der die Beschriftung rechts von dem entstandenen Pfeil liegt, erhält. In Abb. 6.14 (ii) ist eine Bewertung des Graphen dargestellt, die durch jeweilige Subtraktion der Bewertungen für die beiden Orientierungen (Bewertung der Orientierung - Bewertung der Gegenorientierung) entsteht. Definition 79. Der Differenz(zerlegungs)graph eines Zerlegungsgraphen ist ein Graph, dessen Knoten- und Kantenmenge der Knoten- und Kantenmenge des Zerlegungsgraphen entspricht. Bei einer Orientierung erhalten seine Kanten in Abhängigkeit ihrer Orientierung jeweils eine Bewertung, die aus den Bewertungen des zugehörigen Zerlegungsgraphen durch Subtraktion im oben beschriebenen Sinne entsteht. 212 KAPITEL 6. ZERLEGUNGSGRAPHEN Definition 80. Eine Orientierung in einem Differenzgraphen heißt genau dann zulässig, wenn diese Orientierung im zugehörigen Zerlegungsgraphen zulässig ist. Definition 81. Ein Z-Knoten in einem orientierten Differenzgraphen heißt zulässig orientiert genau dann, wenn er im zugehörigen Zerlegungsgraphen ebenfalls zulässig orientiert ist. Lemma 6.1. Ein Zerlegungsgraph ist genau dann optimal (minimal) orientiert, wenn auch sein Differenzgraph optimal orientiert ist. Beweis. Die Differenz zwischen zwei gegensätzlichen Orientierungen an einer Z-Kante ist beim Differenzgraphen genau doppelt so groß wie beim Zerlegungsgraphen. Wegen Lemma 6.1 kann das Minzuproblem für einen Zerlegungsgraphen auch auf dem zugehörigen Differenzgraphen gelöst werden. Der Differenzgraph hat den Vorteil, daß bereits anhand des Vorzeichens der Bewertung einer Orientierung eine für diese Z-Kante optimale Orientierung erkennbar ist. Eine Orientierung ist immer dann lokal optimal, wenn ihre Bewertung negativ oder null ist. Das Hauptproblem des Minzuproblems liegt in der Einhaltung der geforderten Orientierung an den Z-Knoten. Das nächste Unterkapitel stellt ein effiziente Lösung des Minzuproblems vor. 6.3 Lösung des Minzuproblems Aus Übersichtsgründen werden im folgenden Z-Knoten und Z-Kanten von Zerlegungs- und Differenzgraphen als Knoten und Kanten bezeichnet. Die Lösung des Minzuproblems geschieht aufgrund der oben erwähnten Vorteile mittels Differenzgraphen. Um eine Idee zur Lösung des Minzuproblems zu finden, wird ein zulässig orientierter Differenzgraph genauer analysiert. Dazu werden einige Begriffe eingeführt. Definition 82. Ein Weg W in einem orientierten Differenzgraphen ist ein kantenüberschneidungsfreier Kantenzug mit gleich orientierten Kanten, der an einem Knoten vom Grad eins oder an einem Knoten, der inzident zu einem einlaufenden und einem auslaufenden Pfeil ist, beginnt und an einem solchen Knoten endet (In Abb. 6.8 bildet k1 k2 k3 einen Weg). Die Knoten, an denen W beginnt und endet, heißen Startknoten (zu W) (In Abb. 6.8 sind A und B Startknoten zu k1 k2 k3 ). Die zu W gehörenden Kanten, die inzident zu seinen Startknoten sind, heißen 6.3. LÖSUNG DES MINZUPROBLEMS 213 Startkanten (zu W).(In Abb. 6.8 sind k1 und k3 Startkanten zu k1 k2 k3 ). Nach ihrer Definition sind Startknoten zulässig orientiert. Definition 83. Ein nicht-erweiterbarer Weg in einem orientierten Differenzgraphen ist ein Weg, der durch keine weitere Kante zu einem größeren Weg erweitert werden kann (In Abb. 6.8 bildet k4 k1 k2 k3 einen nichterweiterbaren Weg). k4 A k1 k2 k3 B Weg Abbildung 6.8: Weg Der Begriff des Weges verhilft zu einer neuen Betrachtungsweise eines orientierten Differenzgraphen. Es kann gezeigt werden, daß ein Differenzgraph genau dann zulässig orientiert ist, wenn er in disjunkte Wege zerlegt werden kann. Dieser Nachweis geschieht im folgenden Abschnitt 6.3.1. Das Konzept der Wege kann schließlich sogar zur Lösung des Minzuproblems verwendet werden, wofür in Abschnitt 6.3.3 ein effizienter Algorithmus vorgestellt wird. Im darauffolgenden Abschnitt 6.3.4 wird die Laufzeit dieses Algorithmus diskutiert. Vorher (in Abschnitt 6.3.2) wird noch eine Äquivalenzeigenschaft der Orientierung von Wegen eines Differenzgraphen und einer zulässig, optimalen Orientierung des Differenzgraphen gezeigt. Sie ist Grundlage für den Algorithmus aus Abschnitt 6.3.3. 6.3.1 Eine Äquivalenzeigenschaft eines zulässig orientierten Differenzgraphen über nicht-erweiterbare Wege in zulässig orientierten Graphen kann folgendes ausgesagt werden: Lemma 6.2. Ein nicht-erweiterbarer Weg W in einem zulässig orientierten Graphen G beginnt und endet an einem Knoten vom Grad eins. Beweis. Ann.: W beginnt an einem Knoten K vom Grad drei und mit einer Startkante k1 und die beiden weiteren zu K inzidenten Kanten k2 und k3 214 KAPITEL 6. ZERLEGUNGSGRAPHEN gehören nicht zu W. Œ sei k1 von K ausgehender Pfeil. Wenn W nichterweiterbar ist, darf K keinen einlaufenden Pfeil besitzen, also k2 und k3 müssen ebenfalls ausgehende Pfeile sein. Widerspruch zur Voraussetzung, daß G zulässig orientierter Differenzgraph ist. Um die Äquivalenz zwischen einem zulässig orientierten Differenzgraphen G und der Möglichkeit, den Differenzgraphen G in disjunkte Wege zu zerlegen, zu zeigen (vergl. Satz 6.2 Seite 216), wird zuerst ein Verfahren vorgestellt, daß einen zulässig orientierten Differenzgraphen G in disjunkte Wege zerlegt (vergl. dazu auch Abb. 6.9). Die Idee des Verfahrens liegt darin, sukzessiv nicht-erweiterbare Wege zu finden: Nach dem Auffinden eines nicht-erweiterbaren Weges wird jeweils in dem Teilgraph, der durch Wegnahme dieses Weges entsteht, ein nichterweiterbarer Weg gesucht. Auf diese Weise kann G schließlich komplett in disjunkte Wege zerlegt werden. In Abb. 6.9 wird dies für eine zulässige Orientierung der Komponente K12 aus Abb. 6.14 verdeutlicht. P3 P1 P2 P6 P8 P7 P5 P P9 10 P3 P6 P8 P7 P3 P2 P5 P P9 10 P6 P8 P7 P9 P10 P4 (i) (ii) (iii) P3 P8 P6 P7 (iv) P8 P7 (v) Abbildung 6.9: Zerlegung der Komponente K12 in disjunkte Wege Algorithmus 6.2 skizziert das Verfahren. Zur Korrektheit des Vorgehens wird gezeigt. 6.3. LÖSUNG DES MINZUPROBLEMS 215 Algorithmus 6.2 (Graphzerlegung). 1. PROCEDURE 2. BEGIN 3. aktueller Graph G:= zulässig orientierter Differenzgraph; 4. Menge der Wege M:={}; 5. while (G 6= leer) 6. ermittle nicht-erweiterbaren Weg W in G; 7. einfüge W in M; 8. G:=G-W; 9. END Lemma 6.3. Wird aus einem zulässig orientierten Differenzgraphen G ein nicht-erweiterbarer Weg W entfernt, so verbleibt ein zulässig orientierter nicht notwendigerweise zusammenhängender Teilgraph T, dessen Knoten ausschließlich vom Grad eins oder drei sind. Beweis. Zur zweiten Behauptung: Die Knoten sind vom Grad eins oder drei: Es werden die Knoten betrachtet, deren Grad sich durch die Wegnahme von W ändern. Bei Knoten vom Grad eins in G kann durch die Wegnahme von W nur eine Kante wegfallen, womit auch der Knoten wegfällt. Bei Knoten vom Grad drei kann durch die Wegnahme von W nicht genau eine Kante wegfallen, da dann W an diesem Knoten enden würde, was ein Widerspruch zu Lemma 6.2 wäre. Es fallen entweder genau zwei Kanten weg: In diesem Fall bleibt ein Knoten vom Grad eins übrig. Oder es fallen alle drei Kanten weg: In diesem Fall fällt auch der Knoten weg. Zur ersten Behauptung: T ist zulässig orientiert: Knoten vom Grad drei in T waren bereits Knoten vom Grad drei in G. Da keine Umorientierung von Kanten stattfindet, ist die Orientierung in T nach Voraussetzung zulässig. Lemma 6.3 sagt aus, daß der Teilgraph die gleichen Eigenschaften hat wie ein Differenzgraph und deswegen wie ein solcher behandelt werden kann. Damit kann das Verfahren zur Ermittlung eines nicht-erweiterbaren Weges sukzessiv angewendet werden kann. 216 KAPITEL 6. ZERLEGUNGSGRAPHEN Der folgende Satz zeigt, daß durch das Verfahren G in disjunkte Wege zerlegt wird, also daß M in Algorithmus 6.2 ausschließlich (kanten-)disjunkte Wege enthält, die zusammengesetzt G bilden. Satz 6.2. Die Wege in M sind (kanten-)disjunkte Wege des ursprünglichen Differenzgraphen G und bilden zusammengesetzt G. Beweis. Zur ersten Behauptung: Die Wege in M sind (kanten-)disjunkte Wege von G: Aufgrund des Verfahrens der Wegnahme der jeweils gefundenen Wege ist es klar, daß die Wege aus M kantendisjunkt sind. Es wird noch gezeigt, daß jeder Weg V aus M auch Weg in G ist. Dazu genügt es zu zeigen, daß ein Weg V eines Teilgraphen T, der aus einem Graphen H durch Wegnahme eines Weges W entstanden ist, auch Weg in H ist: Die Kanten von W sind in T und H gleich orientiert; ist W in T kantenüberschneidungsfrei, so ist er es auch in H; ist ein Startknoten von W in T vom Grad drei, so ist er es auch in H mit gleicher Orientierung aller Knoten in H; ist ein Startknoten von W in T vom Grad eins, so ist er in H entweder vom Grad eins oder von Grad drei. Im letzten Fall müssen zwei zu den Startknoten inzidente Kanten von H nach T entfernt worden sein, die zu einem Weg gehörten. Damit muß eine Kante davon eingehend und eine ausgehend sein. Damit ist W ebenfalls Weg in H. Zur zweiten Behauptung: Die Wege aus M bilden zusammen G. Dies folgt direkt daraus, daß solange Wege gesucht werden, bis der aktuell betrachtete Graph leer ist. Mit Hilfe des Lemmas 6.3 und des Satzes 6.2 und des Algorithmus 6.2 kann nun leicht die gewünschte Äquivalenz gezeigt werden. Satz 6.3 (Satz über zulässige Orientierungen). Eine Orientierung eines Differenzgraphen ist genau dann zulässig, wenn der Differenzgraph mit dieser Orientierung aus disjunkten Wegen besteht. Beweis. ⇒“: Folgt aus Lemma 6.3 und Satz 6.2 und aus Algorithmus 6.2. ” ⇐“: Jede Kante eines orientierten Graphen, der aus disjunkten Wegen be” steht, gehört zu (wenigstens) einem Weg. Deswegen wird gezeigt: Wenn jede Kante eines (orientierten) Differenzgraphen zu einem Weg gehört, ist der Differenzgraph zulässig orientiert. Um die Zulässigkeit einer Orientierung eines Differenzgraphen zu zeigen, genügt es zu zeigen, daß (*) Knoten vom Grad drei zu wenigstens einem eingehenden und einem ausgehenden Pfeil inzident sind. Für einen Knoten, der inzident zu einer (œ ausgehenden) Kante ist, die zu einem Weg gehört, gilt entweder: (i) Der Weg läuft über diesen Knoten. Dann ist der Knoten inzident zu einer 6.3. LÖSUNG DES MINZUPROBLEMS 217 weiteren eingehenden Kante des Weges. oder: (ii) Der Weg beginnt oder endet an diesem Knoten. D.h. dieser Knoten ist Startknoten und ist deswegen (falls vom Grad drei) inzident zu einer eingehenden und einer ausgehenden Kante. Da wie bereits erwähnt alle Kanten zu einem Weg gehören, ist (*) damit gezeigt. 6.3.2 Eine Äquivalenzeigenschaft eines zulässig optimal orientierten Differenzgraphen Die Äquivalenz in Satz 6.3 soll nun dazu verhelfen, eine zulässig minimale Orientierung in einem Differenzgraphen mittels Eigenschaften der disjunkten Wege zu ermitteln. Deswegen werden im folgenden Wege genauer betrachtet. Es werden folgende Definitionen eingeführt: Definition 84. Eine positive (Z-)Kante eines orientierten Differenzgraphen ist eine Kante, die so orientiert wurde, daß ihre Bewertung positiv ist. Eine negative (Z-)Kante eines orientierten Differenzgraphen ist eine Kante, die so orientiert wurde, daß ihre Bewertung negativ ist. Definition 85. Eine Schleife in einem orientierten Differenzgraphen ist ein in einer Richtung orientierter, geschlossener, kantenüberschneidungsfreier Kantenzug, dessen Knoten zulässig orientiert sind. (vergl. Abb. 6.10). Bemerkung 6.2. Eine Schleife kann nach Definition des Weges kein Weg sein. Ein Weg kann eine Schleife enthalten. (i) (ii) Abbildung 6.10: Schleifen Definition 86. Die Bewertung eines Weges oder einer Schleife in einem (orientierten) Differenzgraphen ist die Summe aller Bewertungen der gewählten Orientierungen der Kanten des Weges bzw. der Schleife. 218 KAPITEL 6. ZERLEGUNGSGRAPHEN Definition 87. Die Bewertung eines (orientierten) Differenzgraphen ist die Summe aller Bewertungen der gewählten Orientierungen der Kanten des Differenzgraphen. Definition 88. Ein positiver Weg oder eine positive Schleife eines orientierten Differenzgraphen ist ein Weg bzw. eine Schleife, deren Bewertung positiv ist. Ein negativer Weg oder eine negative Schleife eines orientierten Differenzgraphen ist ein Weg bzw. eine Schleife, deren Bewertung negativ ist. Definition 89. Das Umdrehen eines Weges in einem zulässig orientierten Differenzgraphen bedeutet die Umorientierung aller Kanten des Weges. Das Umdrehen einer Schleife in einem zulässig orientierten Differenzgraphen bedeutet die Umorientierung aller Kanten der Schleife. Insbesondere die Definition der positiven Wege und Schleifen sowie das Umdrehen von Wegen und Schleifen führt, wie im folgenden deutlich wird, zu einer neuen Sicht der gesuchten, optimalen Orientierungen. Für das Umdrehen von Wegen und Schleifen gilt: Lemma 6.4. Das Umdrehen eines Weges in einem Differenzgraphen bei zulässiger Orientierung führt zu einer neuen zulässigen Orientierung des Differenzgraphen. Beweis. Dazu muß gezeigt werden, daß an allen Knoten, an denen Orientierungen geändert werden, weiterhin zulässige Orientierungen anliegen. An den Knoten, die nicht Startknoten des umgedrehten Weges sind, liegt sowohl vor dem Umdrehen als auch nach dem Umdrehen ein einlaufender Pfeil und ein auslaufender Pfeil des Weges an. Damit sind diese Knoten zulässig. Ein Startknoten des Weges ist entweder vom Grad eins oder er besitzt außerhalb der Startkante zum Weg einen einlaufenden und einen auslaufenden Pfeil. Entweder gehören sie beide zum Weg, dann werden sie beide mitumgedreht oder sie gehören beide nicht zum Weg und werden nicht umgedreht. In beiden Fällen liegt nach dem Umdrehen ein einlaufender und ein auslaufender Pfeil vor. Lemma 6.5. Das Umdrehen einer Schleife in einem Differenzgraphen mit zulässiger Orientierung führt zu einer zulässigen Orientierung. Beweis. Verläuft analog zum Beweis von Lemma 6.4. Wegen Lemmata 6.4 und 6.5 führt das Umdrehen eines positiven Weges oder einer positiven Schleife in einem Differenzgraphen mit zulässiger Orientierung zu einer zulässigen Orientierung mit geringerer Bewertung als die 6.3. LÖSUNG DES MINZUPROBLEMS 219 ursprüngliche. Werden also in einem Differenzgraphen sukzessiv positive Wege/Schleifen umgedreht, so nimmt die Bewertung des Differenzgraphen immer stärker ab. Diese Überlegungen führen schließlich zu dem wichtigen Satz 6.4 auf Seite 225, der für zulässig orientierte Differenzgraphen die Äquivalenz von minimalen Orientierungen und der Nichtexistenz positiver Wege und Schleifen widergibt. Wegen dieser Äquivalenz genügt es zur Lösung des Minzuproblems, eine zulässige Orientierung eines Differenzgraphen zu finden, so daß keine positiven Wege und Schleifen existieren! Im folgenden wird diese Äquivalenz diskutiert und letzlich bewiesen. Im nächsten Abschnitt wird mit Hilfe dieser Äquivalenz ein effizientes Verfahren zur Ermittlung eines minimal und zulässig orientierten Differenzgraphen (also zur Lösung des Minzuproblems) vorgestellt. Eine Richtung der Äquivalenz ist leicht nachweisbar: Lemma 6.6. Ein zulässig orientierter Differenzgraph mit minimaler Orientierung besitzt keinen positiven Weg und keine positive Schleife. Beweis. Würde eine Differenzgraph mit einer zulässigen, minimalen Orientierung einen positiven Weg oder eine positive Schleife besitzen, so wäre die Orientierung mit dem umgedrehten positiven Weg bzw. der positiven Schleife wegen Lemma 6.4 bzw. Lemma 6.5 zulässig und besäße durch das Umdrehen eine geringere Gesamtbewertung. Widerspruch zur Minimalität der ursprünglichen Orientierung. Es ist nun zu zeigen, daß auch die Umkehrung von Lemma 6.6 gilt, also daß jede zulässige Orientierung, die keine positiven Wege und Schleifen besitzt, wirklich eine minimale Orientierung ist, also, daß es keine zulässige Orientierung gibt, die eine kleinere Bewertung besitzt. Dies hat den Vorteil, daß es zur Lösung des Minzuproblems genügt, eine zulässige Orientierung zu finden, die keine positiven Wege und Schleifen enthält! Wäre dies nicht der Fall und eine zulässige minimale Orientierung sollte ausschließlich durch Umdrehen von Wegen aus einer zulässigen Orientierung gefunden werden, so wäre es von dieser Orientierung aus ggfs. notwendig, einen negativen Weg oder eine negative Schleife umzudrehen, um zu einer minimalen Orientierung zu gelangen. Mit anderen Worten: Wird eine Orientierung als Zustand betrachtet, so wäre es möglich, durch das Umdrehen nicht-negativer Wege/Schleifen in einen zwar lokal minimalen aber nicht global minimalen Zustand zu gelangen, der durch Umdrehen nicht-negativer Wege/Schleifen nicht verlassen werden kann! 220 KAPITEL 6. ZERLEGUNGSGRAPHEN Im folgenden wird gezeigt, daß ein global minimaler Zustand, also eine zulässig minimale Orientierung, aus einer beliebigen zulässigen (nicht minimalen) Orientierung durch das alleinige Umdrehen nicht-negativer Wege/Schleifen erreicht werden kann! Nach den oben stehenden Überlegungen genügt dies als Beweis der Rückrichtung der Äquivalenz aus Satz 6.4. Dazu wird eine Methode vorgestellt, die aus einer beliebigen zulässigen Orientierung eines Differenzgraphen durch ausschließliches Umdrehen von nicht-negativen Wegen und Schleifen eine zulässige minimale Orientierung erzeugt. Die Methode wird mit Hilfe eines Beispiels diskutiert. P3 P2 P6 P8 P7 P5 P P9 10 P4 (i) P1 P3 P1 P2 P6 P8 P7 P5 P P9 10 P4 (ii) Abbildung 6.11: (i) Zulässige nicht minimale Orientierung für Komponente K12 (ii) Zulässige minimale Orientierung für Komponente K12 Es sei die in 6.11 (i) dargestellte Orientierung A der Komponente K12 aus Abb. 6.14 (kann hier œ als kompletter Differenzgraph betrachtet werden!) eine beliebige zulässige, aber nicht minimale Orientierung und die in 6.11 (ii) dargestellte eine zulässige und minimale Orientierung B. Der Differenzgraph kann nach Algorithmus 6.2 in disjunkte Wege zerlegt werden (vergl. 6.12 (i)): Jeder der Wege wird im Hinblick auf die Orientierung B so in Teilwege zerlegt (vergl. 6.12 (ii)), daß die in Bezug auf B umzudrehenden Teilwege und die nicht umzudrehenden Teilwege innerhalb eines Weges abwechseln. Ein Teilweg kann auch eine Schleife sein oder eine Schleife enthalten. Ein Teilweg ist nicht notwendigerweise ein Weg. Um von Orientierung A zu Orientierung B zu gelangen, genügt es, die umzudrehenden Teilwege umzudrehen. Im folgenden wird gezeigt, daß die umzudrehenden Teilwege so zusammengefaßt werden können, daß sie ausschließlich nicht-negative Wege und Schleifen bilden. Das bedeutet schließlich, daß Orientierung B aus Orientierung A auschließlich durch Umdrehen nicht-negativer Wege und Schleifen entstehen kann! Damit ist dann die Rückrichtung der Äquivalenz aus Satz 6.3. LÖSUNG DES MINZUPROBLEMS (i) 221 (ii) Abbildung 6.12: (i) Zerlegung in disjunkte Wege für Komponente K12 (vergl. Abb. 6.9) (ii) Umzudrehende Teilwege sind fettmarkiert 6.4 gezeigt! Für einen Knoten, der am Beginn bzw. am Ende eines umzudrehenden Teilweges (d) liegt, bestehen folgende Möglichkeiten bzgl. seiner Nachbarschaften von umzudrehenden Teilwegen (d) und nicht umzudrehenden Teilwegen (n) (vergl. 6.13): d d d d n n Fall 1 Fall 2 n d Fall 3 Fall 4 Abbildung 6.13: Möglichkeiten der Nachbarschaften eines Teilweges Fall 1: Der Knoten ist vom Grad eins (vergl. 6.13 (i)). Fall 2: Der Knoten ist inzident zu zwei dort beginnenden Teilwegen, die nicht umgedreht werden (vergl. 6.13 (ii)). Fall 3: Der Knoten ist inzident zu zwei dort beginnenden Teilwegen, von denen einer umgedreht wird (vergl. 6.13 (iii)). Fall 4: Der Knoten ist inzident zu einem Teilweg, der durch diesen Knoten verläuft (vergl. 6.13 (iv)). 222 KAPITEL 6. ZERLEGUNGSGRAPHEN Wegen der Konstruktion der Teilwege ist eine andere Nachbarschaft zwischen den Teilwegen nicht möglich. Insbesondere können keine drei umzudrehenden Teilwege aneinandergrenzen, da davon genau zwei in Orientierung A zu einem Weg gehören würden und die Aufteilung in zwei benachbarte umzudrehende Teilwege innerhalb eines Weges im Widerspruch zur Konstruktion der Teilwege stehen würde. Die folgenden Lemmata zeigen, daß die umzudrehenden Teilwege (in Orientierung A) entweder Wege und Schleifen darstellen oder zu Wegen und Schleifen zusammengefaßt werden können. Lemma 6.7. Ein umzudrehender Teilweg im oben beschriebenen Sinne, der an Knoten vom Fall 1, 2 oder 4 beginnt und endet, stellt einen Weg dar. Beweis. Es genügt zu zeigen, daß die beiden Knoten, auf denen ein zu drehender Teilweg beginnt und endet, Startknoten sind. Im Fall 1 und 4 sind die Knoten, an denen der Teilweg beginnt, offensichtlich Startknoten. Im Fall 2 zeigt einer der beiden nicht umzudrehenden Teilwege auf den Knoten und der andere vom Knoten weg, da sonst entweder bei Orientierung A oder bei Orientierung B eine nicht zulässige Orientierung am betrachteten Knoten vorliegen würde. Damit liegt auch in diesem Fall ein Startknoten vor. Der Teilweg beginnt und endet an einem Startknoten und ist deswegen ein Weg. Lemma 6.8. Ein umzudrehender Teilweg, der an einem Koten vom Fall 3 beginnt oder endet, besitzt die gleiche Orientierung wie ein umzudrehender Teilweg, zu dem er an diesem Knoten inzident ist. Beweis. Da genau zwei Teilwege umgedreht werden, müssen sie die gleiche Orientierung besitzen, da sonst entweder in Orientierung A oder in Orientierung B eine nicht zulässige Orientierung am betrachteten Knoten vorliegen würde. Definition 90. Eine Folge von umzudrehenden Teilwegen ist eine Menge von umzudrehenden Teilwegen, die zusammen einen kantenüberschneidungsfreien Kantenzug bilden. Da für den Beginn und das Ende von umzudrehenden Teilwegen ausschließlich die Fälle 1-4 auftreten können, können zwei umzudrehende Teilwege nur an einem Knoten vom Fall 3 mit ihren Startknoten inzident sein. Insbesondere bedeutet dies, daß an einem Knoten immer nur zwei (und nicht mehr) umzudrehende Teilwege mit ihren Startknoten inzident sein können! 6.3. LÖSUNG DES MINZUPROBLEMS 223 Es werden jetzt Folgen von umzudrehenden Teilwegen nach den Knoten des jeweils ersten und letzten Teilwegs nach ihrem Fall unterschieden. Dies führt zu den Begriffen der Wegfolge und der Schleifenfolge: Definition 91. Eine Wegfolge von umzudrehenden Teilwegen ist eine Folge von umzudrehenden Teilwegen, deren erster Teilweg an einem Knoten vom Fall 1, 2 oder 4 beginnt und deren letzter Teilweg an einem Knoten vom Fall 1, 2 oder 4 endet. Jeder umzudrehende Teilweg, der zu einem umzudrehenden Teilweg der Wegfolge an einem Knoten vom Fall 3 inzident ist, gehört ebenfalls zur Wegfolge. Bemerkung 6.3. Eine Wegfolge kann auch aus genau einem Teilweg bestehen. Lemma 6.9. Eine Wegfolge von umzudrehenden Teilwegen in einem zulässig orientierten Differenzgraphen ist ein Weg. Beweis. Nach Voraussetzung sind alle Knoten der Wegfolge zulässig orientiert. Wegen Lemma 6.8 besitzen alle umzudrehenden Teilwege der Wegfolge die gleiche Orientierung. Da der Knoten am Beginn des ersten Teilweges vom Fall 1, 2 oder 4 ist (sonst wäre es nicht der erste Teilweg), ist er Startknoten. Das gleiche gilt für den Knoten am Ende des letzten Teilweges. Die Teilwege der Wegfolge sind nach Konstruktion kantendisjunkt und bilden nach Definition der Folge einen Kantenzug. Damit ist die Wegfolge ein Weg. Definition 92. Eine Schleifenfolge von umzudrehenden Teilwegen ist eine Folge von umzudrehenden Teilwegen, deren Knoten am Beginn und am Ende jedes Teilweges vom Fall 3 sind und jeder zu einem umzudrehenden Teilweg inzidente umzudrehende Teilweg ebenfalls in der Schleifenfolge enthalten ist. Bemerkung 6.4. Eine Schleifenfolge kann auch aus genau einer Schleife bestehen. Lemma 6.10. Eine Schleifenfolge von umzudrehenden Teilwegen ist eine Schleife. Beweis. Nach Voraussetzung sind alle Knoten der Schleifenfolge zulässig orientiert. Wegen Lemma 6.8 besitzen alle umzudrehenden Teilwege der Schleifenfolge die gleiche Orientierung. Laut Definition beginnt und endet jeder Teilweg an einem Knoten vom Fall 3 und jeder zu einem Teilweg inzidente Teilweg ist ebenfalls in der Schleifenfolge enthalten, d.h. die Schleifenfolge ist geschlossen. Die Teilwege der Schleifenfolge sind nach Konstruktion kantendisjunkt und bilden nach Definition der Folge einen Kantenzug. Damit bildet die Schleifenfolge eine Schleife. 224 KAPITEL 6. ZERLEGUNGSGRAPHEN Mit Hilfe der Begriffe Wegfolge und Schleifenfolge können alle umzudrehenden Teilwege eingeordnet werden: Lemma 6.11. Ein umzudrehender Teilweg einer zulässigen Orientierung gehört zu genau einer Wegfolge oder einer Schleifenfolge. Beweis. Gilt nach Definitionen 91 und 92 der Weg- und Schleifenfolge. Aus Lemma 6.11 kann wegen der Konstruktion der Teilwege gefolgert werden: Folgerung 6.2. Alle Weg- und Schleifenfolgen einer zulässigen Orientierung sind paarweise kantendisjunkt. Damit ist gezeigt, daß Orientierung A sich von Orientierung B ausschließlich durch umzudrehende kantendisjunkte Wege und Schleifen unterscheidet. Es gilt: Lemma 6.12. Die auf die oben beschriebene Methode erzielten umzudrehenden Wege (Wegfolgen) und Schleifen (Schleifenfolgen) in einem Graphen mit Orientierung A sind nicht negativ, wenigstens eine(r) davon ist positiv. Beweis. Da die umzudrehenden Wege und Schleifen paarweise kantendisjunkt sind, stellen sie in Orientierung B ebenfalls Wege und Schleifen dar, denn ihre Startknoten sind auch in Orientierung B Startknoten. Da Orientierung B minimal ist, darf der Graph bei dieser Orientierung wegen Lemma 6.6 keine positiven Wege und Schleifen enthalten. Damit dürfen die Wege und Schleifen in Orientierung A nicht negativ sein. Da Orientierung A nicht minimal ist, muß wenigstens ein Weg oder eine Schleife positiv sein. Mit Hilfe von Lemma 6.12 läßt sich nun die Umkehrung zu Lemma 6.6 zeigen. Lemma 6.13. Eine zulässige Orientierung C (eines Differenzgraphen) mit ausschließlich nicht-positiven Wegen und Schleifen, ist (global) minimal. Beweis. Annahme: Es existiert ein Differenzgraph G mit einer zulässigen, nicht-minimaler Orientierung C und ausschließlich nicht-positiven Wegen und Schleifen. Dann kann eine zulässige, minimale Orientierung B von G durch Umdrehen von Schleifen und Wegen erreicht werden. Die Wege und Schleifen können wie oben beschrieben als Wegfolgen und Schleifenfolgen ermittelt werden. Wegen Lemma 6.12 ist dann wenigstens eine Schleife oder ein Weg positiv. Widerspruch. 6.3. LÖSUNG DES MINZUPROBLEMS 225 Lemma 6.13 vervollständigt die Überlegungen zur zu zeigenden Äquivalenz: Satz 6.4 (Satz über minimale, zulässige Orientierungen). Eine zulässige Orientierung in einem Differenzgraphen ist genau dann minimal, wenn sie keine positiven Wege und Schleifen enthält. Damit ist gezeigt, daß es bezüglich des Umdrehens nicht negativer Wege und Schleifen keine lokal, nicht global minimalen Zustände bezüglich der zulässigen Orientierungen in einem Differenzgraphen gibt! Die Äquivalenz verhilft nun zu einem effizienten Algorithmus zur Ermittlung einer zulässig minimalen Orientierung für einen Differenzgraphen. 6.3.3 Ein effizientes Verfahren zur Ermittlung einer zulässigen minimalen Orientierung für Differenzgraphen Ein naheliegendes Verfahren zur Ermittlung einer zulässigen, minimalen Orientierung in einem Differenzgraphen besteht somit darin, von einer zulässigen Orientierung ausgehend solange positive Wege und Schleifen umzudrehen, bis eine minimale, zulässige Orientierung erreicht wird. Da eine minimale, zulässige Orientierung jedoch vorher nicht bekannt ist, stellt sich die Frage, welche positiven Wege und Schleifen am besten umgedreht werden, damit einzelne Kanten nicht zu häufig umgedreht werden müssen. Es ist bei diesem Verfahren z.B. durchaus möglich, daß eine bereits gedrehte Kante in einer neuen Orientierung wiederum in einem positiven Weg liegt, der umgedreht wird. Da es insgesamt exponentiell viele zulässige Orientierungen gibt, müßte ein solches Verfahren gewährleisten, daß auch im worst case“ nicht ” alle Orientierungen, sondern nur polynomial viele erzeugt werden. Im Rahmen dieser Dissertation wurde ein anderer Ansatz verfolgt und daraus ein effizientes Verfahren entwickelt, das im folgenden von einem Beispiel begleitet vorgestellt wird. Statt von einer zulässigen Orientierung auszugehen und eine minimal zulässige Orientierung zu ermitteln, wird von einer minimal, nicht notwendigerweise zulässigen Orientierung ausgegangen und daraus eine minimal zulässige Orientierung erzeugt. Als Beispiel wird die Komponente K12 des in Unterkapitel 6.1 detektierten Zerlegungsgraphen (vergl. Abb. 6.2) für das Wurmbeispiel gewählt. Obwohl dies nur eine Komponente ist, wird sie im folgenden wie ein kompletter Zerlegungsgraph behandelt. Das Verfahren kann leicht auf nichtzusammenhängende Zerlegungsgraphen übertragen werden. 226 KAPITEL 6. ZERLEGUNGSGRAPHEN Der in Abb. 6.14 (ii) dargestellte Graph ist der Differenzgraph zur Komponente K12 (vergl. Abb. 6.2) mit anderer Knotenbezeichnung. Die möglichen Bewertungen des Differenzgraphen sind fiktiv gewählt. Die Bewertung für eine Orientierung einer Kante steht immer rechts des möglichen, zugehörigen Pfeils. In Abb. 6.14 (i) sind die möglichen Bewertungen des Zerlegungsgraphen eingetragen. Es wird also zunächst eine nicht notwendigerweise zulässige, aber minimale Orientierung erzeugt. Das bedeutet, daß jede Kante lokal (also ohne Rücksicht auf die Zulässigkeit der Orientierung) minimal orientiert wird. (Kanten mit Bewertung null für beide Orientierungen dürfen beliebig orientiert werden.) Ausgehend von dieser Orientierung werden dann bestimmte Kantenzüge so umgedreht, daß schließlich eine minimale, zulässige Orientierung entsteht. P1 P1 P3 6 3 P2 P3 4 6 7 (i) P4 P2 -2 2 -1 -1 1 1 -2 P5 2 P6 -11 P8 2 P7 0 -3 -2 3 00 0 P10 P9 3 2 3 23 5 P6 P5 23 P8 3 P7 1 5 1 8 11 1 P10 P9 4 3 -3 3 -3 P4 (ii) Abbildung 6.14: (i) (bewerteter) Zerlegungsgraph (Komponente K12 ) (ii) (bewerteter) Differenzgraph (Komponente K12 ) In Abb. 6.15 (i) ist die lokale Optimierung für den Zerlegungsgraphen aus Abb. 6.14 dargestellt. Hier gibt es zwei nicht zulässig orientierte Knoten (P2 und P3 ). Existieren keine nicht zulässig orientierten Knoten, so ist die Orientierung zulässig und zugleich minimal. In diesem Fall ist das Minzuproblem bereits gelöst. Für den anderen Fall wird das Vorgehen jetzt beschrieben. Dazu werden zunächst die Begriffe Startknoten und Startkante erweitert. 6.3. LÖSUNG DES MINZUPROBLEMS 227 Definition 93. Ein zulässig orientierter Knoten K an einem gleichorientierten Kantenzug Z in einem orientierten Differenzgraphen heißt Startknoten (zu Z), wenn Z an K beginnt oder endet. Eine zu Z gehörende Kante, die inzident zu einem seiner Startknoten ist, heißt Startkante (zu Z). Es wird nun definiert: Definition 94. Ein Halbweg in einem Differenzgraphen mit einer nicht zulässigen Orientierung ist ein kantenüberschneidungsfreier gleich orientierter Kantenzug, der an einem nicht zulässig orientierten Knoten A beginnt und an einem solchen oder an einem Startknoten B zu einer Startkante, die zum Halbweg gehört, endet. Bemerkung 6.5. Ein Halbweg kann keine Schleife sein, da eine Schleife nach Definition an einem zulässig orientierten Knoten beginnen und enden muß. Es gilt also A6=B. Definition 95. Die Bewertung eines Weges/Halbweges oder einer Schleife A wird mit kAk bezeichnet. In Abb. 6.15 (i) bildet z.B. P3 P6 P7 einen Halbweg zum nicht zulässig orientierten Knoten P3 . Das Umdrehen eines Halbweges geschieht analog zum Umdrehen eines Weges. Die Halbwege sind die oben bereits erwähnten Kantenzüge, von denen zum Entstehen einer zulässigen, minimalen Orientierung einige umgedreht werden sollen. Dazu wird zunächst gezeigt: Lemma 6.14. Durch das Umdrehen eines Halbweges H ensteht kein neuer nicht zulässig orientierter Knoten. Der eine bzw. die beiden nicht zulässig orientierten Knoten am Beginn und Ende des Halbweges werden zu zulässig orientierten Knoten. Beweis. Es ist genau eine Kante aus H inzident zu A, da A sonst zulässig orientiert wäre. Da an A deswegen genau eine Kante umgedreht wird, wird aus A ein zulässig orientierter Knoten. Ist B ebenfalls nicht zulässig orientierter Knoten, gilt hier das gleiche. Ist B vom Grad eins, ist er vor und nach dem Umdrehen zulässig. Ist B vom Grad drei und nicht gleichzeitig Knoten innerhalb des Halbweges, so wird durch das Umdrehen des Halbweges an B genau eine Startkante umgedreht, also ein ein- und ein auslaufender Pfeil bleiben auf jeden Fall erhalten und damit B zulässig orientiert. Für alle Knoten 228 KAPITEL 6. ZERLEGUNGSGRAPHEN innerhalb des Halbweges (auch für B, falls B gleichzeitig innerhalb des Halbweges liegt) werden ein einlaufender und ein auslaufender Pfeil umgedreht, so daß wiederum die Zulässigkeit der Orientierung erhalten bleibt. Die Wahl der umzudrehenden Halbwege geschieht auf folgende Weise: P1 P2 P3 -2 -3 -1 -1 P8 -3 -2 0 -3 -1 -1 P8 -3 P10 P4 (i) -2 P5 P7 0 P2 P3 -1 P6 P9 -3 P1 -2 -2 0 1 1 P6 1 P -2 7 -3 0 0 P9 -2 P5 P8 P10 P4 (ii) -3 -2 P5 P7 0 P2 P3 1 P6 P9 -3 P1 -2 P10 P4 -3 (iii) Abbildung 6.15: Lösung des Minzuproblems für den Differenzgraphen aus Abb. 6.14 Es wird zu allen nicht zulässig orientierten Knoten ein Halbweg mit größter Bewertung und darunter kürzester gesucht. Daraus wird wiederum ein Halbweg mit größter Bewertung und darunter kürzester gewählt. In Abb. 6.15 (i) ist P3 P6 P7 ein Halbweg mit größter Bewertung zu P3 und P2 P5 ein Halbweg mit größter Bewertung zu P2 . Damit ist P2 P5 ein größter Halbweg. Ein solcher Halbweg wird nun umgedreht (vergl. Abb. 6.15 (ii)). Das Umdrehen eines Halbweges reduziert wegen Lemma 6.14 die Anzahl der nicht zulässig orientierten Knoten. Die Strategie wird deswegen so lange wiederholt, bis keine nicht zulässig orientierten Knoten mehr existieren. Wegen Lemma 6.14 bedeutet dies, daß sie höchstens so oft wiederholt wird, wie nicht zulässig orientierte Knoten in der ursprünglichen Orientierung des Differenzgraphen existiert haben. In Abb. 6.15 (ii) ist P3 P6 P7 ein größter Halbweg zum (einzigen) nicht zulässig orientierten Knoten P3 . Nach Umdrehen dieses Halbweges entsteht die zulässige Orientierung aus Abb. 6.15 (iii). Für die algorithmische Darstellung des Verfahrens wird der Begriff eines größten und kürzesten Halbweges noch genauer charakterisiert. Es ist ein Halbweg mit größter Bewertung bezüglich aller Halbwege und darunter ein kürzester bezüglich der Anzahl der Kanten. 6.3. LÖSUNG DES MINZUPROBLEMS 229 Es folgt die algorithmische Darstellung des Verfahrens in Algorithmus 6.3. Algorithmus 6.3 (Minzulösung). 1. PROCEDURE 2. BEGIN 3. Orientierung des Differenzgraphen ohne Erzeugung von positiven Kanten; 4. NZ := Menge aller nicht zulässig orientierten Knoten; 5. while (NZ6= {}) 6. ermittle einen größten und kürzesten Halbweg H bezüglich der aktuellen Orientierung des Differenzgraphen; 7. drehe H; 8. NZ:=NZ - nicht zulässig orientierte Knoten, die zu H gehören; 9. END Auf die Bestimmung eines größten und kürzesten Halbweges H bezüglich der aktuellen Orientierung des Differenzgraphen (Zeile 6) wird in Abschnitt 6.3.4 genauer eingegangen. Es soll jetzt noch die entscheidene Tatsache bewiesen werden, daß die durch Algorithmus 6.3 erzielte zulässige Orientierung minimal ist. Wegen Satz 6.4 genügt es dafür zu zeigen, daß eine solche Orientierung keine positiven Wege und Schleifen besitzt. Dazu soll gezeigt werden, daß unter der Voraussetzung der Nicht-Existenz von positiven Wegen, Halbwegen und Schleifen bei dem Umdrehen eines Halbweges nach Algorithmus 6.3 keine positiven Wege und Schleifen entstehen. Da zu Beginn keine positiven Wege, Halbwege und Schleifen existieren, stellt diese Eigenschaft dann eine Invariante dar, d.h. es existieren auch 230 KAPITEL 6. ZERLEGUNGSGRAPHEN nach dem letzten Umdrehen keine positiven Wege und Schleifen. Wegen Lemma 6.14 entsteht schließlich eine zulässige, minimale Orientierung. Es wird zunächst gezeigt: Lemma 6.15. Ein größter und kürzester Halbweg H=AB aus Algorithmus 6.3 enthält keinen Knoten, der zugleich Endknoten und Zwischenknoten von H ist. Insbesondere enhält H keine Schleife. Beweis. Ann.: H=AB enthält einen Knoten K, der zugleich Zwischen- und Endknoten ist. Der Kantenzug zwischen K und K ist eine Schleife, da er gleich orientiert, geschlossen, kantenüberschneidungsfrei und seine Knoten zulässig orientiert sind. Schleifen sind nach Voraussetzung nicht-positiv. Der Kantenzug AK bis zum Knoten K bildet ebenfalls einen Halbweg, da K einen weiteren einlaufenden und auslaufenden Pfeil, nämlich die der Schleife, enthält. Damit ist AK entweder größer als H oder gleich groß wie H, aber kürzer. Widerspruch zur Wahl von H. Der folgende Satz zeigt die gewünschte Invarianz. Satz 6.5. Es sei V eine Orientierung ohne positiven Weg und Halbweg und positive Schleife in einem Differenzgraphen und Hv ein größter und kürzester Halbweg in V. Die Orientierung W wird durch Umdrehen von Hv zu H erreicht. Dann besitzt W ebenfalls keinen positiven Weg und Halbweg und keine positive Schleife. Beweis. Zunächst wird gezeigt, daß W keinen positiven Weg/Halbweg enthält. Anschließend wird gezeigt, daß W keine positive Schleife enthält. Wege/Halbwege: Sei A der Knoten, an dem der Halbweg beginnt, und B der Knoten, an dem er endet (vergl. Abb. 6.16). Œ zeigt H von A fort. Z1 6=A bis Zn 6=B seien die Knoten zwischen A und B. Wegen Lemma 6.15 enthält H keine Schleife. Um zu zeigen, daß durch das Umdrehen von Hv zu H kein positiver Weg/Halbweg entsteht, müssen alle durch das Umdrehen neu entstandenen oder veränderten Wege/Halbwege untersucht werden. Dazu gehören zum einem Wege/Halbwege, die H lediglich berühren (Fall 1), zum anderen solche, die H (teilweise) enthalten (Fall 2). Wege/Halbwege vom Fall 1 haben genau einen Knoten mit H gemeinsam, das sie sonst vom Fall 2 sind oder zu einer Schleife, die H (teilweise) enthält, gehören. 6.3. LÖSUNG DES MINZUPROBLEMS 231 A Z1 Z2 B Abbildung 6.16: Halbweg, der an A beginnt und an B endet Fall 1 a): Wege/Halbwege, die A berühren: Jeder Weg/Halbweg, der A berührt und nicht dort endet, enthält H (teilweise) (s. Fall 2), da die einzige auslaufende Kante an A in H liegt. Wege/Halbwege, die A berühren, dort enden und nicht H (teilweise) enthalten, waren vorher Halbwege und dürfen deswegen nicht positiv sein. Fall 1 b): Wege/Halbwege, die ein Zi berühren: Wird Zi im Fall 1 berührt, muß ein Weg/Halbweg dort enden. Ein solcher Weg/Halbweg in W war schon Weg/Halbweg in V mit gleicher Orientierung und ist deswegen nicht positiv. Fall 1 c): Wege/Halbwege, die B berühren: Falls B in V nicht zulässig orientierter Knoten ist, sind alle von B in W ausgehenden Wege/Halbwege, die H nicht (teilweise) enthalten, bereits Halbwege in V mit gleicher Orientierung und deswegen nicht positiv (vergl. Fall 1 a) für Knoten A). Falls B in V zulässig orientierter Knoten ist, besitzt ein Weg/Halbweg in W, der durch den Knoten B verläuft und H nicht (teilweise) enthält, gleiche Orientierung wie in V und ist deswegen nicht positiv. Wenn B bereits zulässig orientierter Knoten in V ist, ist er inzident zu einer Kante aus H bzw. Hv und zu einem einlaufenden und einem auslaufenden Pfeil. Durch das Umdrehen von Hv wird die in B einlaufende nicht zu H (Hv ) gehörende Kante Startkante zu Wegen/Halbwegen, die in B enden. Ein Weg/Halbweg, der mit dieser Kante beginnt, darf jedoch nicht positiv sein, da dies im Widerspruch zur Wahl eines Halbweges mit größter Bewertung in V (Hv ) steht: Dieser Weg/Halbweg würde mit Hv einen Halbweg mit größe- 232 KAPITEL 6. ZERLEGUNGSGRAPHEN rer Bewertung in V bilden als Hv . Im Fall 2 werden alle Wege/Halbwege betrachtet, die H teilweise oder ganz enthalten. Es wird unterteilt zwischen Wegen/Halbwegen, die einen Kantenzug AZi (Fall AZi ), einen Kantenzug AB (Fall AB), einen Kantenzug Zi Zj (Fall Zi Zj ), einen Kantenzug Zi B (Fall Zi B) enthalten. Dies sind alle Fälle. Innerhalb dieser Fälle müssen Wege betrachtet werden, die vor dem ersten Knoten des betrachteten Kantenzuges beginnen und hinter dem letzten Knoten des betrachteten Kantenzuges enden (Unterfall (i)), die vor dem ersten Knoten des betrachteten Kantenzuges beginnen und auf dem letzten Knoten des betrachteten Kantenzuges enden (Unterfall (ii)), die auf dem ersten Knoten des betrachteten Kantenzuges beginnen und hinter dem letzten Knoten des betrachteten Kantenzuges enden (Unterfall (iii)) und die auf dem ersten Knoten des betrachteten Kantenzuges beginnen und auf dem letzten Knoten des betrachteten Kantenzuges enden (Unterfall (iv)). Es werden nun alle Fälle mit ihren Unterfällen hintereinander diskutiert. Bei den Unterfällen müssen die Orientierungen jeweils so sein, daß die betrachteten Kantenzüge wirklich Halbwege bzw. Wege bilden. Die Diskussion vom Fall AZi (i) erfolgt beispielhaft besonders ausführlich. Die Argumente für die darauffolgenden Fälle sind analog. Fall AZi (vergl. Abb. 6.17): Unterfall (i) (s. Abb. 6.17 (i)): Zeige GHt J ist nicht positiv. Es gilt: (1) kGk ≤ 0, denn da GHt J in W einen Weg/Halbweg bildet, muß G sowohl in V als auch in W einen Weg/Halbweg darstellen. Ein Weg/Halbweg in V darf aber nach Vorausssetzung nicht positiv sein. (2) kHt,v k ≤ 0, denn in V liegt an Zi außer der Kante von Ht,v ein eingehender und ein ausgehender Pfeil an, weswegen Zi Startknoten zur Startkante Zi Zi−1 ist. Ht,v beginnt an einem nicht zulässig orientierten Knoten A und endet an einem Startknoten Zi mit Startkante Zi−1 Zi und ist deswegen (in V) Halbweg. Nach Voraussetzung darf er nicht positiv sein. (3) kHv k ≤ 0: Hv ist nach Voraussetzung Halbweg in V und damit nicht positiv; (4) kJk ≤ 0: Für J erfolgt die Argumentation analog wie für G. Wegen der Wahl von Hv gilt: (5) kHt,v k ≤ kHv k, denn sonst wäre Ht,v entweder größer oder, falls kHt,v k = kHv k gilt, kürzer; (6) kGk ≤ kHv k aus analogen Gründen. Aus (5) folgt direkt: (7) kHe,v k ≥ 0. Weil He,v J Weg/Halbweg in V ist (denn He,v und J sind kantenüberschnei- 6.3. LÖSUNG DES MINZUPROBLEMS A A A G Ht J Zi He,v H G J H v Zi Zi (i) b) H t,v J (iii) a) Zi He B B (ii) a) (ii) b) A Ht B H B A Zi Ht H e,v B A G Ht,v He (i) a) A G Ht,v Hv 233 A Ht,v J Zi Zi B (iii) b) Ht Zi B B (iv) a) (iv) b) Abbildung 6.17: Fall AZi dungsfrei, besitzen die gleiche Orientierung und He,v beginnt und J endet an einem nicht zulässig orientierten Knoten oder an einem Startknoten), gilt: (8) kHe,v Jk ≤ 0. Aus (4),(7) und (8) folgt: (9) kHe k ≥ kJk, denn kHe k = −kHe,v k ist also wegen (7) nicht positiv. Da J wegen (4) ebenfalls nicht positiv ist, folgt mit (8) die Teilbehauptung (9). Aus (9) folgt (10) kHk ≥ kHt Jk, denn H=Ht He . Aus (10) + (6) folgt kGHt Jk ≤ 0, denn aus (6) folgt kGk ≥ kHk, weil G und Hv nicht positiv sind (vergl. (1) und (3)). Mit (10) folgt dann kGk ≥ kHt Jk. Wegen kGk ≤ 0 muß kGHt Jk ≤ 0 gelten. Die Behauptung ist bewiesen. Unterfall (ii) (s. Abb. 6.17 (ii)): Zeige GHt ist nicht positiv. Es gilt: (1) kGk ≤ 0, (2) kHv k ≤ 0 und (3) kHe,v k ≤ 0, da G, Hv und He,v in V We- 234 KAPITEL 6. ZERLEGUNGSGRAPHEN ge/Halbwege sind. Wegen der Wahl von Hv gilt: (4) kHv k ≥ kGk. Aus (1),(2),(3) und (4) folgt: (5) kHt,v k ≥ kGk. Aus (1) + (5) folgt kGHt k ≤ 0, also die Behauptung. Unterfall (iii)+(iv) (s. Abb. 6.17 (iii)+(iv)): Da A kein Startknoten zur ersten Kante von H ist, beginnen hier keine Wege/Halbwege. A A A G Hv A G G Hv H J G H J B B B B (i) a) (i) b) (ii) a) (ii) b) A A A A Hv H Hv J H J B B B B (iii) a) (iii) b) (iv) a) (iv) b) Abbildung 6.18: Fall AB Fall AB (vergl. Abb. 6.18): Unterfall (i) (s. Abb. 6.18 (i)): Zeige GHJ ist nicht positiv. Es gilt: (1) kGk ≤ 0, (2) kHv k ≤ 0 und (3) kJk ≤ 0, da G, Hv und J in V Wege/Halbwege sind. Wegen der Wahl von Hv gilt: (4) kHv k ≥ kGk. Aus (1),(2) + (4) folgt: (5) kGHk ≤ 0. Aus (3) + (5) folgt (6) kGHJk ≤ 0, also die Behauptung. Unterfall (ii) (s. Abb. 6.18 (ii)): Zeige GH ist nicht positiv. Wird wie (5) in (i) gefolgert. Unterfall (iii)+(iv) (s. Abb. 6.18 (iii)+(iv)): Da A kein Startknoten zur ersten Kante von H ist, beginnen hier keine Wege/Halbwege. Fall Zi Zj (vergl. Abb. 6.19): Unterfall (i) (s. Abb. 6.19 (i)): Zeige GHt J 6.3. LÖSUNG DES MINZUPROBLEMS A A Ha,v A Ha Zi 235 G Ht,v Ha,v Zi G Ht J Zj He,v A Ha Zi G H t,v J Zj He Zi G Ht Zj Zj He He,v B B B B (i) a) (i) b) (ii) a) (ii) b) A A A A Ha,v Ha H a,v Zi Zi Ht,v Zi Ht J Zj He,v Ha Zi H t,v J Zj He Ht Zj Zj He,v He B B B B (iii) a) (iii) b) (iv) a) (iv) b) Abbildung 6.19: Fall Zi Zj ist nicht positiv. Es gilt: (1) kGk ≤ 0, (2) kHt,v k ≤ 0, (3) kHt,v He,v k ≤ 0, und (4) kJk ≤ 0, da G, Ht,v , Ht,v He,v und J in V Wege/Halbwege sind. Wegen der Wahl von Hv gilt: (5) kHv k ≥ kHa,v Gk . Aus (5) folgt: (6) kHt,v He,v k ≥ kGk. Außerdem gilt wegen der Wahl von Hv : (7) kHv k ≥ kHa,v Ht,v k und damit (8) kHt,v He,v k ≥ kHt,v k. Mit (1), (2), (3), (4), (6) und (8) liegen für Ht,v He,v die gleichen Bedingungen wie in Fall AZi (i) für Hv vor. Auf gleiche Weise folgt die Behauptung. Unterfall (ii) (s. Abb. 6.19 (ii)): Zeige GHt ist nicht positiv. Es gilt: (1) kGk ≤ 0, (2) kHv k ≤ 0 , (3) kHe,v k ≤ 0, (4) kHt,v He,v k ≤ 0 und (5) kJk ≤ 0, da G, Hv , He,v , Ht,v He,v und J in V Wege/Halbwege sind. Wie in (i) gilt wegen der Wahl von Hv : (6) kHt,v He,v k ≥ kGk. Mit (1), (3), (4) und (6) liegen für Ht,v He,v die gleichen Bedingungen wie in Fall AZi (ii) für Hv vor. 236 KAPITEL 6. ZERLEGUNGSGRAPHEN Auf gleiche Weise folgt die Behauptung. Unterfall (iii) (s. Abb. 6.19 (iii)): Zeige Ht J ist nicht positiv. Es gilt: (1) kGk ≤ 0, (2) kHv k ≤ 0, (3) kHa,v k ≤ 0, und (4) kHa,v Ht,v k ≤ 0 und (5) kHe,v Jk ≤ 0, da G, Hv , Ha,v , Ha,v Ht,v und He,v J in V Wege/Halbwege sind. Wegen der Wahl von Hv gilt: (6) kHv k > kHa,v Ht,v k und (7) kHa,v k ≤ kHv k. Aus (6) folgt: (8) kHe,v k ≥ 0. Aus (7) folgt: (9) kHt,v He,v k > 0. Aus (8) + (9) folgt: (10) kHt k ≤ kHe,v k. Aus (5) +(10) folgt kHt Jk ≤ 0, also die Behauptung. Unterfall (iv) (s. Abb. 6.19 (iv)): Zeige Ht ist nicht positiv. Es gilt: (1) kHa,v k ≤ 0, (2) kHv k ≤ 0 und (3) kHe,v k ≤ 0, da Ha,v , Hv und He,v in V Wege/Halbwege sind. Wegen der Wahl von Hv gilt: (4) kHa,v k < kHv k. Aus (4) folgt: (5) kHt,v He,v k > 0. Aus (3) + (5) folgt: (6) kHt,v k > 0 und daraus die Behauptung. A A Ha,v A Ha Zi G Ht,v A Ha,v Zi G Ht Zi G H t,v J Ha Zi G Ht J B B B B (i) a) (i) b) (ii) a) (ii) b A A A A Ha,v Ha Zi Ha,v Zi Ht,v Ha Zi Ht Zi H t,v J Ht J B B B B (iii) a) (iii) b) (iv) a) (iv) b) Abbildung 6.20: Fall Zi B 6.3. LÖSUNG DES MINZUPROBLEMS 237 Fall Zi B (vergl. Abb. 6.20): Unterfall (i) (s. Abb. 6.20 (i)): Zeige GHt J ist nicht positiv. Es gilt: (1) kGk ≤ 0, (2) kHt,v k ≤ 0, (3) kHv k ≤ 0 und (4) kJk ≤ 0, da G, Ht,v , Hv und J in V Wege/Halbwege sind. (kHt,v k ist in V Weg/Halbweg, da sonst Hv kein Weg/Halbweg wäre.) Wegen der Wahl von Hv gilt: (5) kHv k ≥ kHa,v Gk. Aus (5) folgt: (6) kHt,v k ≥ kGk. Aus (1), (2) + (6) folgt (7) kGHt k ≤ 0. Aus (4) + (7) folgt kGHt Jk ≤ 0, also die Behauptung. Unterfall (ii) (s. Abb. 6.20 (ii)): Zeige GHt ist nicht positiv. Es gelten (1), (2), (3), (5), (6) + (7) wie in Unterfall (i). Mit (7) ist die Behauptung nachgewiesen. Unterfall (iii) (s. Abb. 6.20 (iii)): Zeige Ht J ist nicht positiv. Es gilt: (1) kHa,v k ≤ 0, (2) kHv k ≤ 0 und (3) kJk ≤ 0, da Ha,v , Hv und J in V Wege/Halbwege sind. Wegen der Wahl von Hv gilt: (4) kHv k ≥ kHa,v k. Aus (1), (2) + (4) folgt: (5) kHt,v k > 0. Aus (3) + (5) folgt kHt Jk ≤ 0, also die Behauptung. Unterfall (iv) (s. Abb. 6.20 (iv)): Zeige Ht ist nicht positiv. Es gelten (1), (2), (4) + (5) wie in Fall (ii). Aus (5) folgt kHt k ≤ 0, also die Behauptung. Damit ist gezeigt, daß W keine positiven Wege und Halbwege enthält! Es folgt der Nachweis, daß W keine positiven Schleifen enthält. Schleifen: Ht,v Ht U U V K V K a) b) Abbildung 6.21: Schleifen Es sei Ht ein Teil des umgedrehten Halbweges H und Ht liege innerhalb einer Schleife (es kann auch Ht =H gelten)(vergl. Abb. 6.21). Es gibt einen Knoten U, an dem Ht beginnt, und einen Knoten V, an dem er endet. K sei der Teil der Schleife, der nicht umgedreht wird. Für U6=V gilt: (1) kHt,v k ≤ 0 und (2) kKk ≤ 0, da Ht,v und K in V Wege/Halbwege (unabhängig von der Orientierung der jeweils dritten Kante 238 KAPITEL 6. ZERLEGUNGSGRAPHEN an U und V) sind. Wegen der Wahl von Hv gilt: (3) kHt,v k ≥ kKk. Aus (1), (2) + (3) folgt kHt Kk ≤ 0, also die Behauptung. Für U=V gilt: (1) kHt,v k ≤ 0, da Ht,v eine Schleife in V ist. Ht,v wird aber nur bei kHt,v k > 0 umgedreht, da Hv \Ht,v ein kürzerer Halbweg ist. D.h. U=V kann nicht auftreten. Aus Lemma 6.14 und Satz 6.5 folgt direkt der Satz über die Korrektheit des Algorithmus 6.3. Satz 6.6. Der Algorithmus 6.3 arbeitet in dem Sinne korrekt, daß er eine zulässige, minimale Orientierung erzeugt. Mit Algorithmus 6.3 ist somit ein Verfahren zur Lösung des Minzuproblems gefunden! 6.3.4 Aufwand für Algorithmus 6.3 Abschließend soll die Effizienz des Algorithmus 6.3 nachgewiesen werden. Dazu werden die Schritte einzeln betrachtet. Es sei n die Anzahl der Knoten. Da jeder Knoten maximal vom Grad drei ist, liegt die Anzahl der Kanten in O(n). Zeile 3: Die Orientierung des Graphen ohne Erzeugung von positiven Kanten kann wegen der jeweils lokalen Entscheidung in O(n) Schritten stattfinden. Zeile 4: Die Menge NZ aller nicht zulässig orientierten Knoten kann in O(n) Schritten ermittelt werden, da eine lokale Betrachtung der Knoten dazu ausreicht. Zeile 6: Diese Zeile muß genauer betrachtet werden: Zur Ermittlung von H wird auf den Tripelalgorithmus [Mehl84] (in der Literatur auch Algorithmus von Kleene oder Warshall-Algorithmus genannt) der Graphentheorie zurückgegriffen. Der Tripelalgorithmus berechnet kürzeste oder längste Wege oder Wege mit kleinster oder größter Bewertung für alle Knotenpaare eines Graphen. Zur Anwendung des Algorithmus für dieses Problem müssen die Definition eines Weges im Sinne des Tripelalgorithmus und die Definition eines Halbweges verglichen werden. Weiterhin müssen die Voraussetzungen zur Anwendung des Tripelalgorithmus geschaffen werden. 6.3. LÖSUNG DES MINZUPROBLEMS 239 Ein Weg bezüglich des Tripelalgorithmus ist wie folgt definiert (wird zur Unterscheidung des in dieser Arbeit definierten Weges T-Weg genannt): Definition 96. Gegeben sei ein gerichteter Graph G =(K,P) (K=Menge der Knoten, P=Menge der Pfeile) ohne parallele Pfeile: W=(A0 ...Ai Ai+1 ...Ar ) heißt T-Weg (in G:)⇔ (Ai Ai+1 ) ∈ P, i=0(1)r-1. Der T-Weg unterscheidet sich also zum einen in seiner Voraussetzung bezüglich des Graphen, auf dem operiert wird, vom Halbweg, denn (orientierte) Differenzgraphen dürfen parallele Pfeile besitzen. Da es jedoch Ziel ist, einen größten und kürzesten Halbweg (vergl. Seite 228) zu finden, genügt es, einen Graphen zu betrachten, der durch Wegnahme von parallelen Pfeilen im ursprünglichen (orientierten) Differenzgraphen in der Art entsteht, daß jeweils genau ein Pfeil mit größter Bewertung bezüglich der jeweiligen parallelen Pfeile übrig bleibt. Denn ein größter und kürzester Halbweg im auf diese Weise modifizierten (orientierten) Differenzgraphen bildet auch einen größten und kürzesten Halbweg im ursprünglichen (orientierten) Differenzgraphen. Außerdem besitzt ein modifizierter (orientierter) Differenzgraph ebenfalls keine positiven Wege und Schleifen, falls der ursprüngliche (orientierte) Differenzgraph diese nicht besitzt, so daß dadurch keine notwendigen Voraussetzungen verletzt werden. Deswegen wird im folgenden ein solcher modifizierter (orientierter) Differenzgraph ohne parallele Pfeile betrachtet. Zum anderen unterscheidet sich der T-Weg in seiner Definition vom Halbweg. T-Wege dürfen Kanten doppelt enthalten und die Anfangs- und Endknoten von Halbwegen müssen bestimmten Bedingungen genügen. Somit ist nicht jeder T-Weg ein Halbweg. Jeder Halbweg in einem (modifizierten, orientierten) Differenzgraphen ist nach Definition ein T-Weg (ggfs. in entgegengesetzter Richtung, dies wird deutlich beim Vergleich der Definitionen) (vergl. Abb. 6.22). Ein größter und kürzester T-Weg sei analog definiert wie ein größter und kürzester Halbweg. Dann gilt: Lemma 6.16. Gegeben sei ein (mod., or.) Differenzgraph G. Es seien MH = {(A, B); ∃ ein Halbweg von A nach B}; D = {(A, B) ∈ MH ; ∃ ein bezüglich MH größter und kürzester T-Weg von A nach B oder von B nach A}; E = {(A, B); ∃ ein größter und kürzester Halbweg von A nach B}. Dann gilt: D=E. Beweis. 1. Zeige (A,B) ∈ D ⇒ (A,B) ∈ E. Es sei d ein bezüglich MH größter und kürzester T-Weg von A nach B oder von B nach A. Zeige: d ist größter und kürzester Halbweg. Da (A,B) in MH 240 KAPITEL 6. ZERLEGUNGSGRAPHEN B B A (i) A (ii) Abbildung 6.22: Halbweg als T-Weg liegt, gelten für die Anfangs- und Endknoten von d die Bedingungen eines Halbweges. Deswegen genügt es zu zeigen, daß d kantenüberschneidungsfrei ist. Da d größter und kürzester T-Weg bezüglich MH ist, kann d keine Schleife enthalten, da es sonst entweder einen größeren T-Weg oder einen gleich großen aber kürzeren T-Weg gäbe. Damit ist d kantenüberschneidungsfrei und bildet einen Halbweg. Da jeder Halbweg T-Weg oder T-Weg in entgegengesetzter Richtung ist, ist d größter und kürzester Halbweg. Es folgt (A,B) ∈ E. 2. Zeige (A,B) ∈ E ⇒ (A,B) ∈ D. Es sei e ein größter und kürzester Halbweg von A nach B. Dann ist e oder e in entgegengesetzter Richtung T-Weg. Ann.: e sei nicht ein bezüglich MH größter und kürzester T-Weg. Dann ∃ e’ mit: e’ ist ein größerer oder gleich großer und kürzerer T-Weg von A nach B oder B nach A. Dann besitzt e’ keine Schleifen, ist also kantenüberschneidungsfrei und die Anfangs- und Endknoten erfüllen die Bedingungen eines Halbweges. Damit ist e’ Halbweg von A nach B und e nicht größter und kürzester Halbweg von A nach B. Widerspruch zur Voraussetzung. e ist somit bezüglich MH größter und kürzester T-Weg von A nach B oder von B nach A. Es folgt (A,B) ∈ D. Aus dem Beweis von Lemma 6.16 folgt direkt: Folgerung 6.3. Jeder bezüglich MH größte und kürzeste T-Weg von A nach B oder B nach A mit (A,B)∈ MH ist größter und kürzester Halbweg von A nach B und umgekehrt. Wegen Lemma 6.16 und Folgerung 6.3 genügt es einen bezüglich MH größten und kürzesten T-Weg von A nach B oder von B nach A aus allen Paaren (A,B)∈ MH zu ermitteln. 6.3. LÖSUNG DES MINZUPROBLEMS 241 Ob ein Halbweg von A nach B existiert, kann wie folgt leicht festgestellt werden (Ermittlung von MH ): 1. Es muß ein kantenüberschneidungsfreier T-Weg von A nach B oder von B nach A existieren: Existiert ein T-Weg von A nach B bzw. B nach A, so existert auch ein kantenüberschneidungsfreier T-Weg von A nach B bzw. B nach A. (Ob ein T-Weg von A nach B oder B nach A existiert, kann mittels Tripelalgorithmus leicht festgestellt werden (s. nächsten Absatz).) 2. A muß ein nicht zulässig orientierter Knoten sein, B ist entweder ebenfalls nicht zulässig orientiert oder er ist Startknoten. Der Tripelalgorithmus geht prinzipiell so vor, daß zunächst die minimalen oder maximalen Bewertungen von T-Wegen zwischen je zwei Knoten bestimmt werden. Daraus können anschließend die gewünschten Wege ermittelt werden. Ist der Grad der Knoten auf eine Konstante beschränkt, benötigt er dazu (sogar im worst case) nur O(n3 ) Schritte, wobei n die Anzahl der Knoten ist. Da hier ein größter und kürzester Halbweg ermittelt werden soll, werden mittels Tripelalgorithmus zuerst alle größten Bewertungen zwischen je zwei Knoten und dann alle kürzesten Entfernungen zwischen je zwei Knoten ermittelt. Aus diesen Vorgaben wird anschließend ein größter und kürzester T-Weg (Halbweg) ermittelt. Dazu werden zwei Sternalgebren A1 = (β1 : K × K → G, t, ◦, ⊥, 1) und A2 = (β2 : K × K → G, t, ◦, ⊥, 1) benötigt, da der Tripelalgorithmus nur auf Sternalgebren angewendet werden kann. Zur Ermittlung der größten Bewertungen mittels A1 werden für die Abbildung β1 die Bewertungen der Pfeile gewählt. Existiert zu einem Paar (A,B) ∈ K × K kein Pfeil von A nach B, so wird β1 (A,B)=-∞ gewählt. Da der Tripelalgorithmus hier zur Ermittlung von Wegen mit größter Bewertung genutzt werden soll, dürfen keine positiven Schleifen auftreten. Dies ist durch die Anfangsorientierung auf jeden Fall gewährleistet. Für weitere Orientierungen (nach Umdrehen von Halbwegen) ist es wegen Satz 6.5 gewährleistet. Die folgende Algebra A1 = (β1 : K × K → G = R ∪ {∞, −∞}, t = max, ◦ = +, ⊥ = −∞, 1 = 0) mit β1 wie oben beschrieben, beschreibt eine Sternalgebra, mit der nach Tripelalgorithmus für jedes Knotenpaar (A,B)∈ K×K ein Weg mit maximaler Bewertung d(A,B) in einem Graphen gefunden werden kann. (Nachweis, daß A1 eine Sternalgebra ist: 242 KAPITEL 6. ZERLEGUNGSGRAPHEN √ t = max, ◦=+: G ×√ G→G ; ⊥ = −∞, 1 = 0 ∈ G ; bezüglich t = max müssen gelten: √ Kommutativgesetz: max(a,b)=max(b,a) ; √ Assoziativgesetz: max(max(a,b),c)=max(a,max(b,c)) ; √ Idempotenz: max(a,a)=a ; √ ⊥ = −∞ neutral: max(a,-∞)=a ; bezüglich ◦=+ müssen gelten: √ Assoziativgesetz: (a+b)+c=a+(b+c) ; √ 1 = 0 neutral: a+0=0+a=a ; √ ⊥ = −∞ absorbierend: a+ −∞=−∞ +a=−∞ ; Außerdem muß gelten: √ Distributivgesetz: a+max(b,c)=max(a+b,a+c) ) Zur Ermittlung der kürzesten Entfernungen f(A,B) wird folgende Sternalgebra A2 gewählt: A2 = (β2 : K × K → G = R+ ∪ {∞}, t = min, ◦ = +, ⊥ = ∞, 1 = 0) und für β2 gilt: ½ β2 = 1 falls ein Pfeil von A nach B existiert ∞ sonst (6.1) (Ein Nachweis, daß A2 Sternalgebra ist, kann analog zum Nachweis von A1 erfolgen.) Der Tripelalgorithmus wird nun so zu Algorithmus 6.4 modifiziert, daß er einen größten und kürzesten Halbweg ermittelt. Die Ermittlung von d(A,B) und f(A,B) geschieht dabei jeweils mittels Tripelalgorithmus. Satz 6.7. Algorithmus 6.4 ermittelt einen größten und kürzesten Halbweg korrekt. Beweis. d(A,B) und f(A,B) werden nach Tripelalgorithmus korrekt ermittelt. M bildet die Menge derjenigen Paare (A,B), zwischen denen bezüglich MH ein größter T-Weg von A nach B bzw. B nach A liegt. N entspricht der Menge D aus Lemma 6.16. Wegen Lemma 6.16 ist D=E, also der Menge der Paare, zwischen denen ein größter und kürzester Halbweg liegt. Zu einem Element (A,B) dieser Menge (Zeile 8) wird dann ein bezüglich MH größter und kürzester T-Weg von A nach B oder von B nach A ermittelt, der nach Folgerung 6.3 gleichzeitig ein größter und kürzester Halbweg ist. Die Anweisungen in den Zeilen 9-10 und 17-18 garantieren, daß der T-Weg in richtiger Richtung ermittelt und der Halbweg in richtiger Richtung betrachtet wird. 6.3. LÖSUNG DES MINZUPROBLEMS Algorithmus 6.4 (GrößterUndKürzesterHalbweg). 1. PROCEDURE 2. BEGIN 3. ermittle d(A,B) für alle (A,B)∈ K × K; 4. ermittle f(A,B) für alle (A,B)∈ K × K; 5. ermittle MH :={(A,B)∈ K × K; ∃ ein Halbweg von A nach B}; 6. ermittle M:={(A,B)∈ MH ; für die gilt: d(A,B) oder d(B,A) ist bezüglich MH maximal}; 7. ermittle N:={(A,B) ∈ M, für die gilt: d(A,B) ist bezüglich MH maximal → f(A,B) ist bezüglich MH minimal; d(B,A) ist bezüglich MH maximal → f(B,A) ist bezüglich MH minimal}; 8. wähle ein (A,B) ∈ N; 9. falls A nicht zulässig orientierter Knoten, auf den alle Pfeile zeigen 10. vertausche A und B; 11. Weg W:=A; 12. while (Wegende(W) 6= B) 13. 14. aus allen Nachbarn C von A mit d(A,B)=d(A,C)+d(C,B) wähle C’ mit f(A,B)=f(A,C’)+f(C’,B); 15. W=W+C’; 16. A:=C’; 17. 18. 19. END falls A und B vertauscht wurden sortiere die Knoten von W um; 243 244 KAPITEL 6. ZERLEGUNGSGRAPHEN Die Zeilen 12 bis 16 stellen eine Erweiterung des Tripelalgorithmus zur Wegsuche für ein bestimmtes Paar dar: Wegen Zeile 13 wird auf jeden Fall jeweils ein T-Weg mit größter Bewertung und wegen Zeile 14 daraus eine kürzester T-Weg gewählt. Satz 6.8. Algorithmus 6.4 benötigt O(n3 ) Schritte, wobei n die Anzahl der Knoten ist. Beweis. d(A,B) und f(A,B) werden mittels Tripelalgorithmus in O(n3 ) Schritten ermittelt. Die Mengen MH , M und N können in jeweils O(n2 ) Schritten ermittelt werden, da es maximal O(n2 ) Elemente in MH , M und N und K×K gibt: MH kann in O(n2 ) Schritten ermittelt werden: In konstanter Zeit können jeweils die Knoten A und B zu einem Paar (A,B) wie oben beschrieben überprüft werden. Außerdem muß d(A,B) > −∞ oder d(B,A) > −∞ sein, da genau dann ein T-Weg von A nach B bzw. von B nach A existiert. Dies kann ebenfalls in jeweils konstanter Zeit übeprüft werden. Wenn die jeweiligen Maxima bzw. Minima bezüglich der jeweiligen Mengen bekannt sind (können jeweils beim Erzeugen der Mengen bestimmt werden), kann für jedes Knotenpaar (A,B) in konstanter Zeit bestimmt werden, ob d(A,B), d(B,A) bzw. f(A,B), f(B,A) maximal bzw. minimal bezüglich der jeweiligen Mengen sind. Die While-Schleife wird maximal O(n) mal durchlaufen, da jede Kante maximal einmal durchlaufen wird (es gibt nach Voraussetzung keine positiven Schleifen). Die Wahl eines Nachbarn C’ erfolgt in konstanter Zeit, da die Knoten maximal vom Grad drei sind. Ein Umsortieren der Knoten von W braucht O(n) Schritte. Der Aufwand addiert sich deswegen zu maximal O(n3 ) Schritten. Wegen Satz 6.8 benötigt Schritt 4 aus Algorithmus 6.3 O(n3 ) Schritte. Zeile 7: Das Umdrehen von H geschieht in maximal O(n) Schritten, da H maximal O(n) Kanten enthält. I.a. ist jedoch eher eine geringere Anzahl von Kanten von H zu erwarten. Zeile 8: Die Subtraktion des nicht zulässig orientierten Knoten von der Menge der nicht zulässig orientierten Knoten geschieht in konstanter Zeit. Da sich die Menge der nicht zulässig orientierten Knoten NZ in Algorithmus 6.3 pro Schleifendurchlauf um wenigstens eins senkt, gibt es maximal O(n) Schleifendurchläufe. Aus Satz 6.8 und den anderen Überlegungen zu den einzelnen Schritten kann deswegen gefolgert werden: 6.3. LÖSUNG DES MINZUPROBLEMS 245 Satz 6.9. Sei G ein Differenzgraph mit n Knoten. Dann kann Algorithmus 6.3 zu G eine zulässige, minimale Orientierung in O(n4 ) Schritten ermitteln. Bemerkung 6.6. Liegt die Anzahl der nicht zulässig orientierten Knoten im Differenzgraphen mit lokal minimaler Orientierung im konstanten Bereich, dann reduziert sich die gesamte Laufzeit von Algorithmus 6.3 (bei Verwendung des Tripelalgorithmus) damit auf O(n3 ) Schritte. Damit wurde ein effizienter Algorithmus zur Ermittlung einer zulässigen, minimalen Orientierung in einem Differenzgraphen und damit auch in einem Zerlegungsgraphen gefunden! Der Algorithmus dient schließlich zur effizienten Ermittlung einer optimalen Zerlegung der zu zerlegenden Elemente des Erstnetzes. Es sei darauf hingewiesen, daß die Anzahl der zu zerlegenden S-Prismen und 2-3-Elemente (= Anzahl der Knoten im Differenzgraphen = n) i.a. ein Bruchteil aller zu zerlegenden Elemente ist. Der Algorithmus arbeitet also in Relation zur Anzahl aller Elemente des Erstnetzes sehr schnell! 246 KAPITEL 6. ZERLEGUNGSGRAPHEN Kapitel 7 Zusammenfassung und Ausblick In dieser Arbeit wird eine neue Methode für einen 3D-Netzgenerator zur Erzeugung hexaederdominierter 3D-Netze für Fließgewässer für die FE-Methode vorgestellt. Aus der Literatur sind keine Netzgeneratoren und Methoden der Netzgenerierung bekannt, die eine Lösung des hier gestellten Problems mit seinen Rand- und Nebenbedingungen ermöglichen. Da komplexe Geometrien mit komplexen Strömungsvorgängen ein vollständig dreidimensionales numerisches Simulationssystem verlangen, erlangt die 3D-Netzgenerierung für Fließgewässer für die FE-Methode eine große Bedeutung. Das im Rahmen dieser Arbeit entwickelte Verfahren stellt somit einen wichtigen Beitrag für die Praxis und ein Novum dar! Die Nebenbedingungen und Anforderungen stellen eine Herausforderung an die Netzgenerierung dar. Denn durch die Einhaltung der Vertikalbedingung und der (vertikalen) Verfeinerungsanforderungen ist die Generierung von Elementen, die wegen der Elementbedingung zerlegt werden müssen, i.a. nicht vermeidbar. Die Konformitätsbedingung führt dazu, daß i.a. eine ganze Reihe weiterer Elemente in Tetraeder und Prismen zerlegt werden müssen. Es ist gelungen, bei Einhaltung aller Forderungen und Nebenbedingungen eine Methode zur 3D-Netzgenerierung zu entwickeln, die zu zerlegende Elemente geringhält und möglichst viele Hexaeder erzeugt. Das Lösungskonzept sieht vor, zuerst eine Generierung (P-Vernetzung) auf einer Projektionsebene (P-Ebene) durchzuführen. Dazu wird das zu vernetzende Gebiet der P-Ebene in Regionen unterteilt, die durch Polygonzüge entstehen, die entweder ähnlich zu den Höhenlinien einer topographischen Karte erzeugt werden oder zu verfeinernde Gebiete umschließen. In der Projektionsebene findet eine P-Vernetzung mit Vierecken und Dreiecken statt. 247 248 KAPITEL 7. ZUSAMMENFASSUNG UND AUSBLICK Aus diesen werden in einem weiteren Schritt, der 3D-Vernetzung, dreidimensionale Elemente erzeugt: Aus einem Viereck, das in der P-Ebene generiert wurde, wird zu einem späteren Zeitpunkt (3D-Vernetzung) ein Stapel von überwiegend Hexaedern erzeugt; aus einem Dreieck wird in einem späteren Schritt ein Stapel von überwiegend Prismen erzeugt. Die Anzahl der 3DElemente eines Elementstapels wird durch die Region, in der das zugehörige Drei- oder Viereck liegt, bestimmt. Die Regionbildung stellt somit eine sehr sinnvolle Berücksichtigung der unterschiedlichen Höhen des Geländes und der Verfeinerungsanforderungen dar. Durch die Generierung der Elementstapel wird die Vertikalbedingung automatisch eingehalten. Es konnte erreicht werden, daß die gesamte 3D-Vernetzung bereits durch die P-Vernetzung bestimmt wird und das 3D-Netz eindeutig aus dem P-Netz hervorgeht. Diese Tatsache trägt zu einer einfacheren und übersichtlicheren Vernetzung bei. Leider können bei der Erzeugung eines Elementstapels auch nicht zulässige Elemente entstehen, die noch zerlegt werden müssen. Zur Einhaltung der Konformitätsbedingung muß deswegen i.a. eine ganze Reihe weiterer Elemente ebenfalls zerlegt werden. Konflikt- und Zerlegungsdreiecke und -vierecke sind diejenigen Elemente der P-Ebene, aus denen bei der 3D-Vernetzung zu zerlegende Elemente entstehen. Zerlegungspfade bilden eine Reihe von Zerlegungsvierecken. Konfliktvierecke lösen Zerlegungspfade aus. Sie sind nicht gänzlich vermeidbar, insbesondere nicht an den Stellen, an denen P-Knoten in der P-Ebene benachbart sind, denen bei der 3D-Vernetzung unterschiedlich viele Knoten zugeordnet werden, die also unterschiedliche Tiefenwerte besitzen. Diese sind durch die Integration von Verfeinerungsanforderungen in der Regel unvermeidbar. Es stellt sich in Kapitel 4 heraus, daß es sinnvoll ist, ausschließlich als Konfliktelemente Konfliktdreiecke zu erzeugen. In Kapitel 4 werden die Möglichkeiten für Bereiche, bei denen voraussichtlich Konfliktdreiecke generiert werden müssen, besonders sorgfältig betrachtet, um möglichst viele davon abzudecken. Deswegen werden auch außer den am Beispiel aufgetretenen Situationen viele weitere Möglichkeiten und Kombinationen aufgelistet. Es werden dazu verschiedene Fälle der Lage und Winkel der Polygone überprüft und Kombinationen daraus gebildet. Die Auflistung der Fälle und die Kombinationen aus je zwei Fällen erscheint vollständig. Durch dieses Vorgehen werden auch Verfeinerungsanforderungen in vertikaler Richtung voll integriert. Zur Geringhaltung der Zerlegungspfade wird schließlich zum Ziel gesetzt, diese möglichst entlang der Randelemente laufen zu lassen. Das minimiert zum einen ihre Anzahl, da es teilweise unvermeidlich ist, Zerlegungspfade entlang der Randelemente laufen zu lassen, zum anderen vereinfacht es den Umgang 249 mit ihnen. Trotzdem kann es unvermeidbar sein, Zerlegungspfade auch außerhalb der Randelemente zu führen. Durch dieses Verfahren der Führung von Zerlegungspfaden werden zu zerlegende Elemente gering gehalten, so daß letzlich möglichst viele Hexaeder entstehen. Außerdem wird durch die Erzeugung der Zerlegungspfade der Grundstein zur Einhaltung der Konformitätsbedingung gelegt. Kapitel 5 gibt schließlich detaillierte Lösungen für die in Kapitel 4 dargestellten Teilaufgaben der P-Vernetzung an. Durch die Methode ist es möglich, die Vernetzung der einzelnen Bereiche lokal durchzuführen, was letztlich das gesamte Verfahren der Netzgenerierung effizient macht. Die P-Vernetzung hat - wie bereits erwähnt - den großen Vorteil, daß die in dem daraus entstandenen 3D-Netz zu zerlegenden Elemente bereits genau festgelegt sind. Außerdem wird durch die P-Vernetzung eine Geringhaltung dieser Elemente forciert. Die Methode führt darüberhinaus dazu, daß die (in Prismen und Tetraeder) zu zerlegenden Elemente ausschließlich aus 2-3Elementen (Pyramiden), Hexaedern und Prismen bestehen. Eine Zerlegung soll unter Einhaltung der Konformitätsbedingung in möglichst wenige Elemente geschehen und ist bezüglich der Oberflächenzerlegungen der Elemente nicht beliebig möglich. Die Qualität der zerlegten Elemente hängt von der Art der Zerlegung ab. Es entsteht somit ein spezielles Optimierungsproblem. Dieses Problem wird in Kapitel 6 auf ein graphentheoretisches Orientierungsproblem übertragen: In einem Graphen mit ausschließlich Knoten vom Grad drei oder eins soll eine zulässige und minimale Orientierung ermittelt werden (wird in dieser Arbeit Minzuproblem genannt). Für dieses Problem wird ein effizienter Algorithmus vorgestellt, der im worst case O(n4 ) Schritte benötigt, wobei n die Anzahl aller Knoten (= Anzahl zu zerlegender S-Prismen und 2-3-Elemente (Bruchteil aller Elemente)) ist: Von einer minimalen, aber nicht notwendigerweise zulässigen Orientierung werden sukzessiv bestimmte Kantenzüge (Halbwege) umorientiert, so daß schließlich eine zulässige und minimale Orientierung entsteht. Dies funktioniert nur, weil jeweils ein größter und kürzester Halbweg umgedreht wird und somit eine Invariante erhalten bleibt. Der Algorithmus greift bei der Suche eines jeweils größten und kürzesten Halbweges auf den Tripelalgorithmus zurück. Entscheidend ist außerdem der Satz über die Äquivalenz von zulässig orientierten Graphen und die Möglichkeit den Graphen in disjunkte Wege zu zerlegen. Mit diesem Algorithmus ist eine im Rahmen dieser Arbeit entwickelte neue effiziente Lösung gefunden! Aus der Literatur sind zu diesem Problem keine Lösungen bekannt. 250 KAPITEL 7. ZUSAMMENFASSUNG UND AUSBLICK Mit dem Verfahren werden zugleich die Konformitäts- und die Elementbedingung für die 3D-Netzgenerierung eingehalten! Die vorliegende Arbeit ist somit eine umfassende Darstellung einer neuen Methode zur Erzeugung von 3D-Netzen für Fließgewässer, die alle Anforderungen und Nebenbedingungen berücksichtigt. Dabei werden viele Fälle des Auftretens von Konfliktdreiecken betrachtet und behandelt. Eine gewünschte Verfeinerung von Bereichen bezüglich der Tiefe konnte voll integriert werden. Es kann jedoch nicht ausgeschlossen werden, daß Fälle für Konfliktdreiecke auftreten können, die hier nicht behandelt wurden. Eine Kombination solcher Fälle wurde hauptsächlich bezüglich zweier Fälle betrachtet. Die Untersuchung von Kombinationen mehrerer Fälle würde eine Erweiterung darstellen. Dabei ist es vielleicht sinnvoll, vorher die Häufigkeit solcher Kombinationen zu untersuchen. Durch Aufheben der Schichtforderung kann es in einigen Bereichen ggfs. zu einer Reduzierung von zu zerlegenden Elementen kommen. Die Handhabung hiermit bedarf jedoch großer Vorsicht und genauerer Untersuchungen, die wegen ihres Umfangs hier nicht diskutiert werden. Eine Qualitätverbesserung für die Bereiche außerhalb der Zerlegungspfade kann evtl. durch eine noch besser angepaßte Vernetzung, bei der hauptsächlich Vierecke und nur falls notwendig Dreiecke generiert werden, erzielt werden. Hierfür können weitere Verfahren aus der Literatur untersucht werden ([Lee99] [Zhon00]). Darüberhinaus kann eine (bessere) Verfeinerung auch in horizontaler Richtung stattfinden. Z.B. könnten dazu bereits existierende Verfahren aus [Geog91] an das in dieser Arbeit beschriebene Verfahren angepaßt werden! Eine Integration der Berücksichtigung von Einbauten ist ebenfalls möglich. Literaturverzeichnis [Bale99] Balendran B. (1999), A Direct Smoothing Method for Surface ” Meshes“, proceedings 8th Int. Meshing Roundtable, Sandia National Laboratories. [Blac00] Blacker T. (2000), Meeting the Challenge for Automated Con” formal Hexahedral Meshing“, proceedings 9th Int. Meshing Roundtable, Sandia National Laboratories. [Blac96] Blacker T. (1996), The Cooper Tool“, proceedings 5th Int. ” Meshing Roundtable, Sandia National Laboratories, pp. 13-29. [Blac91a] Blacker T., Stephenson M. (1991), Paving: A new ap” proach to automated quadrilateral mesh generation“, International Journal for Numerical Methods in Engineering, vol. 32, pp. 811-47. [Blac91b] Blacker T., Stephenson M., Canann S. (1991), Analysis ” automation with paving: a new quadilateral meshing technique“, Advances in Engineering Software & Workstations, vol. 13, no. 5-6, Sept.Nov. 1991, pp. 332-7. UK. [Bord00] Borden M., Benzley S., Mitchell S.A., White D.R., Meyers R. (2000), The cleave and fill tool: An all-hexahedral re” finement algorithm for sweept meshes“, proceedings 9th Int. Meshing Roundtable, Sandia National Laboratories. [Cana98] Canann S., Tristano J. Staten M. (1998), An Approach to ” Combined Laplacian and Optimization-Based Smoothing for Triangular, Quadrilateral, and Quad-Dominant Meshes“, proceedings 7th Int. Meshing Roundtable, Sandia National Laboratories. [Chen98] Cheng B., Topping BHV. (1998), Improved adaptive quadri” lateral mesh generation using fission elements“, Advances in Engineering Software, vol. 29, no. 7-9, Aug.- Nov. 1998, pp. 733-44. Publisher: Elsevier, UK. 251 252 LITERATURVERZEICHNIS [Chri75] Christofides N. (1975), Graph Theory: An Algorithmic Ap” proach“, Computer Science and Applied Mathematics: A series of monographs and textbooks. Academic Press London. [Dohr99] Dohrmann C., Key S. (1999), A transition element for uniform ” strain hexahedral and tetrahedral finite elements“, International Journal for Numerical Methods in Engineering, vol. 44, no 12, 30 April 1999, pp. 1933-50. Publisher: Wiley,UK. [Geog91] George P.L. (1991), Automatic Mesh Generation - Application ” to Finite Element Methods“, John Wiley & Sons. [Koen97] Könen O. (1997), Triangulationsmethoden zur Generierung di” gitaler Geländemodelle“, Diplomarbeit am Lehrstuhl für Angewandte Mathematik insbesondere Informatik, RWTH Aachen. [Kucw00] Kucwaj J.(2000), Generation of hybrid grids over plane do” mains“, Inst. Fundamental Technol. Res. Computer Assisted Mechanics & Engineering Sciences, vol. 7, no. 4, pp. 607-14. Poland. [Lee99] Lee CK. (1999), Automatic adaptive mesh generation using me” tric advancing front approach.“, Engineering Computations (Swansea, Wales), vol. 16, no. 2, pp. 230-63. Publisher: MCB University Press, UK. [Liu97] Liu S., Gadh R. (1997), Automatic Hexaehedral Mesh Gene” ration by Recursive Convex and Swept Volume Decomposition“, proceedings 6th Int. Meshing Roundtable, Sandia National Laboratories, pp.217-31. [Mehl84] Mehlhorn K. (1984), Data Structures and Algorithms 2: ” Graph Algorithms and NP-Completeness“, EATCS Monographs on Theoretical Computer Science. Springer-Verlag. [Mesh00] Meshkat S., Dafna T. (2000), Generating a mixed mesh of ” hexahedra, pentahedra and tetrahedra from an underlying tetrahedral mesh“, International Journal for Numerical Methods in Engineering, vol. 49, pp. 17-30. [Meye98] Meyers R.J., Tautges T.J. (1998), The Hex-Tet Hex” Dominant Meshing Algorithm as Implemented in CUBIT“, proceedings 7th Int. Meshing Roundtable, Sandia National Laboratories, pp. 151158. LITERATURVERZEICHNIS 253 [Miyo00] Miyoshi K., Blacker T. (2000), Hexahedral Mesh Generati” on using Multi-axis Cooper Algorithm“, proceedings 9th Int. Meshing Roundtable, Sandia National Laboratories. [Owen00] Owen S.J., Saigal S. (2000), H-Morph: an indirect approach ” to advancing front hex meshing“, International Journal for Numerical Methods in Engineering, vol. 49, Issue 1-2, pp. 289-312. [Schn95] Schneider R. (1995), Automatic Generation of Hexahedral Fi” nite Element Meshes“, proceedings 4th Int. Meshing Roundtable, Sandia National Laboratories, pp. 103-114. [Schö28] Schönhardt E. (1928), über die Zerlegung von Dreieckspoly” edern in Tetraeder“, Mathematische Annalen, 98:309-312, 1928. [Schu97] Schumann (1997), Optimierung von Polygonzügen zur 2D” Gittervernetzung“, Diplomarbeit am Lehrstuhl für Angewandte Mathematik insbesondere Informatik, RWTH Aachen. [Shep00] Shepherd J., Mitchell, S.A., Knupp, P. White D. (2000), Methods for Multisweep automation“, proceedings 9th Int. Meshing ” Roundtable, Sandia National Laboratories. [Shef99] Sheffer A., Etzion M. Rappoport A., Bercovier M. (1999), Hexahedral Mesh Generation using the Embedded Voronoi ” Graph (1999)“, Engineering with Computers (1999), vol. 15, pp. 248262, Springer Verlag London. [Stat98] Staten M.L., Canann S.A., Owen S.J. (1998), BMSweep: ” Locating Interior Nodes During Sweeping“, proceedings 7th Int. Meshing Roundtable, Sandia National Laboratories, pp.7-17. [Step92] Stephenson M.B., Canann S.A., Blacker T. D., Meyers R.J.(1992), Plastering Progress Report I“, SAND89-2192, Sandia Na” tional Laboratories. [Stol97] Stolze K. (1997), Entwicklung eines Generators hybrider 2D” Netze für Eingabepolygone mit Nebenbedingungen“, Diplomarbeit am Lehrstuhl für Angewandte Mathematik insbesondere Informatik, RWTH Aachen. [Taut96] Tautges T., Blacker T., Mitchell S. (1996), The Whisker ” Weaving Algorithm: A Connectivity-Based Method for Constructing All-Hexahedral Finite Element Meshes“, International Journal for Numerical Methods in Engineering, vol. 39, pp. 3327-49. 254 LITERATURVERZEICHNIS [Tuch97] Tuchinsky P.M., Brett W.C. (1997), The HexTet Hex” Dominant Automesher: An Interim Progress Report“, proceedings 6th Int. Meshing Roundtable, Sandia National Laboratories. [Yerr84] Yerry M.A., Shephard M.S. (1984), Automatic 3D mesh ge” neration by the modified-octree technic“, International Journal for Numerical Methods in Engineering, vol. 20, pp. 1965-90. [Yoan99] Yoantoro M. (1999), Erweiterte Optimierung von Poly” gonzügen zur Gittervernetzung“, Diplomarbeit am Lehrstuhl für Informatik VII, RWTH Aachen. [Zhon00] Zhong-Yi M., Yu-Qing F. (2000), A modified paving tech” nique for quadrilateral mesh generation in planar regions.“, Journal of Computer Aided Design & Computer Graphics, vol. 12, no. 6, June 2000, pp. 428-34. Publisher: Science Press, China. [Zhou00] Zhou T, Shimada K. (2000), An angle-based approach to two” dimensional mesh smoothing“, proceedings 9th Int. Meshing Roundtable, Sandia National Laboratories. Index Anpassungselement . . . . . . . . . . . 74 Anschlußknoten . . . . . . . . . . . . . . 66 nebeneinanderliegende . . . 155 zweifacher . . . . . . . . . . . . . . . 155 Aufspaltung . . . . . . . . . . . . . . . . . 209 Auslaufebene . . . . . . . . . . . . . . . . . . . . .15 polygon . . . . . . . . . . . . . . . . . . 17 strecke . . . . . . . . . . . . . . . . . . . 15 viereck . . . . . . . . . . . . . . . . . . . 31 Ausreißerregion . . . . . . . . . . . . . . .27 Berandungspolygon . . . . . . . . . . 17 Bereich aktueller . . . . . . . . . . . . . . . . 160 kritischer . . . . . . . . . . . . . . . . . 66 Bewertung einer Orientierung einer Z-Kante . . . . . . . . . . . . . . . . 210 eines (orientierten) Differenzgraphen . . . . . . . 218 eines Weges oder einer Schleife . . . . . . . . . . . 217 Gesamt- . . . . . . . . . . . . . . . . . 211 Block . . . . . . . . . . . . . . . . . . . . . . . 110 Dreieck gutes . . . . . . . . . . . . . . . . . . . . . 29 EinKantenDreieck . . . . . . . 125 EinKnotenDreieck . . . . . . . 125 P- . . . . . . . . . . . . . . . . . . . . . . . . 17 -paar s. . . . . . . . I-Dreieckpaar Differenz(zerlegungs)graph . . 211 DKL . . . . . . . . . . . . . . . . . . . . . . . . . 27 DKL(k1 , k2 ) . . . . . . . . . . . . . . . . . 167 Doppel-bogenproblem . . . . . . . . . . 183 -paarvergleich . . . . . . . . . . . 163 Ecke . . . . . . . . . . . . . . . . . . . . . . . . . 25 direkt benachbarte . . . . . . . 96 EinKantenDreieck . . . . . . . . . . . 125 benachbarte . . . . . . . . . . . . . 130 EinKnotenDreieck . . . . . . . . . . . 125 Einlauf-ebene . . . . . . . . . . . . . . . . . . . . 15 -polygon . . . . . . . . . . . . . . . . . . 17 -strecke . . . . . . . . . . . . . . . . . . . 15 -viereck . . . . . . . . . . . . . . . . . . .31 Element 1-3- . . . . . . . . . . . . . . . . . . . . . . 56 1-4- . . . . . . . . . . . . . . . . . . . . . . 44 2-4- . . . . . . . . . . . . . . . . . . . . . . 44 2-3- . . . . . . . . . . . . . . . . . . . . . . 55 3-4- . . . . . . . . . . . . . . . . . . . . . . 43 -bedingung . . . . . . . . . . . . . . . 10 NHPT- . . . . . . . . . . . . . . . . . . . 30 -schicht . . . . . . . . . . . . . . . . . . . 23 -stapel . . . . . . . . . . . . . . . . . . . .20 *-3- . . . . . . . . . . . . . . . . . . . . . . 56 *-4- . . . . . . . . . . . . . . . . . . . . . . 44 Erstnetz . . . . . . . . . . . . . . . . . . . . . . 33 Folge von umzudrehenden Teilwegen . . . . . . . . . . . . . . . . . . 222 Geländemodell, digitales . . . . . . 13 Gesamtbewertung . . . . . . . . . . . 211 Gitterverfahren . . . . . . . . . . . . . . . 68 Halbweg . . . . . . . . . . . . . . . . . . . . .227 größter und kürzester . . . . 228 255 256 Umdrehen eines . . . . . . . . . 227 HEX-Template . . . . . . . . . . . . . . . 50 Höhendreieckmodell . . . . . . . . . . 21 Höhenschnittpolygon . . . . . . . . . 22 i-3-Template . . . . . . . . . . . . . . . . . 57 i-4-Template . . . . . . . . . . . . . . . . . 50 I-Dreieck . . . . . . . . . . . . . . . . . . . . 159 benachbarte . . . . . . . . . . . . . 160 I-Dreieckpaar benachbart . . . . . . . . . . . . . . 160 nicht verbindbar . . . . . . . . . 161 Kante . . . . . . . . . . . . . . . . s. Z-Kante Kehrtwende . . . . . . . . . . . . . . . . . . 71 Knoten-einheit . . . . . . . . . . . . . . . . . .111 -schicht . . . . . . . . . . . . . . . . . . . 23 -tiefenwert . . . . . . . . . . . . . . . . 17 Konflikt-dreieck . . . . . . . . . . . . . . . . . . 30 -dreieckkandidat . . . . . . . . . . .42 -element . . . . . . . . . . . . . . . . . . 30 -elementkandidat . . . . . . . . . 42 -layer . . . . . . . . . . . . . . . . . . . . . 30 -viereck . . . . . . . . . . . . . . . . . . .30 -viereckkandidat . . . . . . . . . . . 42 konform . . . . . . . . . . . . . . . . . . . . . . 10 Konformitätsbedingung . . . . . . .11 Kontur . . . . . . . . . . . . . . . . . . . . . . . 19 Kosten eines Zerlegungsgraphen . . . . . . . . . . 65 ±90◦ -Kriterium . . . . . . . . . . . . . . 73 Kritischer Bereich . . . . . . . . . . . . 66 Länge eines Zerlegungspfades . 31 Minzuproblem . . . . . . . . . . . . . . .211 Netz . . . . . . . . . . . . . . . . . . . . . . . . . . .5 Erstnetz . . . . . . . . . . . . . . . . . . 33 hybrides 2D-Netz . . . . . . . . . . . . . . . . . 5 3D-Netz . . . . . . . . . . . . . . . . . 7 struktuiertes . . . . . . . . . . . . . . . 5 unstrukturiertes . . . . . . . . . . . 5 INDEX nicht vernetzbar . . . . . . . . . . . . . . 90 Null-Region . . . . . . . . . . . . . . . . . 104 Orientierung, zulässige eines Differenzgraphen . . . 212 eines Zerlegungsgraphen . 209 P-Dreieck . . . . . . . . . . . . . . . . . . . . 17 P-Ebene (Projektionsebene) . . 16 P-Element . . . . . . . . . . . . . . . . . . . .17 Anpassungselement . . . . . . . 74 heteroformes . . . . . . . . . . . . . 41 Randelement . . . . . . . . . . . . . 19 uniformes . . . . . . . . . . . . . . . . .41 P-Gebiet . . . . . . . . . . . . . . . . . . . . . 17 P-Kanten . . . . . . . . . . . . . . . . . . . . 17 P-Knoten . . . . . . . . . . . . . . . . . . . . 17 P-Netz . . . . . . . . . . . . . . . . . . . . . . . 16 P-Region . . . . . . . . . . . . . . s. Region P-Uferpolygon . . . . . . . . . . . . . . . . 17 Polygonteile einer schmalen Region . . . . . . . . . . . . . . . . . . . . . . 27 P-Vernetzung . . . . . . . . . . . . . . . . .17 P-Viereck . . . . . . . . . . . . . . . . . . . . . 17 Polygonabschnitt . . . . . . . . . . . . . 25 PRIS-S-Template . . . . . . . . . . . . . 57 PRIS-W-Template . . . . . . . . . . . . 50 P-Zerlegungspfad . . . . . . . . . . . . . . . . . . . . . . . . . . . . . s. Zerlegungspfad Querprofil . . . . . . . . . . . . . . . . . . . . 13 Randelement . . . . . . . . . . . . . . . . . 19 Region . . . . . . . . . . . . . . . . . . . . . . . 18 Null-Region . . . . . . . . . . . . . 104 schmale . . . . . . . . . . . . . . . . . . 27 Polygonteile einer . . . . . . . 27 Übergangsbereich einer . 71 Tiefenwert einer . . . . . . . . . . 19 Schicht . . . . . . . . . . . . . . . . . . . . . . . 23 Schichtforderung . . . . . . . . . . . . . 29 Schleife . . . . . . . . . . . . . . . . . . . . . 217 positive . . . . . . . . . . . . . . . . . 218 negative . . . . . . . . . . . . . . . . . 218 Schleifenfolge von INDEX umzudrehenden Teilwegen . 223 Schmale Region . . . . . . . s. Region Schnittknoten . . . . . . . . . . . . . . . . 25 Schnittpolygon . . . . . . . . . . . . . . . 22 Seitenknoten/Anschlußknoten 66 Senkrechtvektor . . . . . . . . . . . . . 167 S-Prisma . . . . . . . . . . . . . . . . . . . . . 56 Startkante zu einem Kantenzug . . . . . 227 zu einem Weg . . . . . . . . . . . 212 Startknoten zu einem Kantenzug . . . . . 227 zu einem Weg . . . . . . . . . . . 212 Subtraktion eines Templates . . 50 Teilweg . . . . . . . . . . . . . . . . . . . . . 220 TET-Template . . . . . . . . . . . . . . . 57 Template HEX- . . . . . . . . . . . . . . . . . . . . 50 i-3- . . . . . . . . . . . . . . . . . . . . . . . 57 i-4- . . . . . . . . . . . . . . . . . . . . . . . 50 PRIS-S- . . . . . . . . . . . . . . . . . . 57 PRIS-W- . . . . . . . . . . . . . . . . . 50 TET- . . . . . . . . . . . . . . . . . . . . .57 Subtraktion eines . . . . . . . . . 50 t-Fall . . . . . . . . . . . . . . . . . . . . . . . . . 68 Tiefenwert eines P-Elements . . . . . . . . . 19 eines P-Knotens . . . . . . . . . . 18 einer (P-)Region . . . . . . . . . . 19 T-Weg . . . . . . . . . . . . . . . . . . . . . . 239 t+x-Fall . . . . . . . . . . . . . . . . . . . . . . 68 Überblock . . . . . . . . . . . . . . . . . . . 116 Übergangsbereich einer schmalen Region . . . . . . . . . . . . 71 Übergangskante . . . . . . . . . . . . . 120 Überschneidung approximierte . . . . . . . . . . . 179 Uferpolygon . . . . . . . . . . . . . . . . . . 15 Umdrehen einer Schleife . . . . . . . . . . . . 218 eines Halbweges . . . . . . . . . 227 257 eines Weges . . . . . . . . . . . . . 218 Verbindungskante . . . . . . . . . . . . 89 Vereinigung . . . . . . . . . . . . . . . . . 209 Verfeinerungs-anforderung . . . . . . . . . . . . . 12 -bereich . . . . . . . . . . . . . . . . . . 24 -faktor . . . . . . . . . . . . . . . . . . . 24 -grad . . . . . . . . . . . . . . . . . . . . . 24 -polygon . . . . . . . . . . . . . . . . . .22 Vernetzung2D- . . . . . . . . . . . . . . . . . . . . . . . . 5 2 1/2-D- . . . . . . . . . . . . . . . . . . 19 3D- . . . . . . . . . . . . . . . . . . . . 5, 17 P- . . . . . . . . . . . . . . . . . . . . . . . . 17 Vertikalbedingung . . . . . . . . . . . . 11 Viereck gutes . . . . . . . . . . . . . . . . . . . . . 29 P- . . . . . . . . . . . . . . . . . . . . . . . . 17 -reihe . . . . . . . . . . . . . . . . . . . . . 73 Weg . . . . . . . . . . . . . . . . . . . . . . . . . 212 Bewertung eines . . . . . . . . . 217 negativer . . . . . . . . . . . . . . . . 218 nicht-erweiterbarer . . . . . . 213 positiver . . . . . . . . . . . . . . . . .218 Startkante zu einem . . . . . 212 Startknoten zu einem . . . . 212 Umdrehen eines . . . . . . . . . 218 Wegfolge von umzudrehenden Teilwegen . . . . . . . . . . . . . . . . . . 223 W-Prisma . . . . . . . . . . . . . . . . . . . . 44 Zacke . . . . . . . . . . . . . . . . . . . . . . . . 66 nahe bei . . . . . . . . . . . . . . . . . . 69 nahe beieinander liegende 139 nebeneinanderliegende . . . . 69 Spitzenknoten einer . . . . . . .66 Zerlegung, zulässige . . . . . . . . . 208 Zerlegungs-dreieck . . . . . . . . . . . . . . . . . . 62 -dreieckkandidat . . . . . . . . . . 63 -element . . . . . . . . . . . . . . . . . . 37 -graph . . . . . . . . . . . . . . . . . . . . 65 258 Kosten eines . . . . . . . . . . . . 65 -pfad . . . . . . . . . . . . . . . . . . . . . 31 3D- . . . . . . . . . . . . . . . . . . . . . 32 approximierter . . . . . . . . 178 Länge eines . . . . . . . . . . . . . 31 (P-) . . . . . . . . . . . . . . . . . . . . 31 Qualität eines . . . . . . . . . 161 Weiterleitung eines . . . . . 63 -richtung eines Konfliktdreiecks . . . . . . . . . 60 -layer eines P-Elements eines Zerlegungspfades . . . . . . 32 eines Zerlegungspfades . . 32 eines Zerlegungsdreiecks 63 -viereck . . . . . . . . . . . . . . . . . . .32 Z-Kante . . . . . . . . . . . . . . . . . . . . . . 64 negative . . . . . . . . . . . . . . . . . 217 positive . . . . . . . . . . . . . . . . . 217 Z-Knoten . . . . . . . . . . . . . . . . . . . . .64 zulässig orientierter Z-Knoten in einem Differenzgraphen . . . . . . 212 Zerlegungsgraphen . . . . . 209 ZweiKantenDreieck . . . . . . . . . . 125 INDEX Lebenslauf Name: Geburtsdatum: Geburtsort: Familienstand: Staatsangehörigkeit: Konfession: Irmgard Dittrich, geb. Spies 25.09.1967 Eschweiler verheiratet mit Ralf Dittrich seit dem 18.12.1996 deutsch römisch-katholisch 1974-1978 1978-1987 Grundschule Eschweiler-Bergrath Liebfrauenschule Eschweiler Abschluss: Allgemeine Hochschulreife Studium der Informatik mit dem Nebenfach Mathematik an der RWTH Aachen Abschluss: Diplom in Informatik Wissenschaftliche Hilfskraft am Lehrstuhl für Verkehrswirtschaft, Eisenbahnbau und -betrieb der RWTH Aachen Wissenschaftliche Hilfskraft bzw. Wissenschaftliche Angestellte am Lehrstuhl für Angewandte Mathematik insbesondere Informatik bzw. am Lehrstuhl für Informatik VII der RWTH Aachen Fertigstellung der Dissertation und Promotion 10.87-10.94 11.94-3.95 4.95-7.95 8.95-8.00 seit 9.00 6.90-8.90 WS 90/91, SS 91 Studentische Hilfskraft am Forschungszentrum Jülich Studentische Hilfskraft am Lehrstuhl für Angewandte Mathematik insbesondere Informatik der RWTH Aachen