1
$\begingroup$

It is the end of the day and my brain just can't cope anymore. Can anyone help with, what I hope, is a simple question?

Given a point on a circle ($x$, $y$ coordinates) how can I calculate the coordinates of another point at a given distance around the circumference of the circle? Known variables are the starting point, distance traveled and radius of the circle.

  • 0
    Distance divided by radius is the angle travelled (in radians).2011-07-26

2 Answers 2

4

Let the center of the circle be $(a,b)$. Drag the center to the origin. This procedure drags our given point $(x,y)$ to $(x-a,y-b)$.

For simplicity of notation, let $u=x-a$, $v=y-b$. Now we determine the angle that the positive $x$-axis has to be rotated through (counterclockwise) to hit the line from the origin to $(u,v)$. Call this angle $\theta$.

Then $\theta$ is the angle, say in the interval $(-\pi,\pi]$, whose cosine is $u/r$, and whose sine is $v/r$, where $r$ is the radius of the circle. (This was already known; it also happens to be $\sqrt{u^2+v^2}$.) So from now on we can take $\theta$ as known. But we have to be careful to take the signs of $u$ and $v$ into account when calculating $\theta$.

Let $D$ be the distance travelled. Assume that we are travelling counterclockwise. Then the angle of travel is (in radians) equal to $D/r$. Let $\phi$ be this angle. If we are travelling clockwise, just replace $\phi$ by $-\phi$. So from now on we can take $\phi$ as known.

After the travel, our angle is $\theta+\phi$. This means that we are at the point with coordinates

$(r\cos(\theta+\phi), \: \: r\sin(\theta+\phi)).$

Now transform back, by adding $(a,b)$ to the point. We obtain $(a+r\cos(\theta+\phi),\:\: b+r\sin(\theta+\phi)).$

All the components of this formula are known, so we can compute the answer.

Comment: Note that $\cos(\theta+\phi)=\cos\theta\cos\phi-\sin\theta\sin\phi.$ But we know that $r\cos\theta=u$ and $r\sin\theta=v$. Thus $a+r\cos(\theta+\phi)=a+u\cos\phi-v\sin\phi.$

Similarly, $\sin(\theta+\phi)=\cos\theta\sin\phi+\sin\theta\cos\phi,$ and therefore $b+r\sin(\theta+\phi)=u\sin\phi+v\cos\phi.$ Thus an alternate (and for many purposes simpler) version of the answer is $(a+(x-a)\cos\phi-(y-b)\sin\phi,\:\: b+(x-a)\sin\phi+(y-b)\cos\phi),$ where $\phi=D/r$.

We could also reach this by quoting the rotation formula. Recall that when we are rotating a point $(u,v)$ about the origin through an angle $\phi$, we multiply the vector by a certain matrix. You can think of this post as being, in particular, a derivation of the rotation formula.

  • 0
    @suds: Hope that the long derivation wasn't annoying. I often tell people a little more than they may want to know.2011-07-26
2

Another way to derive this answer it to use complex coordinates. Lets assume the centre of the circle is in $c=a+b i$ and the initial point in $z_0=x_0+y_0$ which can be written as $z_0=c+r e^{i\phi},$ where $r$ is the radius of the circle and $\phi$ is the initial angle.

The angle over which you have travelled is equal to $\theta=d/r$ where $d$ is the distance travelled along the circle in counter clockwise direction. The new point $z_1=x_1+i y_1$ is then $ z_1= c+r e^{i(\phi+\theta)} = c + (z_0-c) e^{i\theta} = c + (z_0-c) e^{i d/r} $ By writing everything back in Cartesian coordinates we find $ x_1 = \Re(z_1)= a + (x_0-a) \cos(d/r) - (y_0-b)\sin(d/r) $ and $ y_1 = \Im(z_1)= b + (x_0-a) \sin(d/r) + (y_0-b)\cos(d/r) $