Estoy intentando obtener el valor del coseno de diferentes ángulos en C++, pero, por ejemplo es bien sabido que el coseno de 360 es 1, sin embargo la función cos() da -0.2 y no entiendo la razón de ese resultado, lo mismo sucede con la función sin() que devuelve 0.95. He intentado convertir el valor resultante a grados debido a que las funciones cos(), sin(), etc. devuelven el valor en radianes, pero el resultado sigue siendo diferente a los valores que ya se conocen de ángulos como el de 360. No sé cómo obtener el valor correcto. Cualquier ayuda es agradecida.
double op, op2, pot, real, img, r, ang, cosR, senR;
cout << "Ingrese potencia" << endl;
cin >> pot;
cout << "Ingrese la parte real de la ecuacion" << endl;
cin >> real;
cout << "Ingrese la parte imaginaria de la ecuacion" << endl;
cin >> img;
r = pow(sqrt((real * real) + (img * img)), pot); //calcula la parte real
ang = atan(img / real) * (180 / pi); //calcula el angulo y lo convierte a grados
if (real > 0 && img > 0) //si ambas partes de la ecuacion estan en el cuadrante I
{
op = pot * ang; //ejemplo: 8 * 45 = 360
cosR = cos(op); //esto da -0.283 cuando debería dar 1
senR = sin(op); //esto da 0.95 cuando debería dar 0
if (senR == 0) //debido a que el resultado de senR /= 0 el condicional no se ejecuta
{
cout << "--------------------------------------------------------" << endl;
cout << "Z^" << pot << " = " << r * (cosR + senR) << endl;
cout << "--------------------------------------------------------" << endl;
}
}