2009-09-15 3 views
0

Прошло довольно много времени с тех пор, как мне пришлось вычислить тета угла. Но с учетом прямого угла:Arctan> 1 новичок вопрос

| 
    | 
b | 
    ----------------- 
     a 

Я пытаюсь вычислить theta (наклон угла). Мое понимание тригонометрии (как ржавое, как есть) состоит в том, что theta = arctan (b/a). Поэтому, если b = 50 и a = 1811. Затем, используя калькулятор окон, 50/1811 = 0.027609055770292655991165102153506. Поэтому arctan (b/a) = 1.5814806205083755492980816356377. Если моя математика верна, как мне перевести это значение в угол наклона? Это должно быть около 30-40 градусов, верно?

+0

Если а 50 и Ь 1811, результат 1,6 градуса кажется разумным , Вы можете конвертировать между радианами и градусами через: градусов = (180/pi) * radians – Mikeb

+0

Да ... точно не знаю, где вы предполагаете 30-40 градусов ... но нет ... 50/1811 выиграл ' t даст вам что-то вроде 30-40 градусов. Подумайте об этом таким образом ... 50/50 даст вам 45 градусов. – Beska

+0

Здесь, кажется, какая-то запутанная терминология ... обычно тета используется для обозначения угла (а не «наклона» угла). Наклон описывает LINE, это угол между линией и осью x. – pavium

ответ

2
atan2(y, x) 

вернет вам угол в радианах (и успешно справиться со случаями, где х и/или у являются 0).

Чтобы преобразовать градусы применить следующую формулу:

double degrees = radians * (180/PI) 

Где PI это 3,141592 ... или math.pi в C#

0

Если вы используете C диалекте, то есть полезная функция только для этой цели

atan2(y, x); 
+0

Кажется, стоит отметить, что причина, по которой эта функция с двумя аргументами хороша, заключается в том, что один аргумент (atan (r)) не может различать все возможные углы, поэтому вы увидите только 2 квадранта 4 на выходах этой функции. Версия 2-arg указывает, в каком квадранте находятся координаты x-y, и соответствующим образом корректирует результат. – Mikeb