select_matching_lines
— Wählt aus einer Menge von Linien (Hessesche Normalform) die Linien aus,
die am besten in eine Eingaberegion passen.
select_matching_lines(RegionIn : RegionLines : AngleIn, DistIn, LineWidth, Thresh : AngleOut, DistOut)
Mit select_matching_lines
können aus einer Menge von Linien,
die in Hessescher Normalform vorliegen zu einer ebenfalls als Parameter
übergebenen Region (RegionIn
) die Linien ausgewählt werden,
die am besten in die Region hineinpassen. Mit LineWidth
kann
die Breite der Linien angegeben werden. Die selektierten Linien werden
sowohl in Hessescher Normalform als auch als Regionen zurückgeliefert.
Die Auswahl der Linien erfolgt iterativ: In einer Schleife wird als
erstes die Linie aus der Menge der Eingabelinien ausgewählt, die die
größte Überschneidung mit der Eingaberegion besitzt. Diese Linie wird
in die Ausgabemenge übernommen, alle Punkte, die zu dieser Linie gehören,
werden im Folgenden nicht mehr für die Bestimmung von Überschneidungen
berücksichtigt. Unterschreitet, die maximale Überschneidung zwischen
der Region und den Linien einen Schwellenwert (Thresh
), wird
die Schleife verlassen. Die ausgewählten Linien werden sowohl als Regionen,
als auch in Hessescher Normalform zurückgegeben.
RegionIn
(input_object) region →
object
Region, in denen die Linien gematcht werden sollen.
RegionLines
(output_object) region(-array) →
object
Regionen-Array, mit den gematchten Linien.
AngleIn
(input_control) hesseline.angle.rad(-array) →
(real)
Winkel (im Bogenmaß) der Normalen-Vektoren der Eingabe-Linien.
Typischer Wertebereich: -1.5707963
≤
AngleIn
≤
3.1415927
DistIn
(input_control) hesseline.distance(-array) →
(real)
Abstände der Eingabe-Linien vom Koordinatenursprung.
Parameteranzahl: DistIn == AngleIn
LineWidth
(input_control) integer →
(integer)
Breite der Linien.
Defaultwert: 7
Typischer Wertebereich: 1
≤
LineWidth
Thresh
(input_control) integer →
(integer)
Schwellenwert für die Anzahl der Linienpunkte in der Region.
Defaultwert: 100
Typischer Wertebereich: 1
≤
Thresh
AngleOut
(output_control) hesseline.angle.rad(-array) →
(real)
Winkel (im Bogenmaß) der Normalen-Vektoren der selektierten Linien.
Parameteranzahl: AngleOut <= AngleIn
Typischer Wertebereich: -1.5707963
≤
AngleOut
≤
3.1415927
DistOut
(output_control) hesseline.distance(-array) →
(real)
Abstände der selektierten Linien vom Koordinatenursprung.
Parameteranzahl: DistOut == AngleOut
Typischer Wertebereich: 0
≤
DistOut
select_matching_lines
liefert den Wert 2 (H_MSG_TRUE),
falls die Eingabe nicht leer
ist. Das Verhalten bei leerer Eingabe (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.
Foundation