Reputation: 1546
I'm trying to get the alpha angle in degrees from x,y when user creates an object.
I wrote the following constructor:
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;
}
}
Am I right that _alpha is now an angle in degrees instead of radians that I got from the atan() method ?
Is there a simple way to do so ?
Thanks !
Upvotes: 36
Views: 94042
Reputation: 75
This should be by far the shortest and simplest way:
_radius = Math.hypot(x, y);
_alpha = Math.toDegrees(Math.atan2(y, x));
Keep in mind that when computed this way, _alpha
will have values between -180 and 180 degrees.
Upvotes: 1
Reputation: 26586
The idea looks ok, but I would suggest using Math.atan2 instead of Math.atan
.
Upvotes: 5
Reputation: 18266
Why not use the built-in method Math.toDegrees()
, it comes with the Java SE.
Upvotes: 106