Преобразовать из радианов в градусы на Java - PullRequest
30 голосов
/ 23 апреля 2011

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

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

Спасибо!

Ответы [ 3 ]

96 голосов
/ 23 апреля 2011

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

5 голосов
/ 23 апреля 2011

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

1 голос
/ 29 июля 2014

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

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

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...