31
$\begingroup$

Excuse my ignorance and use of incorrect terms, but...

I have x and y coordinates, and the angle that the entity is facing on a 2D plane. I want to find the correct point, say 5 units in front of the point I have.

Examples:

If my entity is at 0, 0 and is facing east (0 degrees), my point would be 5, 0.  If my entity is at 0, 0 and is facing north (90 degrees), my point would be 0, 5.  If my entity is at 0, 0 and is facing north-east (45 degrees), my point would be ???. 

I can't even figure it out in my head, let alone figure out the formula I need. I assume I need trigonometry, but I'm old and haven't used it since 1997.

  • 0
    Yes, the "e-17" and the end means "times $10^{-17}$, which in effect shifts the decimal point to the left 17 times, introducing zeroes (so it's $.0000000000000000612...$). $\cos(\pi/2)$ is exactly $0$.2012-05-11

2 Answers 2

31

In general, if $\theta$ is the angle between the line of sight from the entity to the point and the positive $x$ axis, then $ x=5\cos\theta,\quad\text{and}\quad y=5\sin\theta. $ Here $\cos$ is the cosine function and $\sin$ is the sine function.

When calculating values of these, it is important to realize that the angle can be measured in various ways, the most common being degrees and radians. $360$ degrees is $2\pi$ radians. In general to convert $x$ degrees to radians, multiply $x$ by $\pi/180$.

You can use either measurement system for the angle, but when calculating $\sin$ and $\cos$ using a device, make sure you measure the angle as needed by that device.

In your example, with an angle of $45$ degrees, if you find $\sin(45^\circ)$ and $\cos(45^\circ)$ from a calculator, make sure the calculator is set to use degrees as the measure. Using Google's calculator (which by default uses radians), we must input $\sin(45\ \text{ degrees})$ and $\cos(45\ \text{ degrees})$. This returns

$\sin(45^\circ)\approx.707\quad\text{and}\quad\cos(45^\circ)\approx.707.$ Your point would then have $x$ coordinate

$\ \ \ \ \ x\approx5\cdot (0.707)=3.535$

and $y$-coordinate

$\ \ \ \ \ y\approx5\cdot( 0.707)=3.535$.

In radians, $45$ degrees is $45\cdot{\pi\over 180}={\pi\over 4}$ radians; and you could compute $\cos(\pi/4)$ and $\sin(\pi/4)$ using a device where angles are measured in radians. This of course will give approximately $.707$ in both cases as before.

  • 0
    FTR, the angle here is relative to origin, which makes sense because given any other random angle, how can you know how does it relate to the coordinate system? In retrospective this wasn't only problem: I'm working with coordinate system with flipped $y$ *(i.e. it grows down, not up)*, which could've caused problem too *(although it depends on angle definition — if it's also flipped, you don't have to change anything)*. TL;DR: watch out for correct angle offsets, and coordinate system oddness.2018-01-10