Если ваш эллипс центрирован в начале координат с длинными и короткими полуосями a и b, радиус кривизны r в конце длинной оси равен
r = b² - a
Так , {± (a - r), 0} - центры внешних окружностей с радиусом r. Круг в середине находится в {0, 0} с радиусом b. Для промежуточных окружностей вы можете описать точку на эллипсе с помощью
{x, y} = {a · cosθ, y = b · sinθ}
Касательная на эллипсе в эта точка равна
{dx, dy} = {- a · sinθ, dy = b · cosθ}
Пересечение нормали этой касательной и большой оси является центром {x₀, 0} круга с радиусом r₀, который касается эллипса.
x₀ = x + y · dy / dx
r₀ = гипотеза (x₀ - x, y)
Проблема здесь заключается в том, что вы начинаете с угла θ, а расположенные на всем расстоянии друг от друга углы эллипса не дают равномерно распределенных кругов, см. Рисунок (а) ниже.
Вы можете повернуть шаги выше, чтобы получить равномерно распределенные центры кругов , Учитывая центр {x₀, 0} круга,
cosθ = x₀ / (a - b² / a)
sinθ = знак (x₀) · sqrt (1 - cos² θ)
r₀ = hypot (x₀ - a · cos θ, b · sin θ)
Это даст распределение на рисунке (b). Вы должны играть с расстояниями, чтобы ваш эллипс был покрыт кругами. Чем более плоский эллипс, тем больше кругов вам нужно.
a b