[Math] Calculating point on circle given angle and distance traveled without calculating radius

circles

I want to calculate the X,Y coordinates of a point on a circle given only the distance and angle traveled, without calculating the radius as an intermediate step.

My starting point (0,0) is at the top of the circle. I know how far I have traveled around the circumference, and I know the angle I have subtended.

Because the angle could be very small or zero and this has to be performed in 32bit floating point arithmetic I want to avoid having to calculate the radius or location of the center of the circle (which could be infinite or very, very large)

Best Answer

That's simple: if $r$ is the radius and angles, measured w.r.t. the vertical axis, are in radians, the distance travelled is $d=r\theta$.

On the other hand, $x=r\cos\bigl(\frac\pi2+\theta\bigr)=-r\sin\theta\:$ and $\:y=r\sin\bigl(\frac\pi2+\theta\bigr)-r =r(\cos\theta -1) $, so that \begin{cases} x=-\dfrac{d\sin \theta}\theta,\\[1ex] y=\dfrac{d(\cos\theta-1)}\theta. \end{cases}