XYZCreate erzeugt einen 3D-Datensatz. Die Daten können entweder als XYZ-Tripel oder als Matrix vorliegen.Die XYZ-Tripel können beliebig in der XY-Ebene verteilt sein. Es sind mindestens 3 Koordinaten-Tripel erforderlich, um einen 3D-Datensatz erzeugen zu können. Aus den XYZ-Tripeln wird durch Interpolation eine Z-Matrix berechnet.
Returnwert
hData ist die Zugriffsnummer (Handle), mit der auf den Datensatz zugegriffen werden kann. Falls der Datensatz nicht erzeugt werden kann, ist hData gleich 0.
Parameter
ssName ist ein skalarer String.
rvX ist ein Vektor mit den X-Koordinaten.
rvY ist ein Vektor mit den Y-Koordinaten.
rvZ ist ein Vektor mit den Z-Koordinaten.
rmZMatrix ist eine Matrix mit den Z-Koordinaten. Falls die Abstände der Matrixspalten und -zeilen konstant sind, können die x/y-Koordinaten der Matrix über den Parameter rvRect festgelegt werden. Wenn die Abstände der Spalten oder Zeilen nicht konstant sind, werden die Koordinaten über die Parameter rvX und rvY festgelegt. In diesem Fall ist der Parameter rvX ein Vektor mit den X-Koordinaten der Matrixspalten und rvY ein Vektor mit den Y-Koordinaten der Matrixzeilen. In diesem Fall wird keine Interpolation durchgeführt.
rvRect legt der Wertebereich der Z-Matrix in der XY-Ebene fest.
| Wert | Bedeutung |
|---|---|
| rvRect[1] | xmin der ersten Matrix-Spalte |
| rvRect[2] | ymin der ersten Matrix-Zeile |
| rvRect[3] | xmax der ersten Matrix-Spalte |
| rvRect[4] | ymax der letzten Matrix-Zeile |
bIsoScale hat den Wert TRUE (1), wenn für den Datensatz automatisch Isolinien erzeugt werden sollen und FALSE (0), wenn keine Isolinien erzeugt werden sollen. Falls die Funktion mit vier Parametern aufgerufen wird, wird für bIsoScale TRUE verwendet.
svWOT ist ein String-Vektor, der die Volllastlinie festlegt. Jedes Vektorelement besteht aus einem Zeichen und kann die Werte "a", "e", "v", "A", "E", "V", "" annehmen. Die Zeichen haben folgende Bedeutung:
| Wert | Bedeutung |
|---|---|
| “a” | Anfang der Volllastlinie ohne Beschriftung. |
| “e” | Ende der Volllastlinie ohne Beschriftung. |
| “v” | Punkt gehört zur Volllastlinie und wird nicht beschriftet. |
| “A” | Anfang der Volllastlinie mit Beschriftung. |
| “E” | Ende der Volllastlinie mit Beschriftung. |
| “V” | Punkt gehört zur Volllastlinie und wird beschriftet. |
| “” | (leerer String) Punkt gehört nicht zur Volllastlinie. |
Kommentar
Bei XYZ-Tripeln müssen die Vektoren alle die gleiche Anzahl an Elementen haben. Die Punkte dürfen in der x,y-Ebene beliebig verteilt sein. Doppelte Datenpunkte, d.h. Punkte mit den gleichen x,y-Koordinaten werden automatisch entfernt. Es sind mindestens 3 Punkte erforderlich.
Wenn der Datensatz von einer Matrix erzeugt wird, sollen die Vektoren rvX und rvY aufsteigend sortiert sein. Falls das nicht der Fall ist, werden die Vektoren aufsteigend sortiert. Die Matrix wird entsprechend mit sortiert.
Wenn der Datensatz von einer Matrix erzeugt wird, kann die Hülle mit Hilfe der Funktion XYZSetHullNewData definiert werden.
Wird die Funktion ohne den Parameter svVolllast aufgerufen, wird eine konvexe Hülle berechnet.
Beispiel
Das folgende Beispiel können Sie in einen Editor kopieren (Datei=>Neu [Programm Editor]) und dann den Befehl UniScript=>Speichern/Ausführen ausführen.
Es wird eine 2 mal 3 Matrix erzeugt. (Die x-Koordinaten legen die Spalten fest und y-Koordinaten legen die Zeilen der Matrix fest.)
x = [1, 1.5, 2]
y = [1, 5]
z = [1, 1, 3;
1, 2, 3]
hData = XYZCreate("Test", x, y, z);
if (hData == 0) {
error();
}
hLayer = LayerCreate();
hDoc = DocCreate();
hPage = PageCreate();
DocAddPage(hDoc, hPage);
PageAddLayer(hPage, hLayer);
LayerAddDataset(hLayer, hData);
LayerAutoScale(hLayer);
PageReplot(hPage);
History
| Version | Beschreibung |
|---|---|
| 5.3.4 | Aufruf mit drei Parametern korrigiert: XYZCreate(ssName, rmZMatrix, rvRect). |
Siehe auch
Überblick XYZ-Datensätze, LayerAddDataset, XYZDestroy, XYZCreateFromMatrix, XYZGetMatrixRange, XYZGetMatrix, XYZGetData, XYZGetMatrixRowData, XYZGetMatrixColData
id-428507