web-dev-qa-db-fra.com

Conversion de radians en degrés en Java

J'essaie d'obtenir l'angle alpha en degrés à partir de x, y lorsque l'utilisateur crée un objet.

J'ai écrit le constructeur suivant:

public class Point
{
    private double _radius , _alpha;    

    public Point ( int x , int y )
    {
        _radius = Math.sqrt ( Math.pow(x,2) + Math.pow (y,2) ) ;
        _alpha = ( ( Math.atan (y/x) ) * 180 ) / Math.PI;
    }

}
  1. Ai-je raison de dire que _alpha est maintenant un angle en degrés au lieu des radians que j'ai obtenu avec la méthode atan ()?

  2. Existe-t-il un moyen simple de le faire?

Merci !

30
Master C

Pourquoi ne pas utiliser la méthode intégrée Math.toDegrees(), elle est livrée avec le Java SE.

96
mP.

L'idée semble correcte, mais je suggère d'utiliser Math.atan2 au lieu de Math.atan.

5
MAK

Cela devrait être de loin le moyen le plus court et le plus simple:

        _radius = Math.hypot(x, y);
        _alpha = Math.toDegrees(Math.atan2(y, x));

Gardez à l'esprit que lorsqu'il est calculé de cette façon, _alpha aura des valeurs comprises entre -180 et 180 degrés.

1
Przemek