distance_ccdistance_ccDistanceCcDistanceCcdistance_cc (算子)

名称

distance_ccdistance_ccDistanceCcDistanceCcdistance_cc — 计算两个轮廓之间的距离。

签名

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)

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 HXLDCont::DistanceCc(const HXLDCont& Contour2, const wchar_t* Mode, double* DistanceMin, double* DistanceMax) const   ( Windows only)

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)

def distance_cc(contour_1: HObject, contour_2: HObject, mode: str) -> Tuple[Sequence[float], Sequence[float]]

def distance_cc_s(contour_1: HObject, contour_2: HObject, mode: str) -> Tuple[float, float]

描述

算子 distance_ccdistance_ccDistanceCcDistanceCcDistanceCcdistance_cc calculates the minimum and maximum distance between the base points of two contours ( Contour1Contour1Contour1Contour1contour1contour_1 and Contour2Contour2Contour2Contour2contour2contour_2). The parameters DistanceMinDistanceMinDistanceMinDistanceMindistanceMindistance_min and DistanceMaxDistanceMaxDistanceMaxDistanceMaxdistanceMaxdistance_max contain the resulting distance.

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" only determines the minimum and maximum distance between the base points of the contours. This results in faster algorithm, but may lead to inaccurate minimum distances. In contrast, 'point_to_segment'"point_to_segment""point_to_segment""point_to_segment""point_to_segment""point_to_segment" determines the actual minimum distance between the contour segments.

In both cases, the search algorithm has a quadratic complexity (n*n). If only the minimum distance is required, the operator distance_cc_mindistance_cc_minDistanceCcMinDistanceCcMinDistanceCcMindistance_cc_min can be used alternatively since it offers algorithms with a complexity of n*log(n).

注意

Both iconic input parameters must contain the same number of contours.

执行信息

参数

Contour1Contour1Contour1Contour1contour1contour_1 (输入对象)  xld_cont(-array) objectHXLDContHObjectHXLDContHobject

First input contour.

Contour2Contour2Contour2Contour2contour2contour_2 (输入对象)  xld_cont(-array) objectHXLDContHObjectHXLDContHobject

Second input contour.

ModeModeModeModemodemode (输入控制)  string HTuplestrHTupleHtuple (string) (string) (HString) (char*)

Distance calculation mode.

默认值: 'point_to_point' "point_to_point" "point_to_point" "point_to_point" "point_to_point" "point_to_point"

值列表: '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"

DistanceMinDistanceMinDistanceMinDistanceMindistanceMindistance_min (输出控制)  real(-array) HTupleSequence[float]HTupleHtuple (real) (double) (double) (double)

Minimum distance between both contours.

DistanceMaxDistanceMaxDistanceMaxDistanceMaxdistanceMaxdistance_max (输出控制)  real(-array) HTupleSequence[float]HTupleHtuple (real) (double) (double) (double)

Maximum distance between both contours.

示例(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);

结果

distance_ccdistance_ccDistanceCcDistanceCcDistanceCcdistance_cc 返回 2 ( H_MSG_TRUE )。

替代

distance_scdistance_scDistanceScDistanceScDistanceScdistance_sc, distance_pcdistance_pcDistancePcDistancePcDistancePcdistance_pc, distance_cc_mindistance_cc_minDistanceCcMinDistanceCcMinDistanceCcMindistance_cc_min, distance_contours_xlddistance_contours_xldDistanceContoursXldDistanceContoursXldDistanceContoursXlddistance_contours_xld

另见

distance_srdistance_srDistanceSrDistanceSrDistanceSrdistance_sr, distance_prdistance_prDistancePrDistancePrDistancePrdistance_pr

模块

基础