2013-05-07 2 views
0

Здесь задается дюжина вопросов о том, как преобразовать результат, скажем, Math.atan() обратно в градусы, чтобы вы могли использовать его в преобразовании CSS или OpenGL.Есть ли библиотека JavaScript, которая говорит о степенях вместо радианов?

Ответ прост (180/Math.PI) - но это дополнительный бит кода, который вы должны писать каждый раз, когда выполняете триггер.

Есть ли библиотека JS со степенями свободы? Возможно, с некоторыми другими полезными математическими функциями?

+2

Учитывая, что эта библиотека не заинтересовала бы много людей и что ее можно было бы написать несколькими строчками, почему бы не написать ее? –

+3

Нет, потому что большинство расчетов использует радианы для повышения эффективности. Это только после того, как вы начнете требовать, чтобы они были читаемыми людьми числами, в которые входят эта степень. – zzzzBov

+0

@dystroy, шаг 1 в эффективном решении для написания библиотеки - это увидеть, существует ли она уже. –

ответ

0

Радианы используются большинством математических эффективных функций, работающих с вращениями. Итак, каждая математическая библиотека использует радианы, из-за всего, что она имеет в виду.

Библиотека, использующая градусы, будет просто преобразовывать все обратно в радианы под капотом, делая это бессмысленным.

Так что да, если вы хотите работать в градусах, у вас должен быть свой вход (я имею в виду, человеческий вход, независимо от вашего приложения) и конечный вывод (здесь тоже читаемый человеком вывод) в градусах. Затем, когда они идут в «контролируемую компьютером часть», просто преобразуйте их в радианы с классом или функцией или любым подходящим. Рассчитанная часть может и должна оставаться в радианах, потому что ни один человек не должен взаимодействовать с ними, а вашему компьютеру все равно, что градусы прохладны. Это более эффективно с радианами.

+0

Зависит от вашей цели дизайна. Если вы хотите улучшить скорость выполнения, то да, делая внутренние преобразования, вы не получаете никакой скорости. Если ваша цель - простота программирования и сокращение количества ошибок в программировании, то библиотека стоит того. –

0

Парсер выражения библиотеки math.js поддерживает единицы измерения, включая радианы и градусы. Таким образом, вы можете ввести такие выражения, как:

math.eval('sin(pi/4');  // 0.7071... 
math.eval('sin(45 deg)'); // 0.7071... 
+0

Есть ли способ получить его в * output * в градусах? –

+0

нет, это только для ввода –