std::atan2

From Cppreference

Jump to: navigation, search
Defined in header <cmath>

float       atan2( float y, float x );

double      atan2( double y, double x );

long double atan2( long double y, long double x );

Computes the inverse tangent of y/x using the signs of arguments to correctly determine quadrant.

Contents

[edit] Parameters

x, y - floating point value

[edit] Return value

arc tangent of y/x in radians in the range of [-π; π] radians.

[edit] Example

#include <cmath>
#include <utility>
#include <iostream>
 
std::pair<double, double> cartesian_to_polar(double x, double y)
{
    return {std::hypot(x, y), std::atan2(y,x)};
}
 
int main()
{
    std::pair<double, double> polar = cartesian_to_polar(1, 1);
    std::cout << "(1,1) cartesian is (" << polar.first
               << "," << polar.second<< ") polar\n";
}

Output:

(1,1) cartesian is (1.41421,0.785398) polar


[edit] See also

atan
computes arc tangent (arctan(x))
(function)
asin
computes arc sine (arcsin(x))
(function)
acos
computes arc cosine (arccos(x))
(function)
tan
computes tangent (tan(x))
(function)