14 votes

Comment utiliser Math.cos() et Math.sin() ?

J'utilise Math.cos y Math.sin mais il me renvoie des résultats inattendus comme ceux-ci :

 Angle   Sin      Cos
 354     0.8414  -0.5403
 352     0.1411   0.98998
 350    -0.958   -0.2836

Pourquoi ces résultats ?

63voto

Pubby Points 29386

Essayez-vous d'utiliser des degrés ? Gardez à l'esprit que sin y cos s'attendent à des radians.

Math.cos(Math.toRadians(354))

17voto

assylias Points 102015

Math.cos y Math.sin prendre angles en radians et non des degrés. Vous pouvez donc utiliser :

double angleInDegree = 354;
double angleInRadian = Math.toRadians(angleInDegree);
double cos = Math.cos(angleInRadian); // cos = 0.9945218953682733

5voto

Nikolay Kuznetsov Points 5093
public static double sin(double a)

Parameters:
a - an angle, in radians.
Returns:
the sine of the argument.

3voto

Khuong Points 4807

Vous pouvez également l'utiliser :

degrees *= Math.PI / 180;
Math.cos(degrees)

0voto

TrudleR Points 430

Aucune des réponses ne correspondait à mes besoins. Voici ce que j'avais :

Un sinus en degré (non rayonnant). C'est ainsi que l'on obtient un angle de degré :

double angle = Math.toDegree(Math.asin(sinusInDegree));

Explication : Si vous avez 2 côtés d'un triangle, c'est la seule solution qui a fonctionné pour moi. Vous pouvez tout calculer en utilisant la métrique normale des degrés, mais vous devez convertir les Math.asin() de degré en degré pour obtenir le bon résultat. :)

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X