forked from QB64-Phoenix-Edition/QB64pe
-
Notifications
You must be signed in to change notification settings - Fork 0
ATN
Samuel Gomes edited this page Nov 8, 2022
·
1 revision
The ATN or arctangent function returns the angle in radians of a numerical TAN value.
radianAngle = ATN(tangent!)
- The return is the tangent!'s angle in radians.
- tangent! SINGLE or DOUBLE values are used by the function. EX:Pi = 4 * ATN(1)
- To convert from radians to degrees, multiply radians * (180 / �).
- The tangent value would be equal to the tangent value of an angle. Ex: TAN(ATN(1)) = 1
- The function return value is between -� / 2 and � / 2.
When the TANgent value equals 1, the line is drawn at a 45 degree angle (.7853982 radians) where SIN / COS = 1.
SCREEN 12
x = 100 * COS(ATN(1))
y = 100 * SIN(ATN(1))
LINE (200, 200)-(200 + x, 200 + y)
ATN can be used to define π in SINGLE or DOUBLE precision. The calculation cannot be used as a CONSTant.
Pi = 4 * ATN(1) 'SINGLE precision
Pi# = 4 * ATN(1#) 'DOUBLE precision
PRINT Pi, Pi#
Note: You can use QB64's native _PI function.
Finds the angle from the center point to the mouse pointer.
SCREEN _NEWIMAGE(640, 480, 32)
x1! = 320
y1! = 240
DO
PRESET (x1!, y1!), _RGB(255, 255, 255)
dummy% = _MOUSEINPUT
x2! = _MOUSEX
y2! = _MOUSEY
LINE (x1, y1)-(x2, y2), _RGB(255, 0, 0)
LOCATE 1, 1: PRINT getangle(x1!, y1!, x2!, y2!)
_DISPLAY
_LIMIT 200
CLS
LOOP UNTIL INKEY$ <> ""
END
FUNCTION getangle# (x1#, y1#, x2#, y2#) 'returns 0-359.99...
IF y2# = y1# THEN
IF x1# = x2# THEN EXIT FUNCTION
IF x2# > x1# THEN getangle# = 90 ELSE getangle# = 270
EXIT FUNCTION
END IF
IF x2# = x1# THEN
IF y2# > y1# THEN getangle# = 180
EXIT FUNCTION
END IF
IF y2# < y1# THEN
IF x2# > x1# THEN
getangle# = ATN((x2# - x1#) / (y2# - y1#)) * -57.2957795131
ELSE
getangle# = ATN((x2# - x1#) / (y2# - y1#)) * -57.2957795131 + 360
END IF
ELSE
getangle# = ATN((x2# - x1#) / (y2# - y1#)) * -57.2957795131 + 180
END IF
END FUNCTION
- _PI (QB64 function)
- TAN (tangent function)
- SIN, COS
- Mathematical Operations
- Mathematical Operations