.TH "al_fixatan2(3alleg5) Allegro reference manual" "" "" "" "" .SH NAME .PP al_fixatan2 \- Allegro 5 API .SH SYNOPSIS .IP .nf \f[C] #include\ al_fixed\ al_fixatan2(al_fixed\ y,\ al_fixed\ x) \f[] .fi .SH DESCRIPTION .PP This is a fixed point version of the libc atan2() routine. It computes the arc tangent of \f[C]y\ /\ x\f[], but the signs of both arguments are used to determine the quadrant of the result, and \f[C]x\f[] is permitted to be zero. This function is useful to convert Cartesian coordinates to polar coordinates. .PP Example: .IP .nf \f[C] \ \ \ \ al_fixed\ result; \ \ \ \ /*\ Sets\ `result\[aq]\ to\ binary\ angle\ 64.\ */ \ \ \ \ result\ =\ al_fixatan2(al_itofix(1),\ 0); \ \ \ \ /*\ Sets\ `result\[aq]\ to\ binary\ angle\ \-109.\ */ \ \ \ \ result\ =\ al_fixatan2(al_itofix(\-1),\ al_itofix(\-2)); \ \ \ \ /*\ Fails\ the\ assert.\ */ \ \ \ \ result\ =\ al_fixatan2(0,\ 0); \ \ \ \ assert(!al_get_errno()); \f[] .fi .SH RETURN VALUE .PP Returns the arc tangent of \f[C]y\ /\ x\f[] in fixed point binary format angle, from \-128 to 128. If both \f[C]x\f[] and \f[C]y\f[] are zero, returns zero and sets Allegro\[aq]s errno to EDOM.