2015-01-05 7 views
4

Рассмотрим следующий треугольник:Как вычислить угол прямоугольного треугольника, используя библиотеку Javascript Math?

enter image description here

Я хочу, чтобы вычислить угол X

я следующее:

var opposite = 2.5; 
    var hypotenuse = 5; 

    var sinOfAngleX = opposite/hypotenuse; // 0.5 

Так что теперь я знаю, что Math.sin(valueofAngleX) вернется 0.5.

Но как получить значение угла, если я знаю синус угла, используя библиотеку Math()?

Согласно this tutorial, мне нужно сделать:

уаг angleX = sin to the power of negative one of 0.5

, но я не знаю, как перевести это в JS.

Я пробовал:

var angleX = Math.pow(Math.sin(sinOfAngleX), -1); 

но он возвращает 2.085829642933488, который, очевидно, не так. Правильный ответ должен быть

И в случае, если все вышеизложенное неправильно для начала, кто-нибудь знает, как я могу правильно вычислить угол X, используя библиотеку JS Math()?

Спасибо!

+0

По крайней мере, это выглядит вы принимаете синус sineOfAngleX, что неправильно для начала. (спасибо, кто бы ни был, я имел в виду, что это комментарий, а не ответ) – Paul

+0

'sin^-1 (a)' здесь не означает '1/sin (a)', а скорее '' обратный функции sin "(a)", таким образом arcsin (aka 'asin'). Чтобы написать '1/sin (a)' с '^ -1', можно добавить скобки:' (sin (a))^- 1'. Обратите внимание, что 'sin (a^-1)' означает 'sin (1/a)', а 'sin (a)^- 1' является двусмысленным, поэтому его следует избегать. – Cimbali

ответ

13

Вы можете знать угол любого греха с этой формулой:

Math.asin(sinOfAngleX) * 180/Math.PI 

С sinOfAngleX = 0.5, Math.asin(sinOfAngleX) дал бы 0.5235987755982989. Это выражается в радианах. Для того, чтобы передать его в градусы можно умножить на 180/Math.PI, что приводит к 30º

+0

Это идеальный Umagon. Большое спасибо! :) –

1

В ES6 вы можете использовать метод сборки его из Math Object

Math.hypot(3, 4) 

enter image description here

+1

Хороший трюк кода, однако, фактически дает вам длину гипотенузы, а не угол, заданный в OP. – Hiteklife