#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;
}
}
-
Прав ли я в том, что _alpha теперь является углом в градусах вместо радианов, который я получил из метода atan ()?
-
Есть ли простой способ сделать это?
Спасибо!
Ответ №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 градусов.