Преобразование из радианов в градусы - PullRequest
9 голосов
/ 09 июня 2011

Я пытаюсь сделать простой тригонометрический расчет в C ++. Ниже приведен пример проблемы, с которой я столкнулся. Насколько я знаю, C ++ работает в радианах, а не в градусах. Таким образом, преобразование из радианов в градусы должно быть простым случаем умножения на 180 и деления на пи. Простым тестом является tan (45), который должен равняться 1. Однако следующая программа выдает значение 92.8063 ...

#include <iostream>
using namespace std;

#include <math.h>

int main(){
    double a,b;
    a = tan(45);
    b = a * 180 / 3.14159265;
    cout << b;
    return 0;
}

Что не так?

Ответы [ 4 ]

13 голосов
/ 09 июня 2011

Ты делаешь это задом наперед. Не применяйте формулу к выводу из tan, применяйте ее к параметру .

Также вы захотите умножить на пи и разделить на 180, а не наоборот.

6 голосов
/ 09 июня 2011

Угол ввода от до tan.Итак, вы хотите:

a = 45 * 3.141592653589793 / 180.0;
b = tan(a);
cout << b << endl;
4 голосов
/ 09 июня 2011

Вы должны передать радианы в функцию загара.Также градусы в радианах это неправильно.

 a = tan(45 * 3.14159265 / 180.);
2 голосов
/ 09 июня 2011

Tan принимает угол и возвращает частное. Это не наоборот. Вы хотите

a = tan(45*3.14159265/180); // Now a is equal to 1.
...