projection_plprojection_plProjectionPlProjectionPlprojection_pl (算子)
名称
projection_plprojection_plProjectionPlProjectionPlprojection_pl — 计算点在直线上的投影。
签名
Herror projection_pl(double Row, double Column, double Row1, double Column1, double Row2, double Column2, double* RowProj, double* ColProj)
Herror T_projection_pl(const Htuple Row, const Htuple Column, const Htuple Row1, const Htuple Column1, const Htuple Row2, const Htuple Column2, Htuple* RowProj, Htuple* ColProj)
void ProjectionPl(const HTuple& Row, const HTuple& Column, const HTuple& Row1, const HTuple& Column1, const HTuple& Row2, const HTuple& Column2, HTuple* RowProj, HTuple* ColProj)
static void HMisc::ProjectionPl(const HTuple& Row, const HTuple& Column, const HTuple& Row1, const HTuple& Column1, const HTuple& Row2, const HTuple& Column2, HTuple* RowProj, HTuple* ColProj)
static void HMisc::ProjectionPl(double Row, double Column, double Row1, double Column1, double Row2, double Column2, double* RowProj, double* ColProj)
static void HOperatorSet.ProjectionPl(HTuple row, HTuple column, HTuple row1, HTuple column1, HTuple row2, HTuple column2, out HTuple rowProj, out HTuple colProj)
static void HMisc.ProjectionPl(HTuple row, HTuple column, HTuple row1, HTuple column1, HTuple row2, HTuple column2, out HTuple rowProj, out HTuple colProj)
static void HMisc.ProjectionPl(double row, double column, double row1, double column1, double row2, double column2, out double rowProj, out double colProj)
def projection_pl(row: MaybeSequence[Union[float, int]], column: MaybeSequence[Union[float, int]], row_1: MaybeSequence[Union[float, int]], column_1: MaybeSequence[Union[float, int]], row_2: MaybeSequence[Union[float, int]], column_2: MaybeSequence[Union[float, int]]) -> Tuple[Sequence[float], Sequence[float]]
def projection_pl_s(row: MaybeSequence[Union[float, int]], column: MaybeSequence[Union[float, int]], row_1: MaybeSequence[Union[float, int]], column_1: MaybeSequence[Union[float, int]], row_2: MaybeSequence[Union[float, int]], column_2: MaybeSequence[Union[float, int]]) -> Tuple[float, float]
描述
算子 projection_plprojection_plProjectionPlProjectionPlProjectionPlprojection_pl calculates the projection of a
point (RowRowRowRowrowrow,ColumnColumnColumnColumncolumncolumn) onto a line which is
represented by the two points (Row1Row1Row1Row1row1row_1,Column1Column1Column1Column1column1column_1) and
(Row2Row2Row2Row2row2row_2,Column2Column2Column2Column2column2column_2). The coordinates of the projected
point are returned in RowProjRowProjRowProjRowProjrowProjrow_proj and ColProjColProjColProjColProjcolProjcol_proj。
执行信息
- 多线程类型:可重入(与非独占算子并行运行)。
- 多线程作用域:全局(可从任何线程调用)。
- 未采用并行化处理。
参数
RowRowRowRowrowrow (输入控制) point.y(-array) → HTupleMaybeSequence[Union[float, int]]HTupleHtuple (real / integer) (double / int / long) (double / Hlong) (double / Hlong)
Row coordinate of the point.
ColumnColumnColumnColumncolumncolumn (输入控制) point.x(-array) → HTupleMaybeSequence[Union[float, int]]HTupleHtuple (real / integer) (double / int / long) (double / Hlong) (double / Hlong)
Column coordinate of the point.
Row1Row1Row1Row1row1row_1 (输入控制) point.y(-array) → HTupleMaybeSequence[Union[float, int]]HTupleHtuple (real / integer) (double / int / long) (double / Hlong) (double / Hlong)
Row coordinate of the first point on the line.
Column1Column1Column1Column1column1column_1 (输入控制) point.x(-array) → HTupleMaybeSequence[Union[float, int]]HTupleHtuple (real / integer) (double / int / long) (double / Hlong) (double / Hlong)
Column coordinate of the first point on the line.
Row2Row2Row2Row2row2row_2 (输入控制) point.y(-array) → HTupleMaybeSequence[Union[float, int]]HTupleHtuple (real / integer) (double / int / long) (double / Hlong) (double / Hlong)
Row coordinate of the second point on the line.
Column2Column2Column2Column2column2column_2 (输入控制) point.x(-array) → HTupleMaybeSequence[Union[float, int]]HTupleHtuple (real / integer) (double / int / long) (double / Hlong) (double / Hlong)
Column coordinate of the second point on the line.
RowProjRowProjRowProjRowProjrowProjrow_proj (输出控制) real(-array) → HTupleSequence[float]HTupleHtuple (real) (double) (double) (double)
Row coordinate of the projected point.
ColProjColProjColProjColProjcolProjcol_proj (输出控制) real(-array) → HTupleSequence[float]HTupleHtuple (real) (double) (double) (double)
Column coordinate of the projected point
示例(HDevelop)
dev_open_window (0, 0, 512, 512, 'black', WindowHandle)
Row1 := 300
Column1 := 200
Row2 := 140
Column2 := 400
Rows := 300
Columns := 170
dev_set_color ('cadet blue')
gen_contour_polygon_xld (Contour, [Row1,Row2], [Column1,Column2])
Offset := 0
for Rows := 40 to 280 by 40
dev_set_color ('red')
gen_cross_contour_xld (Point,Rows+Offset, Columns, 6, 0)
projection_pl (Rows+Offset, Columns, Row1, Column1, Row2, Column2, \
RowProj, ColProj)
dev_set_color ('blue')
gen_cross_contour_xld (RowP, RowProj, ColProj, 6, 0)
Offset := Offset+30
endfor
示例(C)
projection_pl(row,column,row1,column1,row2,column2,
&row_proj,&col_proj);
示例(HDevelop)
dev_open_window (0, 0, 512, 512, 'black', WindowHandle)
Row1 := 300
Column1 := 200
Row2 := 140
Column2 := 400
Rows := 300
Columns := 170
dev_set_color ('cadet blue')
gen_contour_polygon_xld (Contour, [Row1,Row2], [Column1,Column2])
Offset := 0
for Rows := 40 to 280 by 40
dev_set_color ('red')
gen_cross_contour_xld (Point,Rows+Offset, Columns, 6, 0)
projection_pl (Rows+Offset, Columns, Row1, Column1, Row2, Column2, \
RowProj, ColProj)
dev_set_color ('blue')
gen_cross_contour_xld (RowP, RowProj, ColProj, 6, 0)
Offset := Offset+30
endfor
示例(HDevelop)
dev_open_window (0, 0, 512, 512, 'black', WindowHandle)
Row1 := 300
Column1 := 200
Row2 := 140
Column2 := 400
Rows := 300
Columns := 170
dev_set_color ('cadet blue')
gen_contour_polygon_xld (Contour, [Row1,Row2], [Column1,Column2])
Offset := 0
for Rows := 40 to 280 by 40
dev_set_color ('red')
gen_cross_contour_xld (Point,Rows+Offset, Columns, 6, 0)
projection_pl (Rows+Offset, Columns, Row1, Column1, Row2, Column2, \
RowProj, ColProj)
dev_set_color ('blue')
gen_cross_contour_xld (RowP, RowProj, ColProj, 6, 0)
Offset := Offset+30
endfor
示例(HDevelop)
dev_open_window (0, 0, 512, 512, 'black', WindowHandle)
Row1 := 300
Column1 := 200
Row2 := 140
Column2 := 400
Rows := 300
Columns := 170
dev_set_color ('cadet blue')
gen_contour_polygon_xld (Contour, [Row1,Row2], [Column1,Column2])
Offset := 0
for Rows := 40 to 280 by 40
dev_set_color ('red')
gen_cross_contour_xld (Point,Rows+Offset, Columns, 6, 0)
projection_pl (Rows+Offset, Columns, Row1, Column1, Row2, Column2, \
RowProj, ColProj)
dev_set_color ('blue')
gen_cross_contour_xld (RowP, RowProj, ColProj, 6, 0)
Offset := Offset+30
endfor
结果
projection_plprojection_plProjectionPlProjectionPlProjectionPlprojection_pl 返回 2 ( H_MSG_TRUE )。
模块
基础