31.01.2014 Aufrufe

Die Arbeit als PDF - Universität Osnabrück

Die Arbeit als PDF - Universität Osnabrück

Die Arbeit als PDF - Universität Osnabrück

MEHR ANZEIGEN
WENIGER ANZEIGEN

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

Hurra! Ihre Datei wurde hochgeladen und ist bereit für die Veröffentlichung.

Erfolgreich gespeichert!

Leider ist etwas schief gelaufen!