欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

Mathematica绘制椭圆摆线簇(二)

程序员文章站 2022-02-05 19:27:05
...

一、椭圆积分

椭圆积分是一类积分的统称,这里只讲用来计算椭圆周长的积分。这种积分不能采用基本函数表达,只能用积分形式表达。要采用积分计算出椭圆的周长,得用曲线积分。L为椭圆周长,计算90度的长度再乘4。
Mathematica绘制椭圆摆线簇(二)
而在Mathenatica里面也有椭圆积分EllipticE,其中EllipticE[θ,m]可用来任意角度的椭圆弧长。

二、椭圆摆线簇

本来一开始将起点放在长轴的端点上,然后一想可以将起点放在短轴的端点上试一试
Mathematica绘制椭圆摆线簇(二)
可以看出两种摆线是完全不一样的,然后转念一想,因为圆上的每一点转出来的曲线是一样的,而椭圆则不一样,所以将90度的弧上的每一点都做出一个摆线,形成一个摆线簇。
Mathematica绘制椭圆摆线簇(二)
Mathematica绘制椭圆摆线簇(二)
Mathematica绘制椭圆摆线簇(二)
还可以修改一下颜色,或者另外一半的摆线。
Mathematica绘制椭圆摆线簇(二)
增加一下滚动的长度,奈何电脑条件不太允许,做的角度比较少。

Mathematica绘制椭圆摆线簇(二)
上代码:

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];