angle_lxangle_lxAngleLxAngleLxangle_lx角度线水平(算子)

名称

angle_lxangle_lxAngleLxAngleLxangle_lx — 计算一条线与水平轴之间的角度。

签名

angle_lx( : : Row1, Column1, Row2, Column2 : Angle)

Herror angle_lx(double Row1, double Column1, double Row2, double Column2, double* Angle)

Herror T_angle_lx(const Htuple Row1, const Htuple Column1, const Htuple Row2, const Htuple Column2, Htuple* Angle)

void AngleLx(const HTuple& Row1, const HTuple& Column1, const HTuple& Row2, const HTuple& Column2, HTuple* Angle)

static HTuple HMisc::AngleLx(const HTuple& Row1, const HTuple& Column1, const HTuple& Row2, const HTuple& Column2)

static double HMisc::AngleLx(double Row1, double Column1, double Row2, double Column2)

static void HOperatorSet.AngleLx(HTuple row1, HTuple column1, HTuple row2, HTuple column2, out HTuple angle)

static HTuple HMisc.AngleLx(HTuple row1, HTuple column1, HTuple row2, HTuple column2)

static double HMisc.AngleLx(double row1, double column1, double row2, double column2)

def angle_lx(row_1: MaybeSequence[Union[float, int]], column_1: MaybeSequence[Union[float, int]], row_2: MaybeSequence[Union[float, int]], column_2: MaybeSequence[Union[float, int]]) -> Sequence[float]

def angle_lx_s(row_1: MaybeSequence[Union[float, int]], column_1: MaybeSequence[Union[float, int]], row_2: MaybeSequence[Union[float, int]], column_2: MaybeSequence[Union[float, int]]) -> float

描述

算子 angle_lxangle_lxAngleLxAngleLxAngleLxangle_lx 计算一条线与水平轴之间的角度。作为输入,需要提供线上两点的坐标 (Row1Row1Row1Row1row1row_1,Column1Column1Column1Column1column1column_1, Row2Row2Row2Row2row2row_2,Column2Column2Column2Column2column2column_2) 。计算过程如下:我们将该线视为一个向量,其起点为 Row1Row1Row1Row1row1row_1,Column1Column1Column1Column1column1column_1,终点为 Row2Row2Row2Row2row2row_2,Column2Column2Column2Column2column2column_2。起点位于水平轴上,并在此后的讨论中定义旋转中心。若终点位于水平轴上方,则该角度(带正号)源于水平轴逆时针方向沿该向量旋转所得的结果。若终点位于水平轴下方,则该角度(带负号)源于水平轴顺时针旋转至该向量所得的结果。结果取决于定义该线的两个点的顺序。参数 AngleAngleAngleAngleangleangle 返回以弧度为单位的角度,范围为

执行信息

参数

Row1Row1Row1Row1row1row_1 (输入控制)  point.y(-array) HTupleMaybeSequence[Union[float, int]]HTupleHtuple (real / integer) (double / int / long) (double / Hlong) (double / Hlong)

线的第一点的行坐标。

Column1Column1Column1Column1column1column_1 (输入控制)  point.x(-array) HTupleMaybeSequence[Union[float, int]]HTupleHtuple (real / integer) (double / int / long) (double / Hlong) (double / Hlong)

线的第一点的列坐标。

Row2Row2Row2Row2row2row_2 (输入控制)  point.y(-array) HTupleMaybeSequence[Union[float, int]]HTupleHtuple (real / integer) (double / int / long) (double / Hlong) (double / Hlong)

线的第二点的行坐标。

Column2Column2Column2Column2column2column_2 (输入控制)  point.x(-array) HTupleMaybeSequence[Union[float, int]]HTupleHtuple (real / integer) (double / int / long) (double / Hlong) (double / Hlong)

线的第二点的列坐标。

AngleAngleAngleAngleangleangle (输出控制)  angle.rad(-array) HTupleSequence[float]HTupleHtuple (real) (double) (double) (double)

线与水平轴之间的角度 [弧度]。

示例(HDevelop)

dev_open_window (0, 0, 512, 512, 'black', WindowHandle)
RowA1 := 255
ColumnA1 := 10
RowA2 := 255
ColumnA2 := 501
gen_contour_polygon_xld (Contour, [RowA1,RowA2], [ColumnA1,ColumnA2])
Row1 := 255
Column1 := 255
for I := 5 to 360 by 5
  Row2 := 255 - sin(rad(I)) * 200
  Column2 := 255 + cos(rad(I)) * 200
  gen_contour_polygon_xld (Contour, [Row1,Row2], [Column1,Column2])
  angle_lx (Row1, Column1, Row2, Column2, Angle)
  AngleDeg := deg(Angle)
endfor

结果

angle_lxangle_lxAngleLxAngleLxAngleLxangle_lx 返回 2 ( H_MSG_TRUE )。

替代

angle_llangle_llAngleLlAngleLlAngleLlangle_ll

模块

基础