set_paint — Festlegen des Modus für die Darstellung von Grauwerten.
set_paint( : : WindowHandle, Mode : )
set_paint setzt den Modus des Ausgabefensters für die
Darstellung von Grauwerten (ein- oder mehrkanalig), der von
disp_obj, disp_image und disp_color
verwendet werden.
Verschiedene Bildtypen und ihr möglicher Einfluss auf Mode:
Graubilder können auch als 3D-Höhenmodell aufgefasst werden. Hierzu steht eine 3D-Darstellung mit '3d_plot' zur Verfügung.
Dreikanalige Bilder werden als RGB-Daten interpretiert.
Vektorfeldbilder werden als Vektorfelder ausgegeben ('vector_field').
In den meisten Fällen ist Mode 'default' die richtige Wahl.
Je nach ausgewähltem Modus erlaubt Mode ein Tupel als Wert.
In diesen Fällen sind folgende Eingaben möglich:
Es wird nur der Name des Modus angegeben. Hier werden die Voreinstellungen oder die zuletzt gesetzten Werte verwendet.
Beispiel: set_paint(WindowHandle,'3d_plot')
Es werden alle Werte übergeben. Hierdurch ist es möglich alle Eigenschaften der Ausgabe festzulegen.
Beispiel: set_paint(WindowHandle, ['3d_plot', 'shaded', 8,
0.939, -0.052, 0.296, -0.165, 0.401, 0.072, -0.047, -0.073])
Nur die ersten n Werte werden angeben. Hierbei werden die nicht angegebenen Werte nicht verändert.
Beispiel: set_paint(WindowHandle,['3d_plot', 'texture'])
Einige der Werte werden durch einen Stern ersetzt ('*'). Dies bedeutet, dass dieser Wert nicht verändert werden soll.
Beispiel: set_paint(WindowHandle, ['3d_plot', '*', 8])
Ist der Modus 'default' gewählt, dann muss für die Ausgabe von 2-
und 3-kanaligen Bildern kein Aufruf von set_paint
erfolgen. Es wird dann automatisch ein geeignetes Verfahren
aufgerufen.
Die Ausgabe der Grauwerte wird auch von anderen Operatoren (und deren
Parametern) beeinflusst. Dies sind insbesondere set_part,
set_part_style und set_lut.
Bei einigen Ausgabemodi von set_paint werden die Grauwerte grafisch
dargestellt (z.B. '3d_plot'). Dies hat zur Folge, dass auch
Parameter, die mit set_color, set_rgb,set_hsi,
set_shape, set_line_width und set_insert bestimmt
wurden, Einfluss auf die Darstellung haben.
Sollten also unerwartete Ergebnisse erscheinen, so sind die Werte der
Darstellungsparameter für Regionen zu überprüfen.
Alle verfügbaren Modi können mit dem Operator query_paint abgefragt
werden.
Mögliche Werte für Mode:
Optimale Grauwertdarstellung bei gegebener Hardware (Defaultwert). Das Verhalten ist abhängig von der Anzahl Kanäle des Eingabebildes:
Einkanalige Bilder: Darstellung des einzigen Kanals.
Zweikanalige Bilder: Darstellung des ersten Kanals.
Dreikanalige Bilder: Ausgabe als RGB-Bild.
Die Grauwerte des Bildes werden als 3D-Höhenmodell interpretiert und mit Hilfe von OpenGL angezeigt. Bedeutung der einzelnen Parameter:
'Mode': Legt fest, auf welche Weise das Höhenmodell angezeigt werden soll. Folgende Modi stehen zur Verfügung:
'texture': Das Höhenmodell wird als geschlossene Fläche dargestellt und texturiert. Die Textur wird als zweiter Kanal (für eine Grauwerttextur) oder als zweiter bis vierter Kanal (für eine Farbtextur) übergeben.
'shaded': Das Höhenmodell wird als geschlossene Fläche dargestellt und mit der aktuellen LUT koloriert.
'hidden_lines': Das Höhenmodell wird als Gitter dargestellt, wobei verdeckte Linien nicht dargestellt werden. Das Gitter wird mit der aktuellen LUT koloriert.
'contour_lines': Höhenlinien werden extrahiert und dreidimensional dargestellt. Die Höhenlinien werden mit der aktuellen LUT koloriert.
'Step': Schrittweite, mit der das Bild sowohl in Zeilen- als auch in Spaltenrichtung abgetastet wird. Je kleiner dieser Parameter gewählt wird, desto feiner ist das resultierende Höhenmodell. In gleichem Maße nimmt die Berechnungszeit für die Anzeige zu. Im Falle von 'contour_lines' entspricht dieser Parameter der Anzahl der Intervalle in die der Höhenbereich aufgeteilt wird.
'qa', 'qb', 'qc', 'qd': Die vier Werte eines
Einheitsquaternion, welches die Orientierung des Höhenmodells beschreibt
(für mehr Informationen über Quaternionen, siehe
axis_angle_to_quat).
'ZoomFac': Zoomfaktor, wobei ein kleinerer Wert zu stärkerem Zooming führt.
'CenterRow', 'CenterCol', 'CenterHeight': Position des aktuellen Zentrums, definiert über die Zeilen, Spalten und Höhenposition. Diese Werte müssen auf den Bereich [-0.5,0.5] skaliert sein.
Automatische Parameterabschätzung:
Der Wert von 'qa' (vierter Wert des Tupels) oder 'ZoomFac'
(achter Wert des Tupels) kann auf 'auto' gesetzt werden.
Damit werden der Zoomfaktor und das Zentrum automatisch so bestimmt,
dass der resultierende Plot das Fenster möglichst gut ausfüllt.
Beim Setzen von 'qa' auf 'auto' wird die vorherige
(bzw. die vorgegebene) Orientierung verwendet.
Beim Setzen von 'ZoomFac' auf 'auto' wird die angegebene
Orientierung verwendet.
Es ist wichtig, dass der Bildausschnitt des Fensters mittels
set_part korrekt gesetzt wurde, bevor set_paint aufgerufen
wird.
Es ist nicht möglich, nach 'auto' noch Parameter im Tupel
anzugeben.
Außerdem funktioniert 'auto' nur dann richtig, wenn
'scale_plot' mittels set_window_param auf
'true' gesetzt wurde.
Beispiel:
set_paint(WindowHandle, ['3d_plot','shaded',4,'auto'])
Diese Darstellung erlaubt auch interaktives Betrachten des Höhenmodells.
Für eine interaktive Anzeige muss die Grafikkarte genügend leistungsfähig
sein und OpenGL unterstützen.
Der Operator update_window_pose bietet einen intuitiven Weg, um
obige Parameter des Höhenmodells beispielsweise mit Hilfe der
Maus zu verändern.
Mit den Operatoren set_rgb, set_color und set_colored
können die Farben für die Zeilen-, Spalten- und Höhenachse (in dieser
Reihenfolge) beeinflusst werden.
Zusätzliche Parameter, die den 3D-Plot beeinflussen, können mit
set_window_param gesetzt werden.
Falls Sie '3d_plot' auf einem unixartigen System nutzen wollen, muss sichergestellt sein, dass Sie ausreichende Rechte für ihre Grafikkarte besitzen.
Restriktion: Nur für einkanalige Bilder.
Default: ['3d_plot', 'shaded', 8, 0.939, -0.052, 0.296, -0.165, 0.401, 0.072, -0.047, -0.073]
Ausgabe von Vektorfeldern.
Bei Mode 'vector_field' wird für jeden Vektor ein Kreis
an der Position des Pixels sowie eine Strecke mit dem Vektor gezeichnet.
Bedeutung der einzelnen Parameter:
'Mode': Sagt aus ob die visualisierten Vektorfelder absolute oder relative Koordinaten beinhalten. Mögliche Werte:
'auto': Die Visualisierung ist abhängig vom semantischen Typ des Vektorfeldes.
'absolute': Anzeigen von Vektorfeldern mit absoluten Koordinaten.
'relative': Anzeigen von Vektorfeldern mit relativen Koordinaten.
'Step': Schrittweite beim Darstellen der Vektoren, d.h., Abstand zwischen den visualisierten Vektoren.
'MinLength': Minimale Länge die ein Vektor aufweisen muss um dargestellt zu werden.
'ScaleLength': Skaliert die Länge der Vektoren.
'CircleSize': Radius der dargestellten Kreise.
Es ist zu beachten, dass das Setzen von 'vector_field' lediglich die Parameter 'Mode', 'Step', 'MinLength', 'ScaleLength' und 'CircleSize' ändert, jedoch nicht den tatsächlichen Anzeigemodus.
Vektorfeldbilder werden immer als Vektorfelder ausgegeben, unabhängig davon,
welcher Modus mit set_paint eingestellt worden ist.
Beispiel:
set_paint(WindowHandle,['vector_field','auto',16,2,3,5])
Dies resultiert in der Ausgabe jedes 16. Vektors der eine Länge von mindestens 2 Punkten hat. Jeder Vektor wird für die Darstellung um den Faktor 3 verlängert.
Restriktion: Nur für Vektorfeldbilder.
WindowHandle (input_control) window → (handle)
Fenster-Handle.
Mode (input_control) string-array → (string / integer / real)
Name des Grauwertmodus, eventuell mit Parameter.
Defaultwert: 'default'
Werteliste: '3d_plot', 'default', 'vector_field'
set_paint liefert den Wert 2 (H_MSG_TRUE), falls der Parameter korrekt und
das Fenster gültig ist.
Ansonsten wird eine Fehlerbehandlung durchgeführt.
get_paint,
query_paint,
disp_image,
set_shape,
set_rgb,
set_color,
set_gray,
set_window_param,
update_window_pose
Foundation