Usando Math.sin com graus

Usando Math.sin com graus

1. Introdução

Neste breve tutorial, veremos como calcular valores de seno usando a funçãoMath.sin() de Java e como converter valores de ângulos entre graus e radianos.

2. Radianos vs. Graus

Por padrão, oJava Math library expects values to its trigonometric functions to be in radians.

Como um lembrete,radians are just another way to express the measure of an angle, e a conversão é:

double inRadians = inDegrees * PI / 180;
inDegrees = inRadians * 180 / PI;

Java torna isso fácil comtoRadians andtoDegrees:

double inRadians = Math.toRadians(inDegrees);
double inDegrees = Math.toDegrees(inRadians);

Sempre que estamos usando qualquer uma das funções trigonométricas de Java,we should first think about what is the unit of our input.

3. UsandoMath.sin

Podemos ver esse princípio em ação observando o métodoMath.sin, um dos muitos que o Java fornece:

public static double sin(double a)

É equivalente à função matemática seno eit expects its input to be in radians. Então, digamos que temos um ângulo que sabemos ser em graus:

double inDegrees = 30;

Primeiro precisamos convertê-lo para radianos:

double inRadians = Math.toRadians(inDegrees);

E então podemos calcular o valor do seno:

double sine = Math.sin(inRadians);

Mas,if we know it to already be in radians, then we don’t need to do the conversion:

@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);
}

ComothirtyDegreesInRadians já estava em radianos, não precisamos primeiro convertê-lo para obter o mesmo resultado.

4. Conclusão

Neste artigo rápido, revisamos radianos e graus e vimos um exemplo de como trabalhar com eles usandoMath.sin.

Como sempre, verifique o código-fonte deste exemploover on GitHub.