Знаете ли вы алгоритм для моделирования эллипса с помощью ряда выровненных окружностей - PullRequest
0 голосов
/ 25 марта 2020

знаете ли вы алгоритм моделирования эллипса с помощью ряда выровненных окружностей? спасибо

enter image description here

1 Ответ

1 голос
/ 25 марта 2020

Если ваш эллипс центрирован в начале координат с длинными и короткими полуосями 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 equidistant ellipse angles b equidistand circle centres

...