KlassenKlassenKlassenKlassen | | | | Operatoren

distance_ccdistance_ccDistanceCcdistance_ccDistanceCcDistanceCc (Operator)

Name

distance_ccdistance_ccDistanceCcdistance_ccDistanceCcDistanceCc — Berechnen des Abstandes zwischen zwei Konturen.

Signatur

distance_cc(Contour1, Contour2 : : Mode : DistanceMin, DistanceMax)

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

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

Herror distance_cc(Hobject Contour1, Hobject Contour2, const HTuple& Mode, double* DistanceMin, double* DistanceMax)

Herror distance_cc(Hobject Contour1, Hobject Contour2, const HTuple& Mode, HTuple* DistanceMin, HTuple* DistanceMax)

double HXLDCont::DistanceCc(const HXLDCont& Contour2, const HTuple& Mode, double* DistanceMax) const

HTuple HXLDContArray::DistanceCc(const HXLDContArray& Contour2, const HTuple& Mode, HTuple* DistanceMax) const

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

void HXLDCont::DistanceCc(const HXLDCont& Contour2, const HString& Mode, HTuple* DistanceMin, HTuple* DistanceMax) const

void HXLDCont::DistanceCc(const HXLDCont& Contour2, const HString& Mode, double* DistanceMin, double* DistanceMax) const

void HXLDCont::DistanceCc(const HXLDCont& Contour2, const char* Mode, double* DistanceMin, double* DistanceMax) const

void HOperatorSetX.DistanceCc(
[in] IHUntypedObjectX* Contour1, [in] IHUntypedObjectX* Contour2, [in] VARIANT Mode, [out] VARIANT* DistanceMin, [out] VARIANT* DistanceMax)

VARIANT HXLDContX.DistanceCc(
[in] IHXLDContX* Contour2, [in] BSTR Mode, [out] VARIANT* DistanceMax)

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

void HXLDCont.DistanceCc(HXLDCont contour2, string mode, out HTuple distanceMin, out HTuple distanceMax)

void HXLDCont.DistanceCc(HXLDCont contour2, string mode, out double distanceMin, out double distanceMax)

Beschreibung

distance_ccdistance_ccDistanceCcdistance_ccDistanceCcDistanceCc berechnet den minimalen und maximalen Abstand zwischen den Stützpunkten zweier Konturen. Als Eingabe werden die beiden Konturen (Contour1Contour1Contour1Contour1Contour1contour1,Contour2Contour2Contour2Contour2Contour2contour2) erwartet. Das jeweilige Ergebnis wird in den Parametern DistanceMinDistanceMinDistanceMinDistanceMinDistanceMindistanceMin und DistanceMaxDistanceMaxDistanceMaxDistanceMaxDistanceMaxdistanceMax zurückgegeben.

Der Parameter ModeModeModeModeModemode gibt an, auf welche Weise der Abstand berechnet wird. 'point_to_point'"point_to_point""point_to_point""point_to_point""point_to_point""point_to_point" bestimmt nur den kleinsten und größten Abstand der Stützpunkte der Konturen, was sich zwar schneller berechnen lässt, jedoch zu Ungenauigkeiten beim minimalem Abstand führen kann. 'point_to_segment'"point_to_segment""point_to_segment""point_to_segment""point_to_segment""point_to_segment" bestimmt dagegen den tatsächlichen minimalen Abstand der Kontursegmente. In beiden Fällen hat der Suchalgorithmus quadratische Komplexität (n*n). Wird nur der minimale Abstand der Konturen benötigt, kann auch der Operator distance_cc_mindistance_cc_minDistanceCcMindistance_cc_minDistanceCcMinDistanceCcMin verwendet werden, welcher Algorithmen mit einer Komplexität der Ordnung n*log(n) zur Verfügung stellt.

Achtung

Beide Eingabeparameter müssen die gleiche Anzahl von Konturen enthalten.

Parallelisierung

Parameter

Contour1Contour1Contour1Contour1Contour1contour1 (input_object)  xld_cont(-array) objectHXLDContHXLDContHXLDContHXLDContXHobject

Erste Eingabekontur.

Contour2Contour2Contour2Contour2Contour2contour2 (input_object)  xld_cont(-array) objectHXLDContHXLDContHXLDContHXLDContXHobject

Zweite Eingabekontur.

ModeModeModeModeModemode (input_control)  string HTupleHTupleHTupleVARIANTHtuple (string) (string) (HString) (char*) (BSTR) (char*)

Art der Abstandsberechnung.

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"

DistanceMinDistanceMinDistanceMinDistanceMinDistanceMindistanceMin (output_control)  real(-array) HTupleHTupleHTupleVARIANTHtuple (real) (double) (double) (double) (double) (double)

Minimaler Abstand zwischen beiden Konturen.

DistanceMaxDistanceMaxDistanceMaxDistanceMaxDistanceMaxdistanceMax (output_control)  real(-array) HTupleHTupleHTupleVARIANTHtuple (real) (double) (double) (double) (double) (double)

Maximaler 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(Cont1, Cont2, 'point_to_point', &distance_min, &distance_max);

Ergebnis

distance_ccdistance_ccDistanceCcdistance_ccDistanceCcDistanceCc liefert den Wert 2 (H_MSG_TRUE).

Alternativen

distance_scdistance_scDistanceScdistance_scDistanceScDistanceSc, distance_pcdistance_pcDistancePcdistance_pcDistancePcDistancePc, distance_cc_mindistance_cc_minDistanceCcMindistance_cc_minDistanceCcMinDistanceCcMin, distance_contours_xlddistance_contours_xldDistanceContoursXlddistance_contours_xldDistanceContoursXldDistanceContoursXld

Siehe auch

distance_srdistance_srDistanceSrdistance_srDistanceSrDistanceSr, distance_prdistance_prDistancePrdistance_prDistancePrDistancePr

Modul

Foundation


KlassenKlassenKlassenKlassen | | | | Operatoren