Programm "XY-Function"
Graphische Darstellung und Interpolation von Funktionswerten auf willkürlich angeordneten XY-Punkten
Copyright: Helm Ing. 1999-2000
- Kurze Programmbeschreibung
- DELAUNAY Triangulation
- Programmstruktur
- Dateiformat
- Raster auf Raster-Interpolation
- Einführende Beispiele
- XY-Function ermöglicht 2D und 3D Darstellungen von Funktionen,
deren Werte auf willkürlichen Rastern von XY-Punkten gegeben sind.
- Das mathematische Herangehen basiert auf der DELAUNAY Triangulation.
- In dieser Testversion ist die Zahl der Punkte auf 2000 beschränkt.
- Die Werte und ihre XY-Koordinaten könnnen im Textformat eingelesen bzw. gespeichert oder einzeln, interaktiv eingegeben werden.
- 2D-Bilder mit beliebig vielen, beliebig einfärbbaren Isolinien können erzeugt werden.
- 3D Darstellungen (OpenGL) können gezoomt und rotiert werden.
- Interpolierte Werte zu willkürlichen, durch die Mausposition vorgegebenen Koordinaten werden angezeigt.
- Interpolationen vollständiger Datensätze auf andere, beliebige Punktraster werden unterstützt.
- XY-Function benötigt für 3D-Darstellungen OpenGL 1.1 (enthalten in Win 95B/98/ME/NT).
Haüfig werden Daten an unregelmäßig (zufällig) verteilten Stützstellen gemessen:
In diesem Beispiel wurden Funktionswerte an 102 XY-Punkten im Bereich: -1 < x,y < 1 gemessen.
Zur Visualisierung dieser Werte (als kontinuierliche Funktion) kann die XY-Ebene, basierend auf den Punktkoordinaten, mittels DELAUNAY Triangulation in Dreiecke zerlegt werden:
Dabei sollten folgende Forderungen erfüllt sein:
- Die Variation der Dreiecksflächen sollte möglichst klein sein.
- Das Verhältnis von In- und Umkreis jedes Dreiecks sollte möglichst nahe 1 sein.
- Das Verhältnis zweier Seiten/Winkel jedes Dreiecks sollte nahe 1 sein.
- Das Verhältnis zwischen der minimalen und maximalen Fläche benachbarter Dreiecke soll nahe 1 sein.
Nach der Zerlegung (Tesselierung) kann die Berechnung der Isolinien für jedes Dreieck einzeln, mittels linearer Interpolation erfolgen:
Die Triangulation bildet auch den Ausgangspunkt für die Erzeugung von 3D-Darstellungen z.B. mit OpenGL oder Direct3D.
Das XY-Function Hauptfenster enthält folgene Bedienfelder:

- Einlesen einer Datenmenge im Textformat (vgl. Dateiformat, laden Sie z.B. file1.txt aus dem Stammverzeichnis),
- Speichern der aktuellen Datenmenge im Textformat,
- Löschen aller aktueller Daten,
- Kopieren des aktuellen Bildes in die Zwischenablage,
- Raster auf Raster-Interpolation,
- Beispiel: Solange der Schalter gedrückt wird, werden Zufallspunkte einer GAUSS-Verteilung erzeugt,
- Öffnen dieser Hilfe-Datei.
2. Bildmode-Register
Dieses besteht aus 2 Arbeitsblättern:
2D (Isolinien)
- 2D-Parameter Register
- XY-Bereich:
Die Eingabefelder gestatten die Festlegung des XY-Bereichs der 2D-Darstellung.
- Zeichnen:
Durch Markieren der Kontrollboxen können verschiedene Zeichnungs- und Bedienelemente wie XY-Punkte, Nummerierung, Isolinien, Iso-Farben... angezeigt werden.
- Iso-Farben:
Die Anzahl der Isolinien und die Farben der maximalen und der minimalen Isolinie können beliebig festgelegt werden. Zur Farbänderung klicken Sie auf das entsprechende Zahlenfeld.
- Beschriftung:
Hier kann der im 2D-Bild verwendete Font und der Titel der Darstellung eingegeben werden. Außerdem kann die Anzahl der XY-Hilfslinien gewählt werden.
- Reguläres Raster:
Ein reguläres Stützstellenraster mit frei wählbaren XY-Schritten bzgl. dem festgelegten XY-Bereich (Bedingung Punktzahl kleiner als 2001) kann hier einfach eingegeben werden. Dieses Raster kann als Zielraster einer Raster auf Rasterinterpolation (Schalter 5) benutzt werden.
- Datentabelle
Die Tabelle zeigt die numerierten XY-Koordinaten und Funktionswerte (die in dieser Testversion nicht editiert werden können). Durch Markieren der Kontrollboxen Punkte und Nummern im Zeichnen-Register werden die nummerierten Punkte im 2D-Bild dargestellt.
- 2D-Bild
Der sichtbare Bereich der Funktion kann durch Ziehen der Maus von links oben nach rechts unten (linke Maustaste) vergrößert werden. Durch inverses Ziehen von rechts unten nach links oben wird der vorgegebene XY-Bereich wieder angezeigt.
Werte und Koordinaten können auch manuell, durch Mausklick (rechte Maustaste) auf die entsprechende Position im 2D-Bild eingegeben werden.
3D (OpenGL)
Die Vergrößerung des 3D-Bilds kann mit dem Schieberegler Abstand eingestellt werden.
Außerdem kann das 3D-Bild durch Mausziehen rotiert werden, wobei nur die Richtung der Z-Achse verändert wird. Die Drehung um die Z-Achse erfolgt mit dem Schieberegler Drehung um Z.
Die Koordinatenachsen X,Y und Z können ein- oder ausgeblendet werden(Achsen zeichnen).
3. Status-Zeile
Die Anzeige der Status-Zeile hängt vom gewählten Bildmodus ab.
2D (Isolinien): XY-Koordinaten und interpolierte Werte an der Mausposition im 2D-Bild,
3D (OpenGL): Richtung der Z-Achse und Drehwinkel um die Z-Achse.
Für jeden Datenpunkt muß eine Zeile mit jeweils drei Werten für X,Y und F eingelesen werden:

In der Eingabedatei für die Raster auf Raster-Interpolation werden nur zwei Werte je Zeile benötigt (X und Y).
Bevor Sie den entsprechenden Schalter 5 betätigen müssen Sie eine Eingabedatei anlegen, in der die Punkte des Zielrasters eingetragen sind (zwei Werte je Zeile, vgl. Dateiformat). Diese XY-Punkte sollten innerhalb der konvexen Hülle des Ausgangsrasters liegen, da Werte außerhalb nur grob geschätzt werden können.
Nach dem Einlesen dieser Datei wird die aktuelle Funktion auf das neue Raster interpoliert.
Das Ergebnis wird in einem Meldungsfenster kommentiert:
... Punkte wurden eingelesen,
... Werte wurden interpoliert,
... Werte wurden geschätzt,
... Werte konnten nicht interpoliert werden.
Die interpolierten Werte werden in der Eingabedatei ergänzt:

1. Einlesen einer Funktion
Es gibt vier Beispieldateien file1.txt ... file4.txt, die Sie einlesen und beliebig darstellen können. Vor dem Einlesen einer neuen Funktion sollten die alten Werte gelöscht werden (Löschen Schalter 3).
2. 3D-Parameter ändern
- Laden Sie eine Beispieldatei und setzen Sie das Bildmode-Register auf 3D (OpenGL),
- Ändern Sie die Einstellungen der Bedienelemente Abstand, Drehung um Z und Achsen zeichnen,
- Drehen sie die 3D-Darstellung durch Mausziehen.
3. 2D-Parameters ändern
- Laden Sie eine Beispieldatei und setzen Sie das Bildmode-Register auf 2D (Isolinien),
- Ändern Sie die Einstellungen der Kontrollschalter XY-Bereich, Zeichnen, Iso-Farben and Beschriftung im Parameter-Register,
- Der sichtbare Bereich der Funktion kann durch Ziehen der Maus von links oben nach rechts unten (linke Taste) vergrößert werden. Durch inverses Ziehen von rechts unten nach links oben
wird der eingestellte XY-Bereich wieder angezeigt.
4. Manuelles Hinzufügen von Daten
- Setzen Sie den Bildmodus auf 2D (Isolinien),
- Wählen Sie eine Beispieldatei oder drücken Sie den Löschen Schalter 3 um ein neues Datenprojekt anzulegen.
- Fügen Sie einen neuen Datenpunkt durch Mausklick (rechte Maustaste) auf die entsprechende Position im 2D-Bild und Werteingabe hinzu.
5. Beispiel: Zufallspunkte einer GAUSS-Verteilung
Solange der Beispiel Schalter 6 nach unten gedrückt ist, werden Zufallspunkte einer GAUSS-Verteilung erzeugt und dargestellt.
Setzen Sie den Mauszeiger auf das Intensitätsmaximum im 2D-Bild, dann können Sie den Maximalert und dessen Koordinaten abschätzen (Wertanzeige in der Statuszeile, Wahre Werte: x = -0.5, y = -0.33, F = 100).
6.Erzeugung eines regulären Rasters
Setzen Sie das 2D-Parameter Register auf Reguläres Raster.
Erzeugen und speichern Sie ein regulärs Stützstellenraster (Bedingung: Punktzahl kleiner als 2001). Die aktuellen Daten werden dabei gelöscht.
7. Raster auf Raster-Interpolation
- Erzeugen Sie z.B. mit dem Beispiel Schalter 6 einen neuen Datensatz,
- Speichern Sie diesen ( Speichern Schalter 2),
- Erzeugen und speichern Sie ein regulärs Stützstellenraster (jeweils 10 X- und Y- Schritte, das sind 11 * 11 Punkte) - der XY-Bereich sollte dabei unverändert bleiben,
- Laden Sie die zuvor gespeicherte Funktion und drücken Sie den Interpolations Schalter 5,
- Wählen Sie im Datei-Öffnen-Dialog das erzeugte Zielraster aus.