float anguloRad = anguloDeg * PI / 180;
Convertir ángulos en radianes a grados:
float anguloDeg = anguloGrad * 180 / PI;
Funciones trigonométricas
C++ trabaja en radianes. Antes de usar las funciones trigonométricas hay que pasar los grados a radianes. Por ejemplo:
float v = cos (anguloDeg * PI / 180);
Al trabajar con tipos float se produce un error de redondeo con ciertos valores. Por ejemplo, utilizando las fórmulas anteriores el coseno de 90 da como resultado -4.37114e-e08. Casi cero pero no del todo. Por cierto, en Python el resultado es diferente:
>>> print math.cos(90 * math.pi / 180)
6.12303176911e-17
A continuación pequeño programa de ejemplo.
#include <iostream> #include <math.h> #define PI 3.141592653589793 using namespace std; void printCoseno (float ang){ float anguloDeg = ang; float anguloRad = anguloDeg * PI / 180; cout << "Angulo en grados:" << anguloDeg << " \t\tCoseno:"<< cos(anguloDeg) << endl; cout << "Angulo en Radianes:" << anguloRad << " \tCoseno:" << cos(anguloRad) << endl; cout << endl; } int main() { printCoseno (0); printCoseno (45); printCoseno (90); printCoseno (180); printCoseno (200); printCoseno (270); return 0; }
Salida en pantalla:
Angulo en grados:0 Coseno:1 Angulo en Radianes:0 Coseno:1 Angulo en grados:45 Coseno:0.525322 Angulo en Radianes:0.785398 Coseno:0.707107 Angulo en grados:90 Coseno:-0.448074 Angulo en Radianes:1.5708 Coseno:-4.37114e-08 Angulo en grados:180 Coseno:-0.59846 Angulo en Radianes:3.14159 Coseno:-1 Angulo en grados:200 Coseno:0.487188 Angulo en Radianes:3.49066 Coseno:-0.939693 Angulo en grados:270 Coseno:0.984382 Angulo en Radianes:4.71239 Coseno:1.19249e-08