distance_psdistance_psDistancePsDistancePs (Operator)
Name
distance_psdistance_psDistancePsDistancePs
— Calculate the distances between a point and a line segment.
Signature
Herror distance_ps(double Row, double Column, double Row1, double Column1, double Row2, double Column2, double* DistanceMin, double* DistanceMax)
Herror T_distance_ps(const Htuple Row, const Htuple Column, const Htuple Row1, const Htuple Column1, const Htuple Row2, const Htuple Column2, Htuple* DistanceMin, Htuple* DistanceMax)
void DistancePs(const HTuple& Row, const HTuple& Column, const HTuple& Row1, const HTuple& Column1, const HTuple& Row2, const HTuple& Column2, HTuple* DistanceMin, HTuple* DistanceMax)
static void HMisc::DistancePs(const HTuple& Row, const HTuple& Column, const HTuple& Row1, const HTuple& Column1, const HTuple& Row2, const HTuple& Column2, HTuple* DistanceMin, HTuple* DistanceMax)
static void HMisc::DistancePs(double Row, double Column, double Row1, double Column1, double Row2, double Column2, double* DistanceMin, double* DistanceMax)
static void HOperatorSet.DistancePs(HTuple row, HTuple column, HTuple row1, HTuple column1, HTuple row2, HTuple column2, out HTuple distanceMin, out HTuple distanceMax)
static void HMisc.DistancePs(HTuple row, HTuple column, HTuple row1, HTuple column1, HTuple row2, HTuple column2, out HTuple distanceMin, out HTuple distanceMax)
static void HMisc.DistancePs(double row, double column, double row1, double column1, double row2, double column2, out double distanceMin, out double distanceMax)
Description
The operator distance_psdistance_psDistancePsDistancePsDistancePs
calculates the minimum and
maximum distance between a point
(RowRowRowRowrow
,ColumnColumnColumnColumncolumn
) and a line segment which is represented
by the start point (Row1Row1Row1Row1row1
,Column1Column1Column1Column1column1
) and the
end point (Row2Row2Row2Row2row2
,Column2Column2Column2Column2column2
).
DistanceMaxDistanceMaxDistanceMaxDistanceMaxdistanceMax
is the maximum distance between the point
and the end points of the line segment.
DistanceMinDistanceMinDistanceMinDistanceMindistanceMin
is identical to distance_pldistance_plDistancePlDistancePlDistancePl
in
the case that the point is “between” the two endpoints.
Otherwise, the minimum distance to one of the end points is used.
Execution Information
- Multithreading type: reentrant (runs in parallel with non-exclusive operators).
- Multithreading scope: global (may be called from any thread).
- Processed without parallelization.
Parameters
RowRowRowRowrow
(input_control) point.y(-array) →
HTupleHTupleHtuple (real / integer) (double / int / long) (double / Hlong) (double / Hlong)
Row coordinate of the first point.
ColumnColumnColumnColumncolumn
(input_control) point.x(-array) →
HTupleHTupleHtuple (real / integer) (double / int / long) (double / Hlong) (double / Hlong)
Column coordinate of the first point.
Row1Row1Row1Row1row1
(input_control) point.y(-array) →
HTupleHTupleHtuple (real / integer) (double / int / long) (double / Hlong) (double / Hlong)
Row coordinate of the first point of the line segment.
Column1Column1Column1Column1column1
(input_control) point.x(-array) →
HTupleHTupleHtuple (real / integer) (double / int / long) (double / Hlong) (double / Hlong)
Column coordinate of the first point of the line segment.
Row2Row2Row2Row2row2
(input_control) point.y(-array) →
HTupleHTupleHtuple (real / integer) (double / int / long) (double / Hlong) (double / Hlong)
Row coordinate of the second point of the line segment.
Column2Column2Column2Column2column2
(input_control) point.x(-array) →
HTupleHTupleHtuple (real / integer) (double / int / long) (double / Hlong) (double / Hlong)
Column coordinate of the second point of the line segment.
DistanceMinDistanceMinDistanceMinDistanceMindistanceMin
(output_control) real(-array) →
HTupleHTupleHtuple (real) (double) (double) (double)
Minimum distance between the point and the
line segment.
DistanceMaxDistanceMaxDistanceMaxDistanceMaxdistanceMax
(output_control) real(-array) →
HTupleHTupleHtuple (real) (double) (double) (double)
Maximum distance between the point and the
line segment.
Example (HDevelop)
dev_open_window (0, 0, 512, 512, 'black', WindowHandle)
draw_point (WindowHandle, Row, Column)
gen_cross_contour_xld (Cross, Row, Column, 15, 0)
draw_line (WindowHandle, Row1, Column1, Row2, Column2)
gen_contour_polygon_xld (Contour, [Row1,Row2], [Column1,Column2])
distance_ps (Row, Column, Row1, Column1, Row2, Column2, \
DistanceMin, DistanceMax)
Example (C)
double row,column,row1,column1,row2,column2;
double distance_min,distance_max;
draw_point(WindowHandle,&row,&column);
draw_line(WindowHandle,&row1,&column1,&row2,&column2);
distance_pl(row,column,row1,column1,row2,column2,
&distance_min,&distance_max);
Example (HDevelop)
dev_open_window (0, 0, 512, 512, 'black', WindowHandle)
draw_point (WindowHandle, Row, Column)
gen_cross_contour_xld (Cross, Row, Column, 15, 0)
draw_line (WindowHandle, Row1, Column1, Row2, Column2)
gen_contour_polygon_xld (Contour, [Row1,Row2], [Column1,Column2])
distance_ps (Row, Column, Row1, Column1, Row2, Column2, \
DistanceMin, DistanceMax)
Example (HDevelop)
dev_open_window (0, 0, 512, 512, 'black', WindowHandle)
draw_point (WindowHandle, Row, Column)
gen_cross_contour_xld (Cross, Row, Column, 15, 0)
draw_line (WindowHandle, Row1, Column1, Row2, Column2)
gen_contour_polygon_xld (Contour, [Row1,Row2], [Column1,Column2])
distance_ps (Row, Column, Row1, Column1, Row2, Column2, \
DistanceMin, DistanceMax)
Example (HDevelop)
dev_open_window (0, 0, 512, 512, 'black', WindowHandle)
draw_point (WindowHandle, Row, Column)
gen_cross_contour_xld (Cross, Row, Column, 15, 0)
draw_line (WindowHandle, Row1, Column1, Row2, Column2)
gen_contour_polygon_xld (Contour, [Row1,Row2], [Column1,Column2])
distance_ps (Row, Column, Row1, Column1, Row2, Column2, \
DistanceMin, DistanceMax)
Result
distance_psdistance_psDistancePsDistancePsDistancePs
returns 2 (H_MSG_TRUE).
Alternatives
distance_pldistance_plDistancePlDistancePlDistancePl
See also
distance_ppdistance_ppDistancePpDistancePpDistancePp
,
distance_prdistance_prDistancePrDistancePrDistancePr
Module
Foundation