atan2 ( y ; x )
Rate this function: Average rating: 3.9 (40 votes) Discuss this Custom Function
Michael George, Michael George Consulting
mailto:mgeorge@coresupport.com
returns the base angle (arctan) of a triangle with the sides X and Y.
Sample Input:
atan2 ( y ; x )
1 0
1 1
0 1
1 1
1 0
1 1
0 1
1 1


Sample Output:
(in radians)
0
0.7853...
1.5707...
2.3561...
3.1415...
3.9269...
4.7123...
5.4977... 

Description:
The function atan2(y;x) returns the arctan of y,x with adjustments for the signs of x and y so that the angle returned is the angle of the cartesian point (x,y) in radians.
The commonest use of atan2 is in converting between rectangular and polar coordinates. The formula for calculating the *initial* heading for a greatcircle route from point A to point B uses atan2.
Please be aware that the parameter order is y,x and not x,y as usual.
Note: these functions are not guaranteed
or supported by BrianDunning.com. Please contact the individual
developer with any questions or problems.
This is my Custom Function and I want to
edit it
Discuss:Make a comment about this Custom Function (please try to keep it brief & to the point). Anyone can post:

Newest Custom Functions:
1. 
ExcludeValues(MyList ; Out) 

(Wed, Mar 21, 7:23am) 
2. 
PreviousMonthEndDate ( myDate ) 

(Wed, Mar 07, 3:35am) 
3. 
PreviousMonthName (myDate) 

(Wed, Mar 07, 3:33am) 
4. 
FmTableFields ( tableName ; fieldsInclude ; fieldsExclude ; classExclude ; typeExclude ; prefixExclude ) 

(Fri, Mar 02, 6:32am) 
5. 
sql.getTable ( fullyQualifiedFieldObject ) 

(Thu, Feb 22, 8:36am) 
6. 
sql.getField ( fullyQualifiedFieldObject ) 

(Thu, Feb 22, 8:34am) 
7. 
FilterOut ( ListA ; ListB ) 

(Wed, Feb 21, 6:11pm) 
8. 
Char0 ( ) 

(Sun, Feb 18, 2:35am) 


The above does not give the same results as Microsoft Excel. I use the following, Note the special for x=0 and y=0, I define ATAN2(x,y) = 0:
Let ( [
a =
Case ( x > 0 ; Atan( y / x ) ;
x < 0 ; If ( y ≥ 0 ; Pi + Atan ( y / x) ; Pi + Atan ( y / x)) ;
x = 0 ; If ( y > 0 ; Pi / 2 ; If ( y < 0 ; Pi / 2 ; 0) )) ;
result =a
];
result
)
Convert from 0 to 2*pi: result = mod ( 2* pi + a ; 2 * pi)
Rouel Fernandez, Mountain View, Ca
December 22, 2010 7:20am