distance_contours_xlddistance_contours_xldDistanceContoursXldDistanceContoursXlddistance_contours_xld (Operator)
Name
distance_contours_xlddistance_contours_xldDistanceContoursXldDistanceContoursXlddistance_contours_xld — Berechnen des punktweisen Abstands einer Kontur zu einer anderen.
Signatur
Beschreibung
Der Operator distance_contours_xlddistance_contours_xldDistanceContoursXldDistanceContoursXldDistanceContoursXlddistance_contours_xld berechnet für jeden Punkt in
ContourFromContourFromContourFromContourFromcontourFromcontour_from den minimalen Abstand zu den in ContourToContourToContourToContourTocontourTocontour_to
übergebenen Konturen.
Die zurückgelieferte Kontur ContourOutContourOutContourOutContourOutcontourOutcontour_out enthält
ContourFromContourFromContourFromContourFromcontourFromcontour_from mit dem Attribut 'distance'"distance""distance""distance""distance""distance", in dem die
berechneten Abstände gespeichert sind.
Die Abstände können durch die Abfrage des Attributs
'distance'"distance""distance""distance""distance""distance" mit dem Operator get_contour_attrib_xldget_contour_attrib_xldGetContourAttribXldGetContourAttribXldGetContourAttribXldget_contour_attrib_xld
abgerufen werden. Weitere Informationen zu Konturattributen können der
Referenz von get_contour_attrib_xldget_contour_attrib_xldGetContourAttribXldGetContourAttribXldGetContourAttribXldget_contour_attrib_xld entnommen werden.
Der Parameter ModeModeModeModemodemode legt fest, welche Abstände für jeden Punkt
in ContourFromContourFromContourFromContourFromcontourFromcontour_from berechnet werden:
'point_to_point'"point_to_point""point_to_point""point_to_point""point_to_point""point_to_point" berechnet den minimalen Abstand zu den
Stützpunkten von ContourToContourToContourToContourTocontourTocontour_to.
Dagegen berechnet 'point_to_segment'"point_to_segment""point_to_segment""point_to_segment""point_to_segment""point_to_segment" den minimalen Abstand zu
den Kontursegmenten von ContourToContourToContourToContourTocontourTocontour_to (siehe auch nachstehende
Abbildung).
In vielen Anwendungen bietet sich 'point_to_segment'"point_to_segment""point_to_segment""point_to_segment""point_to_segment""point_to_segment" für die
eigentlich korrekte Lösung an, während 'point_to_point'"point_to_point""point_to_point""point_to_point""point_to_point""point_to_point"
deutlich schneller ist.
Bezeichnet m die Anzahl der Punkte in ContourFromContourFromContourFromContourFromcontourFromcontour_from,
n die Anzahl der Punkte in ContourToContourToContourToContourTocontourTocontour_to, dann hat
distance_contours_xlddistance_contours_xldDistanceContoursXldDistanceContoursXldDistanceContoursXlddistance_contours_xld die Komplexität O(mlog(n)) für
'point_to_point'"point_to_point""point_to_point""point_to_point""point_to_point""point_to_point", und O(mn) für 'point_to_segment'"point_to_segment""point_to_segment""point_to_segment""point_to_segment""point_to_segment".
Falls die Referenzkontur wiederholt verwendet wird, können die
Operatoren create_distance_transform_xldcreate_distance_transform_xldCreateDistanceTransformXldCreateDistanceTransformXldCreateDistanceTransformXldcreate_distance_transform_xld und
apply_distance_transform_xldapply_distance_transform_xldApplyDistanceTransformXldApplyDistanceTransformXldApplyDistanceTransformXldapply_distance_transform_xld alternativ zu
distance_contours_xlddistance_contours_xldDistanceContoursXldDistanceContoursXldDistanceContoursXlddistance_contours_xld benutzt werden.
Nähere Information hierzu finden sich in der Dokumentation zu
create_distance_transform_xldcreate_distance_transform_xldCreateDistanceTransformXldCreateDistanceTransformXldCreateDistanceTransformXldcreate_distance_transform_xld.
Ausführungsinformationen
- Multithreading-Typ: reentrant (läuft parallel zu nicht-exklusiven Operatoren).
- Multithreading-Bereich: global (kann von jedem Thread aufgerufen werden).
- Wird ohne Parallelisierung verarbeitet.
Parameter
ContourFromContourFromContourFromContourFromcontourFromcontour_from (input_object) xld_cont(-array) → objectHXLDContHObjectHXLDContHobject
Konturen, für deren Punkte die Abstände
berechnet werden.
ContourToContourToContourToContourTocontourTocontour_to (input_object) xld_cont(-array) → objectHXLDContHObjectHXLDContHobject
Konturen, zu denen die Abstände
berechnet werden.
ModeModeModeModemodemode (input_control) string → HTuplestrHTupleHtuple (string) (string) (HString) (char*)
Berechne die Distanz zu Punkten ('point_to_point')
oder zu ganzen Segmenten ('point_to_segment').
Defaultwert:
'point_to_point'
"point_to_point"
"point_to_point"
"point_to_point"
"point_to_point"
"point_to_point"
Werteliste: 'point_to_point'"point_to_point""point_to_point""point_to_point""point_to_point""point_to_point", 'point_to_segment'"point_to_segment""point_to_segment""point_to_segment""point_to_segment""point_to_segment"
Ergebnis
Sind die Parameterwerte korrekt, dann liefert der Operator
den Wert TRUE, sonst eine Fehlermeldung.
Nachfolger
get_contour_attrib_xldget_contour_attrib_xldGetContourAttribXldGetContourAttribXldGetContourAttribXldget_contour_attrib_xld,
segment_contour_attrib_xldsegment_contour_attrib_xldSegmentContourAttribXldSegmentContourAttribXldSegmentContourAttribXldsegment_contour_attrib_xld
Alternativen
apply_distance_transform_xldapply_distance_transform_xldApplyDistanceTransformXldApplyDistanceTransformXldApplyDistanceTransformXldapply_distance_transform_xld,
distance_ccdistance_ccDistanceCcDistanceCcDistanceCcdistance_cc,
distance_cc_mindistance_cc_minDistanceCcMinDistanceCcMinDistanceCcMindistance_cc_min
Modul
Foundation