atan2 ( y ; x )
Rate this function: Average rating: 3.5 (16 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 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.
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. |
phpArrayValue ( array ; key ; pos ) |
| |
(Fri, Jan 27, 1:49pm) |
| 2. |
solfm_timeToMinutes (theTime;roundSec) |
| |
(Fri, Jan 20, 6:26am) |
| 3. |
filterLines(filterField;filterValue;Result) |
| |
(Sat, Jan 14, 2:20pm) |
| 4. |
getMaxValue ( theList ) |
| |
(Thu, Jan 12, 1:06pm) |
| 5. |
MiddleWordsIncPunct ( text ; startingWord ; numberOfWords ) |
| |
(Sat, Jan 07, 9:16am) |
| 6. |
WindowInfo |
| |
(Fri, Jan 06, 12:39pm) |
| 7. |
CenterWindow in Window vert horiz (demension) |
| |
(Fri, Jan 06, 12:25pm) |
| 8. |
UTF8_to_TXT ( Text , Platform ) |
| |
(Wed, Dec 28, 10:44pm) |
 |
|
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