select_region_spatial — Ermitteln der Lagebeziehung von Regionen.
select_region_spatial(Regions1, Regions2 : : Direction : RegionIndex1, RegionIndex2)
select_region_spatial wählt die Regionen aus Regions2 aus, die
der Nachbarschaftsbeziehung Direction genügen.
Die zu untersuchenden Regionen sind in Regions1 bzw.
Regions2 zu übergeben. Regions1 kann dabei auf
drei verschiedene Arten besetzt werden:
Regions1 ist leer:
In diesem Fall werden alle Regionen in Regions2
permutativ auf Nachbarschaft getestet.
Regions1 besteht aus einer Region:
Die Regionen von Regions1 werden mit allen Regionen in
Regions2 verglichen.
Regions1 besteht aus gleich vielen Regionen wie
Regions2:
Hier werden jeweils die Regionen an n-ter Position
in Regions1 und Regions2 auf die
Nachbarschaftsbeziehung untersucht.
Mögliche Werte für Direction sind:
select_region_spatial berechnet die Schwerpunkte der zu vergleichenden
Regionen und entscheidet anhand des Winkels zwischen der Schwerpunktgeraden
und der x-Achse, ob die Richtungsbeziehung erfüllt ist.
Die Relation ist jeweils in dem Bereich von -45 Grad bis +45 Grad
um die Koordinatenachsen erfüllt.
Die Richtungsrelation ist also so zu verstehen, dass der Schwerpunkt
der zweiten Region links (bzw. rechts, oben, unten) vom
Schwerpunkt der ersten Region liegen muss.
Die Indizes der Regionen, die die Richtungsbeziehung erfüllen, stehen
an n-ter Position in RegionIndex1 und RegionIndex2,
d.h. die Region mit Index RegionIndex2[n] steht mit Region mit
Index RegionIndex1[n] in der angegebenen Relation.
Der Zugriff auf Regionen über den Index kann mit copy_obj
erfolgen.
Regions1 (input_object) region(-array) → object
Ausgangsregionen
Regions2 (input_object) region(-array) → object
Vergleichsregionen
Direction (input_control) string → (string)
Gewünschte Nachbarschaftsbeziehung.
Defaultwert: 'left'
Werteliste: 'above', 'below', 'left', 'right'
RegionIndex1 (output_control) integer-array → (integer)
RegionIndex2 (output_control) integer-array → (integer)
select_region_spatial liefert den Wert 2 (H_MSG_TRUE), falls Regions2
nicht leer ist. Das Verhalten bei
leerem Parameter Regions2 (keine Eingaberegionen vorhanden)
lässt sich mittels set_system('no_object_result',<Result>)
festlegen. Das Verhalten bei einer leeren Region (Region ist die leere Menge)
wird mit set_system('empty_region_result',<Result>) bestimmt.
Gegebenenfalls wird eine Fehlerbehandlung durchgeführt.
threshold,
regiongrowing,
connection
spatial_relation,
find_neighbors,
copy_obj,
obj_to_integer
Foundation