fixatan2 − Fixed point version of the libc atan2() routine. Allegro game programming library.
#include <allegro.h>
fixed fixatan2(fixed y, fixed x);
This is a fixed point version of the libc atan2() routine. It computes the arc tangent of ‘y / x’, but the signs of both arguments are used to determine the quadrant of the result, and ‘x’ is permitted to be zero. This function is useful to convert Cartesian coordinates to polar coordinates. Example:
fixed result;
/* Sets ‘result’ to binary angle 64. */
result = fixatan2(itofix(1), 0);
/* Sets ‘result’ to binary angle -109. */
result = fixatan2(itofix(-1), itofix(-2));
/* Fails the assert. */
result = fixatan2(0, 0);
ASSERT(!errno);
Returns the arc tangent of ‘y / x’ in fixed point binary format angle, from ‘-128’ to ‘128’. If both ‘x’ and ‘y’ are zero, returns zero and sets ‘errno’ to EDOM.