función valarray atan2() en C++

La función atan2() se define en el archivo de encabezado valarray. Esta función calcula la tangente inversa del valor (y/x) de cada elemento en valarray y devuelve un valarray que contiene la tangente inversa de todos los elementos. donde y es la proporción de la coordenada y yx es la proporción de la coordenada x. 

Sintaxis:

std::valarray res = atan2 (y-coords, x-coords)

Parámetros: La función acepta dos parámetros obligatorios que son X-coords y Y-coords. 

Nota: si ambos parámetros son objetos valarray y sus tamaños no coinciden, entonces se comportan como indefinidos. 

Devoluciones: Esta función devuelve un valarray que contiene la tangente inversa de todos los elementos. 

Los siguientes programas ilustran la función anterior: 

Ejemplo 1:- 

CPP

// atan2 valarray example
// programs illustrate the atan2() function:
 
#include <iostream>
#include <valarray>
using namespace std;
 
int main()
{
    // initialize both the array X and Y coords
    double y[] = { 0.0, 3.0, -2.0 };
    double x[] = { -3.0, 3.0, -1.0 };
 
    // initialize both the valarray X and Y coords
    valarray<double> ycoords(y, 3);
    valarray<double> xcoords(x, 3);
 
    // store results in valarray res
    valarray<double> res = atan2(ycoords, xcoords);
 
    // print results of atan2() function
    cout << "results:";
    for (size_t i = 0; i < res.size(); ++i)
        cout << ' ' << res[i];
    cout << '\n';
 
    return 0;
}

Producción:

results: results: 3.14159 0.785398 -2.03444

Ejemplo 2:- 

CPP

// atan2 valarray example
// programs illustrate the atan2() function:
 
#include <iostream>
#include <valarray>
using namespace std;
 
int main()
{
    // initialize both the array X and Y coords
    double y[] = { 4.0, 5.6, -2.8, 7.3 };
    double x[] = { 5.0, -1.5, 7.0, -0.8 };
 
    // initialize both the valarray X and Y coords
    valarray<double> ycoords(y, 4);
    valarray<double> xcoords(x, 4);
 
    // store results in valarray res
    valarray<double> res = atan2(ycoords, xcoords);
 
    // print results of atan2() function
    cout << "results:";
    for (size_t i = 0; i < res.size(); ++i)
        cout << ' ' << res[i];
    cout << '\n';
 
    return 0;
}

Producción:

results: 0.674741 1.83251 -0.380506 1.67995

Ejemplo 3:- Errores y excepciones: 

La función no devuelve ninguna función coincidente para la llamada al error cuando se pasan como argumento objetos valarray de diferentes tamaños. 

CPP

// atan2 valarray example
// programs illustrate the atan2() function:
 
#include <iostream>
#include <valarray>
using namespace std;
 
int main()
{
    // initialize both the array X and Y coords
    double y[] = { -2.8, 7.3 };
    float x[] = { 5.0, -0.8, 3.2, 5, 1 };
 
    // initialize both the valarray X and Y coords
    valarray<double> ycoords(y, 2);
    valarray<float> xcoords(x, 4);
 
    // store results in valarray res
    valarray<double> res = atan2(ycoords, xcoords);
 
    // print results of atan2() function
    cout << "results:";
    for (size_t i = 0; i < res.size(); ++i)
        cout << ' ' << res[i];
    cout << '\n';
 
    return 0;
}

Producción:

prog.cpp: In function 'int main()':
prog.cpp:14:48: error: no matching function for call to 'atan2(std::valarray&, std::valarray&)'
   valarray res = atan2 (ycoords, xcoords);
                                                ^

Publicación traducida automáticamente

Artículo escrito por Rajput-Ji 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 *