distance_cc_min_pointsdistance_cc_min_pointsDistanceCcMinPointsDistanceCcMinPointsdistance_cc_min_points (Operator)
Name
distance_cc_min_pointsdistance_cc_min_pointsDistanceCcMinPointsDistanceCcMinPointsdistance_cc_min_points — Berechnen des minimalen Abstandes zwischen zwei Konturen und Zurückgeben der
Punkte, die für die Berechnung benutzt wurden.
Signatur
Herror distance_cc_min_points(const Hobject Contour1, const Hobject Contour2, const char* Mode, double* DistanceMin, double* Row1, double* Column1, double* Row2, double* Column2)
Herror T_distance_cc_min_points(const Hobject Contour1, const Hobject Contour2, const Htuple Mode, Htuple* DistanceMin, Htuple* Row1, Htuple* Column1, Htuple* Row2, Htuple* Column2)
void DistanceCcMinPoints(const HObject& Contour1, const HObject& Contour2, const HTuple& Mode, HTuple* DistanceMin, HTuple* Row1, HTuple* Column1, HTuple* Row2, HTuple* Column2)
HTuple HXLDCont::DistanceCcMinPoints(const HXLDCont& Contour2, const HTuple& Mode, HTuple* Row1, HTuple* Column1, HTuple* Row2, HTuple* Column2) const
double HXLDCont::DistanceCcMinPoints(const HXLDCont& Contour2, const HString& Mode, double* Row1, double* Column1, double* Row2, double* Column2) const
double HXLDCont::DistanceCcMinPoints(const HXLDCont& Contour2, const char* Mode, double* Row1, double* Column1, double* Row2, double* Column2) const
double HXLDCont::DistanceCcMinPoints(const HXLDCont& Contour2, const wchar_t* Mode, double* Row1, double* Column1, double* Row2, double* Column2) const
(
Nur Windows)
static void HOperatorSet.DistanceCcMinPoints(HObject contour1, HObject contour2, HTuple mode, out HTuple distanceMin, out HTuple row1, out HTuple column1, out HTuple row2, out HTuple column2)
HTuple HXLDCont.DistanceCcMinPoints(HXLDCont contour2, HTuple mode, out HTuple row1, out HTuple column1, out HTuple row2, out HTuple column2)
double HXLDCont.DistanceCcMinPoints(HXLDCont contour2, string mode, out double row1, out double column1, out double row2, out double column2)
def distance_cc_min_points(contour_1: HObject, contour_2: HObject, mode: MaybeSequence[str]) -> Tuple[Sequence[float], Sequence[float], Sequence[float], Sequence[float], Sequence[float]]
def distance_cc_min_points_s(contour_1: HObject, contour_2: HObject, mode: MaybeSequence[str]) -> Tuple[float, float, float, float, float]
Beschreibung
distance_cc_mindistance_cc_minDistanceCcMinDistanceCcMindistance_cc_min berechnet den minimalen Abstand zwischen zwei
Konturen. Als Eingabe werden die beiden Konturen Contour1Contour1Contour1contour1contour_1,
Contour2Contour2Contour2contour2contour_2 erwartet. Das Ergebnis wird in DistanceMinDistanceMinDistanceMindistanceMindistance_min
zurückgegeben.
Im Vergleich zu distance_cc_mindistance_cc_minDistanceCcMinDistanceCcMindistance_cc_min werden auch die Punkte
auf den Eingabekonturen zurückgegeben, zwischen denen der minimale
Abstand gemessen wurde. Der Punkt auf Contour1Contour1Contour1contour1contour_1 wird in
Row1Row1Row1row1row_1 und Column1Column1Column1column1column_1 zurückgegeben; der Punkt auf
Contour2Contour2Contour2contour2contour_2 wird in Row2Row2Row2row2row_2 und Column2Column2Column2column2column_2
zurückgegeben.
Der Parameter ModeModeModemodemode gibt dabei an, auf welche Weise der Abstand
berechnet wird. '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 der nächstgelegenen Konturpunkte.
'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 'fast_point_to_segment'"fast_point_to_segment""fast_point_to_segment""fast_point_to_segment""fast_point_to_segment" ein effizienter Algorithmen der
Komplexität n*log(n) ist, 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.
Parameter-Broadcasting
Dieser Operator unterstützt Parameter-Broadcasting.
Das bedeutet, dass für jeden Parameter ein Tupel der Länge
1 oder N übergeben werden kann.
Tupel der Länge 1 werden wiederholt verwendet,
so dass immer N Distanzen berechnet und zurückgegeben werden.
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
Contour1Contour1Contour1contour1contour_1 (input_object) xld_cont(-array) → objectHXLDContHObjectHObjectHobject
Erste Eingabekontur.
Contour2Contour2Contour2contour2contour_2 (input_object) xld_cont(-array) → objectHXLDContHObjectHObjectHobject
Zweite Eingabekontur.
ModeModeModemodemode (input_control) string(-array) → HTupleMaybeSequence[str]HTupleHtuple (string) (string) (HString) (char*)
Art der Abstandsberechnung.
Default:
'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_segment'"point_to_segment""point_to_segment""point_to_segment""point_to_segment"
DistanceMinDistanceMinDistanceMindistanceMindistance_min (output_control) number(-array) → HTupleSequence[float]HTupleHtuple (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_points(Cont1, Cont2, "fast_point_to_segment", &distance_min,
&Row1, &Column1, &Row2, &Column2);
Ergebnis
distance_cc_min_pointsdistance_cc_min_pointsDistanceCcMinPointsDistanceCcMinPointsdistance_cc_min_points liefert den Wert 2 (
H_MSG_TRUE)
.
Alternativen
distance_scdistance_scDistanceScDistanceScdistance_sc,
distance_pcdistance_pcDistancePcDistancePcdistance_pc,
distance_ccdistance_ccDistanceCcDistanceCcdistance_cc,
distance_contours_xlddistance_contours_xldDistanceContoursXldDistanceContoursXlddistance_contours_xld,
distance_cc_mindistance_cc_minDistanceCcMinDistanceCcMindistance_cc_min
Siehe auch
distance_srdistance_srDistanceSrDistanceSrdistance_sr,
distance_prdistance_prDistancePrDistancePrdistance_pr
Modul
Foundation