I’d like to know if there is a simpler way to calculate the angle between two points.
I’m currently using this method:
public static float angle(float x1, float y1, float x2, float y2)
{
float dx=x2-x1,dy=y2-y1, PI=(float)Math.PI;
double angle=0.0f;
if(dx==0)
if(dy==0)angle=0;
else if(dy>0)angle=PI/2;
else angle=PI*3/2;
else if(dy==0)
if(dx>0)angle=0;
else angle=PI;
else if(dx<0)angle=Math.atan(dy/dx)+PI;
else if(dy<0)angle=Math.atan(dy/dx)+(2*PI);
else angle=Math.atan(dy/dx);
return (float)angle;
}
Seems like a awful alot for something simple as that.
I’d like the angle to be 0 at 3 o’clock, and moving clockwise it should be PI at 9 o’clock. Any ideas?