Die Arbeit als PDF - Universität Osnabrück
Die Arbeit als PDF - Universität Osnabrück
Die Arbeit als PDF - Universität Osnabrück
Sie wollen auch ein ePaper? Erhöhen Sie die Reichweite Ihrer Titel.
YUMPU macht aus Druck-PDFs automatisch weboptimierte ePaper, die Google liebt.
7 Isoliniendarstellung<br />
7.2 Linefollowing Algorithmen<br />
William V. Snyder beschreibt im Jahr 1978, ausgehend von einem zweidimensionalen Array<br />
mit skalaren Werten und der Angabe von Isowerten, allgemein das Zeichnen von Konturlinien<br />
bzw. Isolinien [Snyder]. Er stellt dabei unter anderem eine Möglichkeit vor, um geschlossene<br />
Isolinien zu finden. Dabei werden Isolinien ausgehend von einem Startpunkt durch das<br />
gesamte Raster verfolgt, bis sie einen geschlossenen Linienzug bilden oder den Rand des<br />
Gitters schneiden.<br />
7.2.1 Berechnung der Isolinien<br />
Der Linefollowing Algorithmus von Snyder basiert auf einem zweidimensionalen Raster in<br />
Form eines Arrays und einer Liste von Isowerten. Der Algorithmus lässt sich in vier wesentliche<br />
Schritte einteilen:<br />
1. Das Raster wird zeilenweise durchlaufen. Jede Kante einer Rasterzelle wird auf Schnittpunkten<br />
mit Isolinien untersucht. Liegt ein gesuchter Isowert zwischen den Werten<br />
zweier Rasterpunkte, existiert ein Schnittpunkt.<br />
2. Falls eine Gitterkante mit einem gesuchten Isowert gefunden wurde, werden die Koordinaten<br />
des Schnittpunktes durch lineare Interpolation berechnet. Danach wird vermerkt,<br />
dass auf der Gitterkante der Isowert gefunden wurde, damit die Kante nicht<br />
erneut untersucht wird.<br />
3. Der Algorithmus untersucht nun die zweite Rasterzelle, die an der Gitterkante mit dem<br />
gefundenen Isowert angrenzt, nach einer weiteren Gitterkante mit demselben Isowert.<br />
Ist die Kante gefunden, wird auch hier der Schnittpunkt wie in Schritt zwei berechnet<br />
und die Schnittpunkte werden mit einer geraden Linie verbunden. <strong>Die</strong>ser Schritt wird<br />
wiederholt ausgeführt bis keine unmarkierte Gitterkante mit dem Isowert gefunden<br />
wird (Abbildung 36). Der dafür nötige Aufwand für eine Gitterzelle ist somit linear<br />
von der Gitterauflösung abhängig.<br />
4. <strong>Die</strong> Schritte eins bis drei werden je Isowert solange wiederholt bis alle Gitterkanten mit<br />
einem Schnittpunkt markiert sind. Es ergibt sich folglich ein proportional zum Quadrat<br />
der Messpunktzahl steigendes Laufzeitverhalten.<br />
Abbildung 36: Funktionsweise eines Linefollowing Algorithmus<br />
Insgesamt kann das Verfahren zur Erzeugung geschlossener Linienzüge verwendet werden.<br />
Allerdings ist das asymptotische Verhalten dem des Marching Square Algorithmus deutlich<br />
Seite 42