Skip to content

Strange behavior of atan2

2 messages · Clément Calenge, Peter Dalgaard

#
Dear all,

I've got a problem with the function atan2. For a couple of coordinates 
x and y,
This function returns the angle between the vector of coordinates (x, y) 
and the
abscissa axis, i.e. it is the same as atan(y/x) (as indicated on the 
help page).
If we consider the vector with coordinates x = 0 and  y = 0, we have
the following result:

 > atan(0/0)
[1] NaN

This is expected. However:

 > atan2(0,0)
[1] 0

Instead of a missing value, the function atan2 returns an angle equal to 
0 radians.
I've searched through the help pages, the FAQ and the forum, but I 
did'nt find
any explanation to this result. Does anyone know if this behavior is 
expected, and
why ?
Thank you for any clues.
Regards,

Cl?ment Calenge
#
Cl?ment Calenge <calenge at biomserv.univ-lyon1.fr> writes:
Yes, it is expected. R just copies what the C library function does,
but there is actually a rationale:

http://www-sbras.nsc.ru/cgi-bin/www/unix_help/unix-man?atan2+3

Briefly: You don't get a natural conversion to spherical coordinates
and back without this convention.