Mathematica绘制动态蔓叶线

一、什么是蔓叶线

可以去参考百度百科

二、为什么要绘制蔓叶线?

那肯定是好玩啊

三、怎么绘制动态蔓叶线

我主要从我绘制的过程来进行说明。从百度可知蔓叶线的图像以及其曲线方程。
在这里插入图片描述
在这里插入图片描述
所以问题来了,蔓叶线的动态图像是怎么样的。可参考博主@预见未来to50蔓叶线绘制文章中所示。下图就是我最终的绘制结果。
最后的成品
由于其是曲线方程,本来想改为参数方程采用ParametricPlot命令来绘图,但是绘出的不是动图,所以只能采取别的办法。于是先明确动图中固定的部分和运动的部分。其中有坐标轴与直线x=8,与半径为4的圆,可先绘制。然后以从右到左的角度作为变量,绘制直线。失败案例1
失败案例2
失败案例3
从中可以看出圆上的点与直线上的点转动的角度须一致。修改后,转动角度同步的图为:
在这里插入图片描述
接着就是将蔓叶线引入进来,一开始直接就是将参数方程引进的,然后:
在这里插入图片描述
灰常尴尬,图像木有动啊!改了一下,成为动态的蔓叶线,
在这里插入图片描述
然而并没有什么用。于是反其道而行之,抛弃了其参数方程,直接采用定义中的条件,将OM=PQ,再根据定义,计算出共线上各点的坐标。
在这里插入图片描述
点都在直线上,结合坐标的关系,根据角度变化,则可全部连在一起。后面就是改改线型,颜色,点的大小,以及标签之类的。
在这里插入图片描述
话不多说,上代码。

a = Table[
  Show[{ParametricPlot[{(8/Tan[t]) - 4 Sin[2 t], 4 + 4*Cos[2 t]}, {t, 
      0.01, t}, PlotStyle -> {Thick, RGBColor[1, 0, 1]}, 
     AxesOrigin -> {0, 0}]},
   {Graphics[{Red, Disk[{4*Sin[2 t], 4 - 4*Cos[2 t]}, 0.2]}]},
   Graphics[{{RGBColor[1, 0, 1], 
      Disk[{(8/Tan[t]) - 4 Sin[2 t], 4 + 4*Cos[2 t]}, 0.25]}, 
     Text[Style["M", Black, Italic, FontFamily -> "Times", 
       22], {(8/Tan[t]) - 4 Sin[2 t] + 0.1, 4 + 4*Cos[2 t] + 0.6}]}],
   Graphics[{{Red, Disk[{8/Tan[t], 8}, 0.2]}, 
     Text[Style["O", Black, Italic, FontFamily -> "Times", 
       22], {0, -0.6}]}],
   ListLinePlot[{{(8/Tan[t]) - 4 Sin[2 t], 4 + 4*Cos[2 t]}, {8/Tan[t],
       8}}, PlotStyle -> {Thick, Red}],
   ListLinePlot[{{0, 0}, {4*Sin[2 t], 4 - 4*Cos[2 t]}}, 
    PlotStyle -> {Thick, Red}],
   ListLinePlot[{{4*Sin[2 t], 
      4 - 4*Cos[2 t]}, {(8/Tan[t]) - 4 Sin[2 t], 4 + 4*Cos[2 t]}}, 
    PlotStyle -> {Thick, RGBColor[0, 1, 0.501961]}],
   PolarPlot[8 Sin[x], {x, 0, Pi}, PlotStyle -> {Thick, Blue}],
   Plot[8, {x, -12, 12}, PlotStyle -> {Thick, Green}],
   PlotRange -> {{-10, 10}, {-2, 10}}], {t, 0, Pi, 0.5/10}]
Export["e:/Program Files/math files/蔓叶线34.gif", a, 
 ImageSize -> {720, 440}, ImageResolution -> 300]

由于在90度的位置会出现Tan90度分之一的无穷分之一的情况,所以动图刚开始会有一丢丢红色的一帧显示错误。我看整幅图大体上木有问题所以也就没管太多。由于本人初学Mathematica,所接触的函数和编程方法比较少,后续有了更深的了解后再进行修改。

©️2020 CSDN 皮肤主题: 大白 设计师:CSDN官方博客 返回首页