你知道用一系列对齐的圆来建模椭圆的算法吗

Do you know an algorithm for modeling an ellipse by a series of aligned circles

你知道用一系列对齐的圆来建模椭圆的算法吗?谢谢

如果你的椭圆以原点为中心,长半轴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 θ}

该切线的法线与长轴的交点是与椭圆相交的半径为 r₀ 的圆的中心 {x₀, 0}。

x₀ = x + y · dy / dx
r₀ = hypot(x₀ − x, y)

这里的问题是你从角度 θ 开始,椭圆的均匀间隔的角度不会产生均匀分布的圆,见下图 (a)。

您可以反转上述步骤以获得均匀分布的圆心。给定圆心 {x₀, 0},

cos θ = x₀ / (a − b² / a)
sin θ = sign(x₀) · sqrt(1 − cos² θ)
r₀ = hypot(x₀ − a · cos θ, b · sin θ)

这将给出图(b)中的分布。您必须调整距离,以便您的椭圆被圆圈覆盖。椭圆越扁,需要的圆圈越多。

一个 b