Sto usando Math.cos
e Math.sin
ma mi restituisce risultati imprevisti come questi:Come utilizzare Math.cos() e Math.sin()?
Angle Sin Cos
354 0.8414 -0.5403
352 0.1411 0.98998
350 -0.958 -0.2836
Perché ottenere questi risultati?
Sto usando Math.cos
e Math.sin
ma mi restituisce risultati imprevisti come questi:Come utilizzare Math.cos() e Math.sin()?
Angle Sin Cos
354 0.8414 -0.5403
352 0.1411 0.98998
350 -0.958 -0.2836
Perché ottenere questi risultati?
Stai cercando di utilizzare i gradi? Tieni presente che sin
e cos
prevedono radianti.
Math.cos(Math.toRadians(354))
Math.cos
e Math.sin
prendere angles in radians, non gradi. Così si può utilizzare:
double angleInDegree = 354;
double angleInRadian = Math.toRadians(angleInDegree);
double cos = Math.cos(angleInRadian); // cos = 0.9945218953682733
Sì, ho commesso un errore newbie. Grazie per la soluzione. – user1782922
+1 o usare 'Math.cos (Math.toRadians (354))' – Pshemo
@Pshemo Molto meglio davvero. Modificato. – assylias
public static double sin(double a)
Parameters:
a - an angle, in radians.
Returns:
the sine of the argument.
Nessuna delle risposte montato le mie esigenze. Ecco cosa ho avuto:
Un seno in grado (non radiante). Questo è come lo si accende di nuovo in un angolo di grado:
double angle = Math.toDegree(Math.asin(sinusInDegree));
Spiegazione: Se si dispone di 2 lati di un triangolo, è l'unica soluzione che ha funzionato per me. Puoi calcluare tutto usando la normale metrica di laurea, ma devi convertire lo Math.asin()
in gradi per il risultato giusto. :)
È possibile utilizzare anche questo:
degrees *= Math.PI/180;
Math.cos(degrees)
Penso che 'Math # toRadians()' sia più leggibile ma grazie per averlo menzionato anche in questo modo;) – Nicofisi
si dovrebbe accettare la sua risposta come corretta. – Budius