[Math] Calculate radius of variable circles surrounding big circle.

circlesgeometry

I got a circle, which I know all the details about him. (Radius [100], Diameter [200], Circumference [628.32], Area [31415.93]…)

I would like to surround this circle, with smaller circles. I know the amount of the smaller circles (in this case 14, but it can be less > minimum 4).

I need a formula to calculate the Radius of the smaller circles.

I got the following formula, but this is not right…
R = radius of big circle
n = number of smaller circles
P = tan(360/2n)
r = radius of smaller circles

r = (-(PR))/(P-1)

Here's an example of how it should looks like (this is not right, because I didn't know the Radius of the smaller circles, I just guessed..):

enter image description here

Thank you very much!

Best Answer

If you connect the centers of two adjacent little circles and the center of the big one, you'll get a triangle. The sides of this triangle have lengths $r+R, r+R$ and $2r$. A little trigonometry will get you that the top angle is

$$\theta=2\arcsin\left(\frac{r}{r+R}\right) \; .$$

Since you want the small circles to form a closed ring around the big circle, this angle should enter an integer amount of times in $360°$ (or $2\pi$ if you work in radians). Thus,

$$\theta=360°/n \; .$$

From this, you can compute that

$$r=\frac{R \sin(180°/n)}{1-\sin(180°/n)} \; .$$

Here's a plot of the result for $n=14$:

Circle ring

Here's the code in Scilab:

n=14;

R=1;

r=R*sin(%pi/n)/(1-sin(%pi/n));

theta=2*%pi*(0:999)/1000;

plot(Rcos(theta),Rsin(theta));

hold on;

for k=0:(n-1),

plot((r+R)*cos(2*k*%pi/n)+r*cos(theta),(r+R)*sin(2*k*%pi/n)+r*sin(theta));

end;

hold off;

Related Question