1. Introduzione
In questo breve tutorial, vedremo come calcolare i valori del seno utilizzando la funzione Math.sin () di Java e come convertire i valori degli angoli tra gradi e radianti.
2. Radianti contro gradi
Per impostazione predefinita, la libreria Java Math prevede che i valori delle sue funzioni trigonometriche siano in radianti .
Come promemoria, i radianti sono solo un altro modo per esprimere la misura di un angolo e la conversione è:
double inRadians = inDegrees * PI / 180; inDegrees = inRadians * 180 / PI;
Java lo rende facile con toRadians e toDegrees :
double inRadians = Math.toRadians(inDegrees); double inDegrees = Math.toDegrees(inRadians);
Ogni volta che usiamo una qualsiasi delle funzioni trigonometriche di Java, dovremmo prima pensare a quale sia l'unità del nostro input .
3. Utilizzo di Math.sin
Possiamo vedere questo principio in azione dando un'occhiata al metodo Math.s in , uno dei tanti che Java fornisce:
public static double sin(double a)
È equivalente alla funzione seno matematica e si aspetta che il suo input sia in radianti . Quindi, diciamo che abbiamo un angolo che sappiamo essere in gradi:
double inDegrees = 30;
Dobbiamo prima convertirlo in radianti:
double inRadians = Math.toRadians(inDegrees);
E poi possiamo calcolare il valore del seno:
double sine = Math.sin(inRadians);
Ma, se sappiamo che è già in radianti, non è necessario eseguire la conversione :
@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); }
Dato che trentaDegreesInRadians era già espresso in radianti, non era necessario convertirlo prima per ottenere lo stesso risultato.
4. Conclusione
In questo rapido articolo, abbiamo esaminato radianti e gradi e poi abbiamo visto un esempio di come lavorare con loro usando Math.sin.
Come sempre, controlla il codice sorgente per questo esempio su GitHub.