Take the 2-minute tour ×

Its the end of the day and my brain just cant 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 a given distance around the circumference of the circle? Known variables are the initial starting point, distance travelled, and radius of the circle.

share|improve this question
And center of circle? And direction of travel? –  André Nicolas Jul 26 '11 at 17:19
sorry yes, center of circle and direction of travel are known too –  suds Jul 26 '11 at 17:21
Distance divided by radius is the angle travelled (in radians). –  André Nicolas Jul 26 '11 at 17:24

2 Answers 2

up vote 3 down vote accepted

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.

share|improve this answer
Fantastic, thanks André –  suds Jul 26 '11 at 18:09
@suds: Hope that the long derivation wasn't annoying. I often tell people a little more than they may want to know. –  André Nicolas Jul 26 '11 at 18:12

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) $$

share|improve this answer

Your Answer


