test_region_pointtest_region_pointTestRegionPointTestRegionPoint (Operator)

Name

test_region_pointtest_region_pointTestRegionPointTestRegionPoint — Testen, ob eine Region einen gegebenen Punkt enthält.

Signatur

test_region_point(Regions : : Row, Column : IsInside)

Herror test_region_point(const Hobject Regions, const Hlong Row, const Hlong Column, Hlong* IsInside)

Herror T_test_region_point(const Hobject Regions, const Htuple Row, const Htuple Column, Htuple* IsInside)

void TestRegionPoint(const HObject& Regions, const HTuple& Row, const HTuple& Column, HTuple* IsInside)

Hlong HRegion::TestRegionPoint(const HTuple& Row, const HTuple& Column) const

Hlong HRegion::TestRegionPoint(Hlong Row, Hlong Column) const

static void HOperatorSet.TestRegionPoint(HObject regions, HTuple row, HTuple column, out HTuple isInside)

int HRegion.TestRegionPoint(HTuple row, HTuple column)

int HRegion.TestRegionPoint(int row, int column)

Beschreibung

Ist ein Array von Regionen und ein einzelner Testpunkt gegeben, so prüft test_region_pointtest_region_pointTestRegionPointTestRegionPointTestRegionPoint, ob mindestens eine Eingaberegion aus RegionsRegionsRegionsRegionsregions den Testpunkt (RowRowRowRowrow,ColumnColumnColumnColumncolumn) enthält. Ist dies der Fall, so wird IsInsideIsInsideIsInsideIsInsideisInside auf TRUE gesetzt, andernfalls auf FALSE. Falls andererseits eine einzelne Region und mehrere Testpunkte gegeben sind, prüft test_region_pointtest_region_pointTestRegionPointTestRegionPointTestRegionPoint ob mindestens einer der Testpunkte (aus RowRowRowRowrow,ColumnColumnColumnColumncolumn) in der Region RegionsRegionsRegionsRegionsregions enthalten ist. Ist dies der Fall, so wird IsInsideIsInsideIsInsideIsInsideisInside auf TRUE gesetzt, andernfalls auf FALSE. Falls (RowRowRowRowrow,ColumnColumnColumnColumncolumn) reellwertig sind, wird intern auf ganze Pixel gerundet.

Achtung

Der Testpunkt ist nicht in einer leeren Region enthalten (kein Punkt der Region stimmt mit dem Punkt überein). Sind alle Regionen leer, wird IsInsideIsInsideIsInsideIsInsideisInside auf FALSE gesetzt.

Bei einem leeren Eingabeobjekt wird im Fall set_system('no_object_result','true')set_system("no_object_result","true")SetSystem("no_object_result","true")SetSystem("no_object_result","true")SetSystem("no_object_result","true") ein leeres Tupel in IsInsideIsInsideIsInsideIsInsideisInside zurückgegeben.

Ausführungsinformationen

Parameter

RegionsRegionsRegionsRegionsregions (input_object)  region(-array) objectHRegionHRegionHobject

Zu untersuchende Region.

RowRowRowRowrow (input_control)  point.y(-array) HTupleHTupleHtuple (integer / real) (int / long / double) (Hlong / double) (Hlong / double)

Zeilenindex des Testpunktes.

Defaultwert: 100

ColumnColumnColumnColumncolumn (input_control)  point.x(-array) HTupleHTupleHtuple (integer / real) (int / long / double) (Hlong / double) (Hlong / double)

Spaltenindex des Testpunktes.

Parameteranzahl: Row == Column

Defaultwert: 100

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

Boolscher Ergebniswert.

Komplexität

Sei F die Fläche einer Region, N die Anzahl der Regionen und M die Anzahl der Testpunkte. Bei mehreren Regionen und einem Testpunkt beträgt die mittlere Laufzeitkomplexität O(ln(sqrt(F)) * N). Bei einer Region und mehreren Testpunkten beträgt die mittlere Laufzeitkomplexität O(ln(sqrt(F)) * M).

Ergebnis

test_region_pointtest_region_pointTestRegionPointTestRegionPointTestRegionPoint liefert den Wert 2 (H_MSG_TRUE), falls eine Region den Testpunkt enthält. Ist dies nicht der Fall, gibt test_region_pointtest_region_pointTestRegionPointTestRegionPointTestRegionPoint 3 (H_MSG_FALSE) aus. Das Verhalten bei leerem Eingabeobjekt 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

thresholdthresholdThresholdThresholdThreshold, regiongrowingregiongrowingRegiongrowingRegiongrowingRegiongrowing, connectionconnectionConnectionConnectionConnection

Alternativen

union1union1Union1Union1Union1, intersectionintersectionIntersectionIntersectionIntersection, area_centerarea_centerAreaCenterAreaCenterAreaCenter

Siehe auch

select_region_pointselect_region_pointSelectRegionPointSelectRegionPointSelectRegionPoint

Modul

Foundation