Convertir des Radians en Degrés en Java


J'essaie d'obtenir l'angle alpha en degrés 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 que _alpha est maintenant un angle en degrés au lieu de radians que j'ai obtenu de la méthode atan ()?

  2. Est-il un moyen simple de le faire ?

Merci !

Author: Master C, 2011-04-23

3 answers

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

 92
Author: mP., 2013-05-23 01:50:55

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

 5
Author: MAK, 2014-04-14 17:35:47

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
Author: Przemek, 2014-07-29 15:00:18