Getting angle back from a sin/cos conversion

Eric Fortier picture Eric Fortier · Dec 29, 2012 · Viewed 26.1k times · Source

I want to reverse a sin/cos operation to get back an angle, but I can't figure out what I should be doing.

I have used sin and cos on an angle in radians to get the x/y vector as such:

double angle = 90.0 * M_PI / 180.0;  // 90 deg. to rad.
double s_x = cos( angle );
double s_y = sin( angle );

Given s_x and s_y, is it possible to get back the angle? I thought atan2 was the function to use, but I'm not getting the expected results.

Answer

Masked Man picture Masked Man · Dec 29, 2012

atan2(s_y, s_x) should give you the correct angle. Maybe you have reversed the order of s_x and s_y. Also, you can use the acos and asin functions directly on s_x and s_y respectively.