Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   Тригонометрия в javascript (https://javascript.ru/forum/misc/70270-trigonometriya-v-javascript.html)

MC-XOBAHCK 23.08.2017 18:49

Тригонометрия в javascript
 
Здравствуйте!
Подскажите пожалуйста, есть ли в ядре javascript метод конвертации синуса и тангенса в градусы?
При расчёте я применяю методы:
tg = Math.tan(x);
sin = Math.sin(x);

https://learn.javascript.ru/number#...-методы

Как мне их конвертировать в градусы? Есть стандартный метод или нужно вбить таблицу брадиса и уже по ней прогонять через switch ?

рони 23.08.2017 19:21

MC-XOBAHCK,
a = Math.sin(Math.PI/2)
 r = 180 * Math.asin(a)/Math.PI ;
 alert(r);

MC-XOBAHCK 23.08.2017 21:09

рони, если я правильно понял, то это окружность. А может я просто не понял как мне использовать этот код.
У меня условие простое - прямоугольный треугольник:

Мне нужно в результате узнать угол A в градусах.
Беру формулу: тангенс tg(A) = a / b
Простой скрипт для расчёта:
var a, b, c, tg, sin, deg;
a = 5;
b = 10;
tg = Math.tan(a / b);  // тангенс угла a
deg = ???????         // значение угла в градусах

//Этот же угол через синус
sin = Math.sin(a / c);
degSin = ????

Дальше не знаю, есть ли метод конвертировать результат в градусы. В изучении JS я пока ещё не далеко ушёл и опыта в решении подобной задачи у меня нет.
Решение которое пришло в голову в соответствии с моими знаниями - вбить таблицу брадиса от 1 до 90 градусов и результат прогонять через switch по таблице.
Получается большая портянка, поэтому решил спросить на форуме.

рони 23.08.2017 21:39

MC-XOBAHCK,
a = 5;
b = 10;
deg  = 180 / Math.PI * Math.atan2(a, b);
alert(deg);

MC-XOBAHCK 23.08.2017 22:13

СПАСИБО!
Не пойму где Вы эти решения берёте. Я прежде чем спросить поиском пользовался и гуглом. У мазилы нашёл вывод в радианах, по другим сайтам - целые функции странной конструкции. У вас же всё в идеале - ничего лишнего.

рони 23.08.2017 22:23

MC-XOBAHCK,

https://javascript.ru/forum/jquery/6...tml#post404719


Часовой пояс GMT +3, время: 01:33.