//首先读取一张空白图片方便绘制坐标系
read_image (Image, 'E:/Halcon数据/资源图片/33.png')
get_image_size (Image, Width, Height)
dev_set_color ('blue')
gen_arrow_contour_xld (Arrow, 100, 100, 100, Width-100, 5, 5)
gen_arrow_contour_xld (Arrow, 100, 100, Height-100, 100, 5, 5)
dev_set_color ('red')
*400,400作为圆心 R300
Y_center:=400
X_center:=400
gen_cross_contour_xld (CrossCenter, Y_center,X_center, 60, 0.785398)
*显示初始点
Y_Begion:=100
X_Begion:=400
gen_cross_contour_xld (Cross, Y_Begion, X_Begion, 60, 0.785398)
*旋转半径 也可直接赋值R=300
R:=Y_center-Y_Begion
*旋转角度 sin cos调用弧度值 逆时针旋转为负顺时针为正
Angle:=rad(90)
gen_circle_contour_xld (ContCircle, Y_center, X_center, R, 0, 6.28318, 'positive', 1)
*显示目标点
Y_Now:=400
X_Now:=700
gen_cross_contour_xld (Cross1, Y_Now, X_Now, 60, 0.785398)
//逆时针旋转 公式:
//x1 = xcos(θ) - ysin(θ)
//y1 = xsin(θ) + ycos(θ)
//如果是顺时针方向旋转,把θ变成负的即可:-θ
*偏移旋转公式
Y_Trans:=(Y_Begion-Y_center)*cos(Angle)+(X_Begion-X_center)*sin(Angle)+Y_center
X_Trans:=(X_Begion-X_center)*cos(Angle)-(Y_Begion-Y_center)*sin(Angle)+X_center
dev_set_color ('green')
gen_cross_contour_xld (Cross2, Y_Trans, X_Trans, 60, 0.785398)
*偏移旋转算子
hom_mat2d_identity (HomMat2DIdentity)
hom_mat2d_rotate (HomMat2DIdentity, rad(90), X_center, Y_center, HomMat2DRotate)
affine_trans_point_2d (HomMat2DRotate, X_Begion,Y_Begion, Qx, Qy)
gen_circle_contour_xld (ContCircle1, Qy, Qx, 10, 0, 6.28318, 'positive', 1)