[Math] Equidistant points on a circle

algebraic-geometryanalytic geometrygeometry

I would like to obtain/generate points on a circle in Cartesian coordinates such that the distance between two consecutive points will be always equal. For example, plotting a circle with radius 100 with each point 1 unit away from the previous and the next point.

I have tried to use polar coordinates as well as the R=x^2+y^2, but could not achieve what I wanted. What would be a reasonable approach for determining those points on a circle?

Best Answer

Taking your example of $R=100$ and $d=1$, you get a central angle of

$$\alpha=2\arcsin\frac{d}{2R}\approx0.573°\approx\frac{2\pi}{628}$$

So your points wouls most closely resemble a regular $628$-gon. But not exactly: the $628$-gon has $d\approx1.0005$ while the $629$-gon has $d\approx0.9989$. Therefore you can't place points at unit distance from one another along a circle of radius $100$ all the way around. Not exactly.

But perhaps you only want points on a part of the circle, so they don't have to get back exactly to their starting point. Or perhaps a slight deviation in radius or distance is acceptable. Then you can get coordinates for your points using

$$ x_k = R\cos(k\alpha) \qquad y_k = R\sin(k\alpha) $$

for $k\in\{0,1,2,\dots,n-1\}$. If you aim for an exact $n$-gon, you'd use $\alpha=\frac{2\pi}n$ while for exact lengths $R$ and $d$ but a non-closing sequence you'd use the angle as computed above.

Related Question