Problème avec la méthode Math.asin()

Fermé
UtilisateurJava - Modifié par UtilisateurJava le 16/02/2014 à 17:11
KX Messages postés 16734 Date d'inscription samedi 31 mai 2008 Statut Modérateur Dernière intervention 24 avril 2024 - 16 févr. 2014 à 17:46
Bonjour, je suis débutant en java et je m'entraîne à faire un logiciel pour calculer l'angle de réfraction ou l'angle d'incidence avec la loi de Snell-Descartes ( nI x sin(i) = nR x sin(R) ). Je demande d'abord à l'utilisateur de donner la valeur de nI, sin(i) et de nR pour calculer sin(R) et ensuite avec la méthode Math.asin() trouver R. Le problème c'est que par exemple avec un angle I de 60, je devrais trouver 40 alors que je trouve 0.709. Pouvez-vous m'aider ? Merci.

Voici mon code:



public static void main(String[] args)
{
Scanner sc = new Scanner(System.in);

int mode;
double I;
double nI;
double nR;
double sinR;
double R;

do
{
do
{
System.out.println("Que voulez vous faire ?\n 1-Trouver R\n2-Trouver I\n3-Trouver nI\n 4-Trouver nR");
mode = sc.nextInt();
} while (mode !=1 && mode !=2 && mode !=3 && mode !=4);

if (mode==1)
{
System.out.println("Valeur de l'angle I ?");
I = sc.nextDouble();

System.out.println("nI ? ?");
nI = sc.nextDouble();

System.out.println("nR ?");
nR = sc.nextDouble();

sinR = ((nI*Math.sin(Math.toRadians(I))/nR));
R = Math.asin(sinR);


System.out.println("Resultat:"+R);


}
} while (1>1);
}
}

1 réponse

KX Messages postés 16734 Date d'inscription samedi 31 mai 2008 Statut Modérateur Dernière intervention 24 avril 2024 3 015
16 févr. 2014 à 17:46
Attention : les calculs sont en radians ! Si tu veux des degrés il faut faire la conversion.
1