I'm creating a simple 2D game in javascript/canvas. I need to figure out the angle of a certain object relative to my position.
So: say I'm at (10,10) and the object is at (10,5) - that would result in 90 degrees (as positive Y is down, negative Y is up) (10,10) vs (10,15) would be 270 degrees.
How would I go about this?
Suppose you're at (a, b) and the object is at (c, d). Then the relative position of the object to you is (x, y) = (c - a, d - b).
Then you could use the Math.atan2()
function to get the angle in radians.
var theta = Math.atan2(-y, x);
note that the result is in the range [-π, π]. If you need nonnegative numbers, you have to add
if (theta < 0)
theta += 2 * Math.PI;
and convert radians to degrees, multiply by 180 / Math.PI
.