Tuesday, April 2, 2019

geometry - Arranging circles around a circle



$N$ circles are given by their radii: $r_1$, $r_2$,..., $r_N$. They are arranged around another circle so that they pack, like in this picture (order of $N$ circles should be preserved):



enter image description here




What is the radius $R$ of that central circle (as a function of $r_1$, $r_2$,..., $r_N$)? (central circle is red in the picture above)






CONTEXT: This is related to some real problems of data visualization.



NOTE: I think the bad thing in my question is that the word "pack" is not strictly defined. Now I can see many corner cases that increase complexity... I will be happy even with answers that do not cover all cases and/or are limited to cases of small $N$.


Answer



For three externally tangent circles, of radii $r_1$, $r_2$, $R$, consider the triangle formed by their centers. Side lengths $r_1+r_2$, $r_1+R$, $r_2+R$, and the angled subtended on the central circle you can get from the cosine rule.




A full packing will be achieved if the sum of the angles for each pair of circles $r_i, r_{i+1}$ will add up to $360^\circ$, which is this hideous expression:
$$ 2\pi = \sum_{i=1}^{N} \cos^{-1} \left(\frac{ (r_i+R)^2 + (r_{i+1}+R)^2 - (r_i + r_{i+1})^2}{2(r_i+R)(r_{i+1}+R)}\right).$$



This should be solvable numerically, as I expect the individual angles are monotonic with $R$, (with limit $R > min(|r_i - r_{i+1}|)$.


No comments:

Post a Comment

analysis - Injection, making bijection

I have injection $f \colon A \rightarrow B$ and I want to get bijection. Can I just resting codomain to $f(A)$? I know that every function i...