Brian Dunning's FileMaker Custom Functions

atan2 ( y ; x )

returns the base angle (arctan) of a triangle with the sides X and Y.

  Average rating: 3.9 (41 votes) Log in to vote

Michael George   Michael George - Show more from this author
Michael George Consulting

Share on Facebook Share on Twitter

  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...

  Function definition: (Copy & paste into FileMaker's Edit Custom Function window)

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 co-ordinates. The formula for calculating the *initial* heading for a great-circle 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.

 

Comments

Rouel Fernandez   Rouel Fernandez, Mountain View, Ca
Dec 22, 2010
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)
 
Michael George   Michael George, Michael George Consulting
Sep 28, 2013
Excel has the two parameters reversed:
http://en.wikipedia.org/wiki/Atan2#Variations
 

Log in to post comments.

 

Note: these functions are not guaranteed or supported by BrianDunning.com. Please contact the individual developer with any questions or problems.

Support this website.

This library has been a free commmunity resource for FileMaker users and developers for 20 years. It receives no funding and has no advertisements. If it has helped you out, I'd really appreciate it if you could contribute whatever you think it's worth: