Перейти к основному содержимому

Использование Math.sin со степенями

· 2 мин. чтения

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.sin

Мы можем увидеть этот принцип в действии, взглянув на метод 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);
}

Поскольку значение тридцатьDegreesInRadians уже было в радианах, нам не нужно было сначала преобразовывать его, чтобы получить тот же результат.

4. Вывод

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

Как всегда, ознакомьтесь с исходным кодом этого примера на GitHub .