Skip to content

distance_cc_minDistanceCcMinDistanceCcMindistance_cc_mindistance_cc_min🔗

Short description🔗

distance_cc_minDistanceCcMinDistanceCcMindistance_cc_mindistance_cc_min — Calculate the minimum distance between two contours.

Signature🔗

distance_cc_min( xld_cont Contour1, xld_cont Contour2, string Mode, out number DistanceMin )void DistanceCcMin( const HObject& Contour1, const HObject& Contour2, const HTuple& Mode, HTuple* DistanceMin )static void HOperatorSet.DistanceCcMin( HObject contour1, HObject contour2, HTuple mode, out HTuple distanceMin )def distance_cc_min( contour_1: HObject, contour_2: HObject, mode: MaybeSequence[str] ) -> Sequence[float]

def distance_cc_min_s( contour_1: HObject, contour_2: HObject, mode: MaybeSequence[str] ) -> floatHerror 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 )

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

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

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

double HXLDCont::DistanceCcMin( const HXLDCont& Contour2, const wchar_t* Mode ) const (Windows only)

HTuple HXLDCont.DistanceCcMin( HXLDCont contour2, HTuple mode )

double HXLDCont.DistanceCcMin( HXLDCont contour2, string mode )

Description🔗

distance_cc_minDistanceCcMin calculates the minimum distance between two contours Contour1contour1contour_1 and Contour2contour2contour_2. The minimum distance is returned in DistanceMindistanceMindistance_min.

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

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

Parameter Broadcasting🔗

This operator supports parameter broadcasting. This means that each parameter can be given as a tuple of length 1 or N. Parameters with tuple length 1 will be repeated internally such that the number of computed distances is always N.

Execution information🔗

Execution information
  • Multithreading type: reentrant (runs in parallel with non-exclusive operators).

  • Multithreading scope: global (may be called from any thread).

  • Automatically parallelized on internal data level.

Parameters🔗

Contour1contour1contour_1 (input_object) xld_cont(-array) → objectHObjectHXLDContHObjectHobject

First input contour.

Contour2contour2contour_2 (input_object) xld_cont(-array) → objectHObjectHXLDContHObjectHobject

Second input contour.

Modemodemode (input_control) string(-array) → (string)HTuple (HString)HTuple (string)MaybeSequence[str]Htuple (char*)

Distance calculation mode.

Default: 'fast_point_to_segment'"fast_point_to_segment"
List of values: 'fast_point_to_segment', 'point_to_point', 'point_to_segment'"fast_point_to_segment", "point_to_point", "point_to_segment"

DistanceMindistanceMindistance_min (output_control) number(-array) → (real)HTuple (double)HTuple (double)Sequence[float]Htuple (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_minDistanceCcMin returns 2 (H_MSG_TRUE).

Combinations with other operators🔗

Combinations

Alternatives

distance_scDistanceSc, distance_pcDistancePc, distance_ccDistanceCc, distance_contours_xldDistanceContoursXld

See also

distance_srDistanceSr, distance_prDistancePr

Module🔗

Foundation