ClassesClassesClassesClasses | | | | Operators

distance_cc_mindistance_cc_minDistanceCcMindistance_cc_minDistanceCcMinDistanceCcMin (Operator)

Name

distance_cc_mindistance_cc_minDistanceCcMindistance_cc_minDistanceCcMinDistanceCcMin — Calculate the minimum distance between two contours.

Signature

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)

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

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

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

HTuple HXLDContArray::DistanceCcMin(const HXLDContArray& Contour2, const HTuple& Mode) const

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

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

VARIANT HXLDContX.DistanceCcMin(
[in] IHXLDContX* Contour2, [in] BSTR Mode)

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

HTuple HXLDCont.DistanceCcMin(HXLDCont contour2, string mode)

Description

distance_cc_mindistance_cc_minDistanceCcMindistance_cc_minDistanceCcMinDistanceCcMin calculates the minimum distance between two contours Contour1Contour1Contour1Contour1Contour1contour1 and Contour2Contour2Contour2Contour2Contour2contour2. The minimum distance is returned in DistanceMinDistanceMinDistanceMinDistanceMinDistanceMindistanceMin.

The parameter ModeModeModeModeModemode sets the type of computing the distance. 'point_to_point'"point_to_point""point_to_point""point_to_point""point_to_point""point_to_point" determines the distance of the closest contour points, 'fast_point_to_segment'"fast_point_to_segment""fast_point_to_segment""fast_point_to_segment""fast_point_to_segment""fast_point_to_segment" calculates the distance of the line segments adjacent to these points, and 'point_to_segment'"point_to_segment""point_to_segment""point_to_segment""point_to_segment""point_to_segment" determines the actual minimum distance of the contour segments.

While 'point_to_point'"point_to_point""point_to_point""point_to_point""point_to_point""point_to_point" and 'fast_point_to_segment'"fast_point_to_segment""fast_point_to_segment""fast_point_to_segment""fast_point_to_segment""fast_point_to_segment" are efficient algorithms with a complexity of n*log(n), 'point_to_segment'"point_to_segment""point_to_segment""point_to_segment""point_to_segment""point_to_segment" has quadratic complexity and thus takes a longer time to execute, especially for contours with many line segments.

Attention

Both input parameters must contain the same number of contours.

Parallelization

Parameters

Contour1Contour1Contour1Contour1Contour1contour1 (input_object)  xld_cont(-array) objectHXLDContHXLDContHXLDContHXLDContXHobject

First input contour.

Contour2Contour2Contour2Contour2Contour2contour2 (input_object)  xld_cont(-array) objectHXLDContHXLDContHXLDContHXLDContXHobject

Second input contour.

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

Distance calculation mode.

Default value: 'fast_point_to_segment' "fast_point_to_segment" "fast_point_to_segment" "fast_point_to_segment" "fast_point_to_segment" "fast_point_to_segment"

List of values: 'fast_point_to_segment'"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_point", 'point_to_segment'"point_to_segment""point_to_segment""point_to_segment""point_to_segment""point_to_segment"

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

Minimum distance between the two contours.

Example (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);

Result

distance_cc_mindistance_cc_minDistanceCcMindistance_cc_minDistanceCcMinDistanceCcMin returns 2 (H_MSG_TRUE).

Alternatives

distance_scdistance_scDistanceScdistance_scDistanceScDistanceSc, distance_pcdistance_pcDistancePcdistance_pcDistancePcDistancePc, distance_ccdistance_ccDistanceCcdistance_ccDistanceCcDistanceCc, distance_contours_xlddistance_contours_xldDistanceContoursXlddistance_contours_xldDistanceContoursXldDistanceContoursXld

See also

distance_srdistance_srDistanceSrdistance_srDistanceSrDistanceSr, distance_prdistance_prDistancePrdistance_prDistancePrDistancePr

Module

Foundation


ClassesClassesClassesClasses | | | | Operators