función atan2() en C++ STL

atan2 () es una función incorporada en C++ STL que devuelve la tangente inversa de (y/x), donde y es la proporción de la coordenada y yx es la proporción de la coordenada x. El valor numérico se encuentra entre – \pi \pi representa el ángulo  \theta de un punto (x, y) y el eje x positivo. Es el ángulo en sentido antihorario, medido en radianes, entre el eje X positivo y el punto (x, y). 
Sintaxis: 
 

atan2(data_type y, data_type x)

Parámetros: La función acepta dos parámetros obligatorios que se describen a continuación: 
 

  • y: este valor especifica la coordenada y.
  • x: este valor especifica la coordenada x.

Los parámetros pueden ser de tipo de datos double, float o long double. 

Valor devuelto: la función devuelve un valor numérico entre – \pi y  que \pi representa el ángulo  \theta de un punto (x, y) y el eje x positivo. Es el ángulo en sentido antihorario, medido en radianes, entre el eje X positivo y el punto (x, y). 
Los siguientes programas ilustran la función atan2(): 
Programa 1: 
 

CPP

// CPP program to demonstrate the atan2()
// function when both parameters are of
// same type
#include<bits/stdc++.h>
using namespace std;
 
int main()
{
    double x = 10.0, y = 10.0, result;
    result = atan2(y, x);
 
    cout << "atan2(y/x) = " << result
         << " radians" << endl;
    cout << "atan2(y/x) = " << result * 180 / 3.141592
         << " degrees" << endl;
 
    return 0;
}
Producción: 

atan2(y/x) = 0.785398 radians
atan2(y/x) = 45 degrees

 

Programa 2: 
 

CPP

// CPP program to demonstrate the atan2()
// function when both parameters are of
// different types
#include <bits/stdc++.h>
using namespace std;
 
int main()
{
    double result;
    float x = -10.0;
    int y = 10;
    result = atan2(y, x);
 
    cout << "atan2(y/x) = " << result
         << " radians" << endl;
    cout << "atan2(y/x) = " << result * 180 / 3.141592 << " degrees" << endl;
 
    return 0;
}
Producción: 

atan2(y/x) = 2.35619 radians
atan2(y/x) = 135 degrees

 

Programa 3: 
 

CPP

// CPP program to demonstrate the atan2()
// function when y/x is undefined
#include<bits/stdc++.h>
using namespace std;
 
int main()
{
    double x = 0.0, y = 10.0, result;
    result = atan2(y, x);
 
    cout << "atan2(y/x) = " << result
         << " radians" << endl;
    cout << "atan2(y/x) = " << result * 180 / 3.141592
         << " degrees" << endl;
 
    return 0;
}
Producción: 

atan2(y/x) = 1.5708 radians
atan2(y/x) = 90 degrees

 

Programa 4: 
 

CPP

// CPP program to demonstrate the atan2()
// function when both parameters are zero
#include<bits/stdc++.h>
using namespace std;
 
int main()
{
    double x = 0.0, y = 0.0, result;
    result = atan2(y, x);
 
    cout << "atan2(y/x) = " << result
         << " radians" << endl;
    cout << "atan2(y/x) = " << result * 180 / 3.141592
         << " degrees" << endl;
 
    return 0;
}
Producción: 

atan2(y/x) = 0 radians
atan2(y/x) = 0 degrees

 

Errores y excepciones: la función no devuelve ninguna función coincidente para la llamada al error cuando se pasa una string o un carácter como argumento. 
Programa 5: 
 

CPP

// CPP program to demonstrate the atan2()
// errors and exceptions
#include<bits/stdc++.h>
using namespace std;
 
int main()
{
    double x = 0.0, y = 10.0, result;
    result = atan2("1", x);
 
    cout << "atan2(y/x) = " << result << " radians" << endl;
 
    cout << "atan2(y/x) = " << result * 180 / 3.141592
         << " degrees" << endl;
 
    return 0;
}

Producción: 
 

prog.cpp:9:26: error: no matching function for call to 'atan2(const char [2], double&)'
     result = atan2("1", x);

Publicación traducida automáticamente

Artículo escrito por pawan_asipu y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *