1. введение
В этом коротком уроке мы рассмотрим, как вычислить значения синуса с помощью функции Java Math.sin() и как преобразовать значения угла между градусами и радианами.
2. Радианы против Степени
По умолчанию библиотека Java Math ожидает, что значения ее тригонометрических функций будут в радианах .
Напомним, что радианы – это всего лишь еще один способ выразить меру угла , и преобразование:
double inRadians = inDegrees * PI / 180; inDegrees = inRadians * 180 / PI;
Java упрощает это с помощью toRadians и toDegrees :
double inRadians = Math.toRadians(inDegrees); double inDegrees = Math.toDegrees(inRadians);
Всякий раз, когда мы используем какую-либо из тригонометрических функций Java, мы должны сначала подумать о том, какова единица нашего ввода .
3. Использование математики.
Мы можем увидеть этот принцип в действии, взглянув на метод Math.s in , один из многих, которые предоставляет Java:
public static double sin(double a)
Это эквивалентно математической функции синуса, и он ожидает, что его входные данные будут в радианах . Итак, предположим, что у нас есть угол, который, как мы знаем, находится в градусах:
double inDegrees = 30;
Сначала нам нужно преобразовать его в радианы:
double inRadians = Math.toRadians(inDegrees);
И тогда мы сможем вычислить значение синуса:
double sine = Math.sin(inRadians);
Но, если мы знаем, что он уже находится в радианах, тогда нам не нужно выполнять преобразование :
@Test public void givenAnAngleInDegrees_whenUsingToRadians_thenResultIsInRadians() { double angleInDegrees = 30; double sinForDegrees = Math.sin(Math.toRadians(angleInDegrees)); // 0.5 double thirtyDegreesInRadians = 1/6 * Math.PI; double sinForRadians = Math.sin(thirtyDegreesInRadians); // 0.5 assertTrue(sinForDegrees == sinForRadians); }
Поскольку тридцать градусов в радианах уже были в радианах, нам не нужно было сначала преобразовывать его, чтобы получить тот же результат.
4. Заключение
В этой краткой статье мы рассмотрели радианы и градусы, а затем увидели пример того, как работать с ними с помощью Math.sin.
Как всегда, проверьте исходный код для этого примера на GitHub .