Преобразование из радианов в градусы в Java

#java #math #geometry

#java #математика #геометрия

Вопрос:

Я пытаюсь получить альфа-угол в градусах от x, y, когда пользователь создает объект.

Я написал следующий конструктор:

 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. Прав ли я в том, что _alpha теперь является углом в градусах вместо радианов, который я получил из метода atan ()?

  2. Есть ли простой способ сделать это?

Спасибо!

Ответ №1:

Почему бы не использовать встроенный метод Math.toDegrees() , он поставляется с Java SE.

Комментарии:

1. Вы имели в виду: _alpha = Math.toDegrees( (Math.atan (y / x)) ); ??

Ответ №2:

Идея выглядит нормально, но я бы предложил использовать Math.atan2 вместо Math.atan .

Комментарии:

1. @Master C: Это называется как Math.atan2(y,x) . Пожалуйста, перейдите по URL в моем ответе, чтобы увидеть фактический javadoc для получения подробной информации.

Ответ №3:

Это, безусловно, должен быть самый короткий и простой способ:

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

Имейте в виду, что при вычислении таким образом _alpha будут иметь значения от -180 до 180 градусов.