rem **** LINE TANGENT TO CIRCLE AT ANGLE **** :arc window @xmin,@ymin,@xmax,@ymax set mask, 3 getent "SELECT ARC ", entype if (@key < -1) goto exit if (@key == -1) goto exit basex = @xworld basey = @yworld X = @fltdat[0] Y = @fltdat[1] R = @fltdat[3] :menu getmenu "SELECT ANGLE","0°","45°","90°","135°","180°","225°","270°","315°","KEY-IN", if (@key ==-3) goto exit if (@key ==-2) goto exit if (@key ==-1) goto menu if (@key ==1) goto deg0 if (@key ==2) goto deg45 if (@key ==3) goto deg90 if (@key ==4) goto deg135 if (@key ==5) goto deg180 if (@key ==6) goto deg225 if (@key ==7) goto deg270 if (@key ==8) goto deg315 if (@key ==9) goto degun :deg0 if (@key ==-3) goto menu if (@key ==-2) goto menu if (@key ==-1) goto deg0 line @FLTDAT[0]+R, @FLTDAT[1]-R, 0, @FLTDAT[0]+R, @FLTDAT[1]+R, 0 goto arc :deg90 if (@key ==-3) goto menu if (@key ==-2) goto menu if (@key ==-1) goto deg90 line @FLTDAT[0]-R, @FLTDAT[1]+R, 0, @FLTDAT[0]+R, @FLTDAT[1]+R, 0 goto arc :deg180 if (@key ==-3) goto menu if (@key ==-2) goto menu if (@key ==-1) goto deg180 line @FLTDAT[0]-R, @FLTDAT[1]-R, 0, @FLTDAT[0]-R, @FLTDAT[1]+R, 0 goto arc :deg270 if (@key ==-3) goto menu if (@key ==-2) goto menu if (@key ==-1) goto deg270 line @FLTDAT[0]-R, @FLTDAT[1]-R, 0, @FLTDAT[0]+R, @FLTDAT[1]-R, 0 goto arc :degun def = 0.0 getflt "ENTER ANGLE VALUE => ", def, ang1 a=cos(ang1)*R b=sin(ang1)*R c=sqrt(R^2+R^2) px1 = X + a py1 = Y + b px2 = X py2 = c d=sin(ang1)*R e=cos(ang1)*R goto degun1 :degun1 if (@key ==-3) goto menu if (@key ==-2) goto menu if (@key ==-1) goto degun line px1+d, py1-e, 0, px1-d, py1+e, 0 goto arc :deg45 a=cos(45)*R b=sin(45)*R c=R/sin(45) px1 = X + a py1 = Y + b px2 = X py2 = c if (@key ==-3) goto menu if (@key ==-2) goto menu if (@key ==-1) goto deg45 line px1-R, py1+R, 0, px1+R, py1-R, 0 goto arc :deg135 a=cos(45)*R b=sin(45)*R c=R/sin(45) px1 = X - a py1 = Y + b px2 = X py2 = c if (@key ==-3) goto menu if (@key ==-2) goto menu if (@key ==-1) goto deg135 line px1-R, py1-R, 0, px1+R, py1+R, 0 goto arc :deg225 a=cos(45)*R b=sin(45)*R c=R/sin(45) px1 = X - a py1 = Y - b px2 = X py2 = c if (@key ==-3) goto menu if (@key ==-2) goto menu if (@key ==-1) goto deg225 line px1-R, py1+R, 0, px1+R, py1-R, 0 goto arc :deg315 a=cos(45)*R b=sin(45)*R c=R/sin(45) px1 = X + a py1 = Y - b px2 = X py2 = c if (@key ==-3) goto menu if (@key ==-2) goto menu if (@key ==-1) goto deg315 line px1-R, py1-R, 0, px1+R, py1+R, 0 goto arc :exit redraw exit