Mathematica绘制椭圆摆线簇(二)
程序员文章站
2022-02-05 19:27:05
...
一、椭圆积分
椭圆积分是一类积分的统称,这里只讲用来计算椭圆周长的积分。这种积分不能采用基本函数表达,只能用积分形式表达。要采用积分计算出椭圆的周长,得用曲线积分。L为椭圆周长,计算90度的长度再乘4。
而在Mathenatica里面也有椭圆积分EllipticE,其中EllipticE[θ,m]可用来任意角度的椭圆弧长。
二、椭圆摆线簇
本来一开始将起点放在长轴的端点上,然后一想可以将起点放在短轴的端点上试一试
可以看出两种摆线是完全不一样的,然后转念一想,因为圆上的每一点转出来的曲线是一样的,而椭圆则不一样,所以将90度的弧上的每一点都做出一个摆线,形成一个摆线簇。
还可以修改一下颜色,或者另外一半的摆线。
增加一下滚动的长度,奈何电脑条件不太允许,做的角度比较少。
上代码:
f[x_] := x - Quotient[x, 2 Pi]*2 Pi;
h[x_] := Piecewise[{{ArcTan[4 Tan[x]], f[x] <= 0.5 Pi},
{ArcTan[4 Tan[x]] + Pi, 0.5 Pi < f[x] <= Pi},
{ArcTan[4 Tan[x]] + Pi, Pi < f[x] <= 1.5 Pi},
{ArcTan[4 Tan[x]] + 2 Pi, 1.5 Pi < f[x] <= 2 Pi}}];
a = Table[
Show[{
Plot[x^2, {x, 1, 3}, Axes -> True, AxesOrigin -> {0, 0},
AspectRatio -> 1/4, PlotStyle -> {Thick, White},
PlotRange -> {{-3, 24}, {-3, 5}}],
Table[ParametricPlot[{2 EllipticE[t, 0.75] +
Cos[0.5 Pi - h[t] + t]*2/Sqrt[3*Sin[t]^2 + 1] -
2*Cos[0.5 Pi - h[t] - k]/Sqrt[3*Sin[k]^2 + 1],
Sin[0.5 Pi - h[t] + t]*2/Sqrt[3*Sin[t]^2 + 1] -
2 Sin[0.5 Pi - h[t] - k]/Sqrt[3*Sin[k]^2 + 1]}, {t, 0.0001,
t}, PlotStyle -> ColorData["VisibleSpectrum"][400 + 130 k/1.5]],
{k, 0.001, Pi, 0.05 Pi}],
Graphics[
Rotate[{Red, Thick,
Circle[{2 EllipticE[t, 0.75] +
Cos[0.5 Pi - h[t] + t]*2/Sqrt[3*Sin[t]^2 + 1],
Sin[0.5 Pi - h[t] + t]*2/Sqrt[3*Sin[t]^2 + 1]},
{1, 2}
], AxesStyle -> {Thick, Black, Black}},
-h[t]]
]
}], {t, 0.001, 4 Pi, 0.04 Pi}](*plot坐标轴设置在前,graphic在后就能显示一起*)
Export["e:/Program Files/math files/椭圆滚动88.gif", a,
ImageResolution -> 100];