## ATARI2.BAS

`'***********************************************''Atan2.bas by Nally + April 2000'Released as open source''A function called ATAN2() is provided herein.'ATAN2() takes two arguements: cartesian x and y'coordinates.  It returns an angle, phi, in'radians.''ATAN2() differs from ATN() in this regard:'while ATN() only returns an angle between'-pi/2 and +pi/2, ATAN2() will return any'angle in the full circle.''The user should not call the function if both'x and y = 0.  This corresponds to a point at'the origin of the coordinate system where'the angle phi has no meaning.''***********************************************`
`     pi = 3.14159265`
```     Print " "
Print "Note: Input real numbers for"
Print " x and y. Either x or y"
Print " or both must be non-zero."
Print " "
Print "** INPUT **"
Print " "```
```Input "x = "; x
Input "y = "; y```
```Print " "
Print "** OUTPUT **"
Print " "```
```phiRads = ATAN2(x, y)
phiDegs = 360 * (phiRads / (2 * pi))
R = (x^2 + y^2)^(1/2)
Print "Cartesion Coordinates of Q....Q("; x; ", "; y;      ")"
Print " "
Print "ATAN2 in degrees.............."; phiDegs
Print "Distance to Q................."; R
Print " "
Print "Polar Coordinates of Q........Q("; phiRads; ", ";      R;")"```

`     End`
```Function ATAN2(x, y)
pi = 3.14159265
Result\$ = "Undetermined"
If (x = 0) and (y > 0) Then
ATAN2 = pi / 2
Result\$ = "Determined"
End If
If (x = 0) and (y < 0) Then
ATAN2 = 3 * pi / 2
Result\$ = "Determined"
End If
If (x > 0) and (y = 0) Then
ATAN2 = 0
Result\$ = "Determined"
End If
If (x < 0) and (y = 0) Then
ATAN2 = pi
Result\$ = "Determined"
End If```
` If Result\$ = "Determined" Then [End.of.function]`
```     BaseAngle = Atn(abs(y)/abs(x))
If (x > 0) and (y > 0) Then ATAN2 = BaseAngle
If (x < 0) and (y > 0) Then ATAN2 = pi - BaseAngle
If (x < 0) and (y < 0) Then ATAN2 = pi + BaseAngle
If (x > 0) and (y < 0) Then ATAN2 = 2*pi - BaseAngle```
` [End.of.function]`
`End Function`