! TITLE: ang_diff.mac (CALCULATION) ! ! ! Added capability for any real number inputs. ! ! OBJECTIVE: ! ! This sub-macro calculates the subtended angle between 2 angular dimensions, ! angle#1 and angle#2, as measured from angle#1 to angle#2 in a CCW direction. ! ! ! COMMAND SYNTAX: ! ! (1) (2) ! ANG_DIFF, angle#1, angle#2 ! ! ! ARGUMENTS: ! ! (1) angle#1 = the initial angle value (in degrees). ! ! (2) angle#2 = the final angle value (in degrees). ! ! ! DESCRIPTION: ! ! The angles may be any + or - real number, and also may be > 360, or < -360. ! ! The convention used is: ! ! d_angle = angle#2 - angle#1 ! ! The calculated angular distance, D_ANGLE, FROM angle#1 TO angle#2, in a ! counter-clockwise (CCW) direction, is returned in the output parameter ! (in degrees): ! ! d_angle ! ! ! *get,prkey_,active,0,prkey /nopr ! ang1__=arg1 ang2__=arg2 ! *if,ang1__,le,-360,then ang1__=mod(ang1__,360) *elseif,ang1__,ge,360,then ang1__=mod(ang1__,360) *endif ! *if,ang2__,le,-360,then ang2__=mod(ang2__,360) *elseif,ang2__,ge,360,then ang2__=mod(ang2__,360) *endif ! *if,ang1__,lt,0,then ang_convert,'ang1__',0 *endif ! *if,ang2__,lt,0,then ang_convert,'ang2__',0 *endif ! *if,ang2__,lt,ang1__,then ang2__=ang2__+360 d_angle=ang2__-ang1__ *elseif,ang2__,ge,ang1__,then d_angle=ang2__-ang1__ *endif ! *set,ang1__, *set,ang2__, *set,delta_, ! *if,prkey_,eq,1,then /go *endif