distance_ccdistance_ccDistanceCcDistanceCcdistance_cc (算子名称)
名称
distance_ccdistance_ccDistanceCcDistanceCcdistance_cc — Calculate the distance between two contours.
参数签名
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)
描述
该算子 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, 该算子
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 (input_object) xld_cont(-array) → objectHXLDContHObjectHXLDContHobject
First input contour.
Contour2Contour2Contour2Contour2contour2contour_2 (input_object) xld_cont(-array) → objectHXLDContHObjectHXLDContHobject
Second input contour.
ModeModeModeModemodemode (input_control) string → HTuplestrHTupleHtuple (string) (string) (HString) (char*)
Distance calculation mode.
Default:
'point_to_point'
"point_to_point"
"point_to_point"
"point_to_point"
"point_to_point"
"point_to_point"
List of values:
'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 (output_control) real(-array) → HTupleSequence[float]HTupleHtuple (real) (double) (double) (double)
Minimum distance between both contours.
DistanceMaxDistanceMaxDistanceMaxDistanceMaxdistanceMaxdistance_max (output_control) 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 returns 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
模块
Foundation