distance_cc_mindistance_cc_minDistanceCcMinDistanceCcMin (Operator)

Name

distance_cc_mindistance_cc_minDistanceCcMinDistanceCcMin — Berechnen des minimalen Abstandes zwischen zwei Konturen.

Signatur

distance_cc_min(Contour1, Contour2 : : Mode : DistanceMin)

Herror distance_cc_min(const Hobject Contour1, const Hobject Contour2, const char* Mode, double* DistanceMin)

Herror T_distance_cc_min(const Hobject Contour1, const Hobject Contour2, const Htuple Mode, Htuple* DistanceMin)

void DistanceCcMin(const HObject& Contour1, const HObject& Contour2, const HTuple& Mode, HTuple* DistanceMin)

HTuple HXLDCont::DistanceCcMin(const HXLDCont& Contour2, const HString& Mode) const

HTuple HXLDCont::DistanceCcMin(const HXLDCont& Contour2, const char* Mode) const

HTuple HXLDCont::DistanceCcMin(const HXLDCont& Contour2, const wchar_t* Mode) const   (Nur Windows)

static void HOperatorSet.DistanceCcMin(HObject contour1, HObject contour2, HTuple mode, out HTuple distanceMin)

HTuple HXLDCont.DistanceCcMin(HXLDCont contour2, string mode)

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

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