test_xld_point
— Test, ob ein(e) oder mehrere Konturen oder Polygone einen oder mehrere
gegebene Punkte umschließen.
test_xld_point
prüft, ob ein Testpunkt (Row
,
Column
) von einer Kontur oder einem Polygon XLD
eingeschlossen wird und liefert das Ergebnis in IsInside
zurück.
Ist der Testpunkt von der Kontur bzw. dem Polygon eingeschlossen, so ist
der Rückgabewert 1, sonst 0.
Werden mehr als ein Testpunkt und/oder mehr als eine Kontur/Polygon
übergeben, dann werden die Ergebnisse in Tupeln abgespeichert.
Im Falle von einem Testpunkt und mehreren Konturen/Polygonen zeigt das
(i-1)-te Element des Ergebnistupels IsInside
, ob der Punkt von der
i-ten Kontur oder dem i-ten Polygon eingeschlossen ist.
Im Falle von mehreren Testpunkten und einer Kontur/Polygon zeigt das
i-te Element des Ergebnistupels IsInside
, ob der i-te Punkt von
der Kontur/Polygon eingeschlossen ist.
Im Falle von mehreren Testpunkten und mehreren Konturen/Polygonen zeigt
das (i-1)-te Element des Ergebnistupels IsInside
, ob der (i-1)-te
Punkt von der i-ten Kontur oder dem i-ten Polygon eingeschlossen ist (Die
Indizes unterscheiden sich, da die Indizierung des Ergebnistupels im
Gegensatz zur Indizierung von Objekttupeln bei 0 beginnt).
Die Anzahl
der Testpunkte muss dabei gleich der Anzahl der Konturen/Polygone sein.
Es wird vorausgesetzt, dass die Konturen oder Polygone geschlossen sind.
Ist das nicht der
Fall, werden sie künstlich geschlossen. Dennoch sollte darauf geachtet
werden, dass nur sinnvolle, geschlossene Konturen und Polygone in
XLD
übergeben werden.
Liegt ein Testpunkt direkt auf der Kontur bzw. dem Polygon, ist das
Ergebnis von test_xld_point
unvorhersagbar, d.h. 0 oder
1 wird in Abhängigkeit von Faktoren wie der Orientierung der
Kontur bzw. des Polygons zurückgegeben. Weiterhin ist zu beachten, dass
bei großer Nähe des Punktes zu den Kontur- bzw. Polygonseiten eine
verlässliche Klassifikation durch numerische Ungenauigkeiten praktisch
ausgeschlossen ist.
XLD
(input_object) xld(-array) →
object
Zu testende Konturen bzw. Polygone.
Row
(input_control) point.y(-array) →
(real)
Zeilenkoordinaten der zu testenden Punkte.
Column
(input_control) point.x(-array) →
(real)
Spaltenkoordinaten der zu testenden Punkte.
Parameteranzahl: Column == Row
IsInside
(output_control) integer(-array) →
(integer)
Tupel mit booleschen Werten.
test_xld_point
liefert den Wert 2 (H_MSG_TRUE), falls die Eingabe
nicht leer ist. Das Verhalten bei leerer Eingabe lässt sich
mittels set_system(::'no_object_result',<Result>:)
festlegen. Gegebenenfalls wird eine Fehlerbehandlung
durchgeführt.
select_contours_xld
,
close_contours_xld
,
threshold_sub_pix
Foundation