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 – y representa el ángulo 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 – y que representa el ángulo 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; }
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; }
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; }
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; }
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