test_xld_pointtest_xld_pointTestXldPointTestXldPoint (Operator)

Name

test_xld_pointtest_xld_pointTestXldPointTestXldPoint — Test, ob ein(e) oder mehrere Konturen oder Polygone einen oder mehrere gegebene Punkte umschließen.

Signatur

test_xld_point(XLD : : Row, Column : IsInside)

Herror test_xld_point(const Hobject XLD, double Row, double Column, Hlong* IsInside)

Herror T_test_xld_point(const Hobject XLD, const Htuple Row, const Htuple Column, Htuple* IsInside)

void TestXldPoint(const HObject& XLD, const HTuple& Row, const HTuple& Column, HTuple* IsInside)

HTuple HXLD::TestXldPoint(const HTuple& Row, const HTuple& Column) const

Hlong HXLD::TestXldPoint(double Row, double Column) const

static void HOperatorSet.TestXldPoint(HObject XLD, HTuple row, HTuple column, out HTuple isInside)

HTuple HXLD.TestXldPoint(HTuple row, HTuple column)

int HXLD.TestXldPoint(double row, double column)

Beschreibung

test_xld_pointtest_xld_pointTestXldPointTestXldPointTestXldPoint prüft, ob ein Testpunkt (RowRowRowRowrow, ColumnColumnColumnColumncolumn) von einer Kontur oder einem Polygon XLDXLDXLDXLDXLD eingeschlossen wird und liefert das Ergebnis in IsInsideIsInsideIsInsideIsInsideisInside 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 IsInsideIsInsideIsInsideIsInsideisInside, 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 IsInsideIsInsideIsInsideIsInsideisInside, 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 IsInsideIsInsideIsInsideIsInsideisInside, 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 XLDXLDXLDXLDXLD übergeben werden.

Achtung

Liegt ein Testpunkt direkt auf der Kontur bzw. dem Polygon, ist das Ergebnis von test_xld_pointtest_xld_pointTestXldPointTestXldPointTestXldPoint 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.

Ausführungsinformationen

Parameter

XLDXLDXLDXLDXLD (input_object)  xld(-array) objectHXLDHXLDHobject

Zu testende Konturen bzw. Polygone.

RowRowRowRowrow (input_control)  point.y(-array) HTupleHTupleHtuple (real) (double) (double) (double)

Zeilenkoordinaten der zu testenden Punkte.

ColumnColumnColumnColumncolumn (input_control)  point.x(-array) HTupleHTupleHtuple (real) (double) (double) (double)

Spaltenkoordinaten der zu testenden Punkte.

Parameteranzahl: Column == Row

IsInsideIsInsideIsInsideIsInsideisInside (output_control)  integer(-array) HTupleHTupleHtuple (integer) (int / long) (Hlong) (Hlong)

Tupel mit booleschen Werten.

Ergebnis

test_xld_pointtest_xld_pointTestXldPointTestXldPointTestXldPoint 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>:)set_system("no_object_result",<Result>)SetSystem("no_object_result",<Result>)SetSystem("no_object_result",<Result>)SetSystem("no_object_result",<Result>) festlegen. Gegebenenfalls wird eine Fehlerbehandlung durchgeführt.

Vorgänger

select_contours_xldselect_contours_xldSelectContoursXldSelectContoursXldSelectContoursXld, close_contours_xldclose_contours_xldCloseContoursXldCloseContoursXldCloseContoursXld, threshold_sub_pixthreshold_sub_pixThresholdSubPixThresholdSubPixThresholdSubPix

Modul

Foundation