Mathematica绘制椭圆摆线簇(二)

一、椭圆积分

椭圆积分是一类积分的统称,这里只讲用来计算椭圆周长的积分。这种积分不能采用基本函数表达,只能用积分形式表达。要采用积分计算出椭圆的周长,得用曲线积分。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];
©️2020 CSDN 皮肤主题: 大白 设计师:CSDN官方博客 返回首页