distance_cc_mindistance_cc_minDistanceCcMinDistanceCcMin (Operator)
Name
distance_cc_mindistance_cc_minDistanceCcMinDistanceCcMin
— Berechnen des minimalen Abstandes zwischen zwei Konturen.
Signatur
Beschreibung
distance_cc_mindistance_cc_minDistanceCcMinDistanceCcMinDistanceCcMin
berechnet den minimalen Abstand zwischen zwei
Konturen.
Als Eingabe werden die beiden Konturen Contour1Contour1Contour1Contour1contour1
, Contour2Contour2Contour2Contour2contour2
erwartet. Das Ergebnis wird in DistanceMinDistanceMinDistanceMinDistanceMindistanceMin
übergeben.
Der Parameter ModeModeModeModemode
gibt dabei an, auf welche Weise der Abstand
berechnet wird. 'point_to_point'"point_to_point""point_to_point""point_to_point""point_to_point" bestimmt nur die
nächstgelegenen Konturpunkte und deren Abstand,
'fast_point_to_segment'"fast_point_to_segment""fast_point_to_segment""fast_point_to_segment""fast_point_to_segment" berechnet den Abstand der Liniensegmente
in der Umgebung dieser Eckpunkte und 'point_to_segment'"point_to_segment""point_to_segment""point_to_segment""point_to_segment" bestimmt
den tatsächlichen minimalen Abstand der Kontursegmente.
Während 'point_to_point'"point_to_point""point_to_point""point_to_point""point_to_point" und 'fast_point_to_segment'"fast_point_to_segment""fast_point_to_segment""fast_point_to_segment""fast_point_to_segment"
effiziente Algorithmen der Komplexität n*log(n) sind, hat
'point_to_segment'"point_to_segment""point_to_segment""point_to_segment""point_to_segment" quadratische Komplexität, die sich in einer
längeren Rechenzeit niederschlägt, insbesondere bei Konturen mit vielen
Liniensegmenten.
Achtung
Die beiden ikonischen Eingabeparameter müssen die gleiche Anzahl von
Konturen enthalten.
Ausführungsinformationen
- Multithreading-Typ: reentrant (läuft parallel zu nicht-exklusiven Operatoren).
- Multithreading-Bereich: global (kann von jedem Thread aufgerufen werden).
- Automatisch parallelisiert auf interner Datenebene.
Parameter
Contour1Contour1Contour1Contour1contour1
(input_object) xld_cont(-array) →
objectHXLDContHXLDContHobject
Erste Eingabekontur.
Contour2Contour2Contour2Contour2contour2
(input_object) xld_cont(-array) →
objectHXLDContHXLDContHobject
Zweite Eingabekontur.
ModeModeModeModemode
(input_control) string →
HTupleHTupleHtuple (string) (string) (HString) (char*)
Art der Abstandsberechnung.
Defaultwert:
'fast_point_to_segment'
"fast_point_to_segment"
"fast_point_to_segment"
"fast_point_to_segment"
"fast_point_to_segment"
Werteliste: 'fast_point_to_segment'"fast_point_to_segment""fast_point_to_segment""fast_point_to_segment""fast_point_to_segment", '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"
DistanceMinDistanceMinDistanceMinDistanceMindistanceMin
(output_control) number(-array) →
HTupleHTupleHtuple (real) (double) (double) (double)
Minimaler Abstand zwischen beiden Konturen.
Beispiel (C)
gen_contour_polygon_rounded_xld(Cont1, [0,100,100,0,0], [0,0,100,100,0],
[50,50,50,50,50], 0.5);
gen_contour_polygon_rounded_xld(Cont2, [41,91,91,41,41], [41,41,91,91,41],
[25,25,25,25,25], 0.5);
distance_cc_min(Cont1, Cont2, "fast_point_to_segment", &distance_min);
Ergebnis
distance_cc_mindistance_cc_minDistanceCcMinDistanceCcMinDistanceCcMin
liefert den Wert 2 (H_MSG_TRUE).
Alternativen
distance_scdistance_scDistanceScDistanceScDistanceSc
,
distance_pcdistance_pcDistancePcDistancePcDistancePc
,
distance_ccdistance_ccDistanceCcDistanceCcDistanceCc
,
distance_contours_xlddistance_contours_xldDistanceContoursXldDistanceContoursXldDistanceContoursXld
Siehe auch
distance_srdistance_srDistanceSrDistanceSrDistanceSr
,
distance_prdistance_prDistancePrDistancePrDistancePr
Modul
Foundation