用Mathematica绘制函数图像——参数方程式

  这里,有尽善尽美的图形,有死板乏味的代码,这里说的是用Mathematica的ParametricPlot3D)、绘制参数方程的图像的方式。

工具/原料

  • 电脑
  • Mathematica

方式/步骤

  1. 1

      先来吸睛——一个半透明的绿贝壳:

    ParametricPlot3D[{1.16^v Cos[v] (1 + Cos[u]), -1.16^v Sin[v] (1 + Cos[u]), -2 1.16^v (1 + Sin[u])}, {u, 0, 2 Pi}, {v, -15,   6}, 

    Mesh -> None, PlotStyle -> {Opacity[0.6], Green}, PlotRange -> All, 

     PlotPoints -> 25, Boxed -> False, Axes -> False]

  2. 2

            另一条参数化的曲面:

    ParametricPlot3D[{Cos[u], Sin[u] + Cos[v], Sin[v]}, {u, 0,   2 \[Pi]}, {v, -\[Pi], \[Pi]}, Mesh -> None, Axes -> False, 

     Boxed -> False, PlotStyle -> {Opacity[1], Green}】

  3. 3

      绘制两个套在一路的圆环,两个圆环红绿相间:

    ParametricPlot3D[{{4 + (3 + Cos[v]) Sin[u], 4 + (3 + Cos[v]) Cos[u], 

       4 + Sin[v]}, {8 + (3 + Cos[v]) Cos[u], 3 + Sin[v], 

       4 + (3 + Cos[v]) Sin[u]}}, {u, 0, 2 Pi}, {v, 0, 2 Pi}, 

     PlotStyle -> {{Opacity[0.6], Red}, {Opacity[0.6】, Green}}, 

     Mesh -> None, Axes -> False, Boxed -> False】

      注重透明度是别离设置的!

  4. 4

      三个圆环套在一路,用分歧的颜色加以区分

    ParametricPlot3D[{{4 + (3 + Cos[v]) Sin[u], 4 + (3 + Cos[v]) Cos[u], 

       4 + Sin[v]}, {8 + (3 + Cos[v]) Cos[u], 3 + Sin[v], 

       4 + (3 + Cos[v]) Sin[u]}, {12 + (3 + Cos[v]) Sin[u], 

       4 + (3 + Cos[v]) Cos[u], 4 + Sin[v]}}, {u, 0, 2 Pi}, {v, 0, 2 Pi}, 

     PlotStyle -> {{Opacity[0.5], Red}, {Opacity[0.5], 

        Green}, {Opacity[0.5], Blue}}]

      读者可以本身思虑一下,如何画出三个互相环绕纠缠的圆环

  5. 5

      绘制一个不透明的蓝色球体,概况有平均的海浪条纹,还有白色的高光反射

    ParametricPlot3D[{Sin[u] Sin[v] + 0.05 Cos[20 v], 

      Cos[u] Sin[v] + 0.05 Cos[20 u], 

      Cos[v]}, {u, -\[Pi], \[Pi]}, {v, -\[Pi], \[Pi]}, MaxRecursion -> 4, 

     PlotStyle -> {Blue, Specularity[White, 10]}, Axes -> None, 

     Boxed -> False, Mesh -> None]

      高光反射,用Specularity节制

  6. 6

      画贝壳的时辰,在转变区域较快的区域,增添网格线的密度

    ParametricPlot3D[{1.16^v Cos[v/2] (1 + Cos[u]), -1.16^v Sin[

        v/2] (1 + Cos[u]), -2 1.16^v (1 + Sin[u])}, {u, 0, 

      2.6 Pi}, {v, -15, 6}, Mesh -> All, PlotRange -> All, Boxed -> False,

      Axes -> False, PlotStyle -> {Opacity[0.9], Pink}】

  7. 7

      绘制三维空间的曲线——单参数曲直线,双参数曲直面

    ParametricPlot3D[{Cos[2 u], Sin[2 u], Sqrt[u] + Sin[5 u]/5}, {u, 0, 

      4 Pi}, Mesh -> All, PlotStyle -> {Pink}

  8. 8

      Mathematica会主动选择绘图的区域规模,以下面的“长号”为例

    ParametricPlot3D[{v Cos[u], v Sin[u], 1/Abs[v Exp[I u]]}, {u, 0, 

      2 Pi}, {v, 0, 1}, PlotStyle -> RGBColor[0, 0.7, 0.3], 

     Boxed -> False, Axes -> False】

      这里,坐标埋没了。你可以把, Axes -> False删失落,可以看到坐标系

  9. 9

      当曲面不持续的时辰,Mathematica会主动忽略失落无法显示的部门:

    ParametricPlot3D[{u Cos[v], u Sin[v], Im[(u Exp[I v]^5)^(1/5)]}, {u, 

      0, 2}, {v, 0, 2 Pi}, Mesh -> None, ExclusionsStyle -》 {None, Red}]

  10. 10

      弹簧绕当作一个圈会是什么模样呢?

    ParametricPlot3D[

     Evaluate[Table[{(2 + Cos[8 u + i】) Cos[u], (2 + Cos[8 u + i]) Sin[u],

         Sin[8 u + i]}, {i, {0, Pi}}]], {u, 0, 2 Pi}】

  11. 11

      给它起个名字叫“弹簧线圈”

    ParametricPlot3D[{(2 + Cos[8 u]) Cos[u], (2 + Cos[8 u]) Sin[u], 

      Sin[8 u]}, {u, 0, 2 Pi}, AxesLabel -> {x, y}, PlotLabel -> “弹簧线圈”]

  12. 12

      有两种方式可以画一个圆环。

      第一种方式是用RevolutionPlot3D扭转一个圆获得圆环,这里先忽略;

      第二种方式

    ParametricPlot3D[{(2 + Cos[v]) Cos[u], (2 + Cos[v]) Sin[u], 

      Sin[v]}, {u, 0, 2 Pi}, {v, 0, 2 Pi}, AxesLabel -> {x, y},

     PlotLabel -> “圆环”]

  13. 13

      用ColorFunction把“线圈”和“圆环”画当作彩色

    ParametricPlot3D[{(2 + Cos[v]) Cos[u], (2 + Cos[v]) Sin[u], 

      Sin[v]}, {u, 0, 2 Pi}, {v, 0, 2 Pi}, Mesh -> 25, 

     ColorFunction -> Function[{x, y, z, u, v}, Hue[5 u v/(2 Pi)]], 

     ColorFunctionScaling -> False]

      和

    ParametricPlot3D[{(2 + Cos[8 u]) Cos[u], (2 + Cos[8 u]) Sin[u], 

      Sin[8 u]}, {u, 0, 2 Pi}, PlotStyle -> Thick, 

     ColorFunction -> Function[{x, y, z, u}, Hue[5 u/(2 Pi)]], 

     ColorFunctionScaling -> False]

  14. 14

      上面的动态图片如下。

  15. 15

      先到这里吧!

注重事项

  • 当绘制多个图形的时辰,各项参数要分隔设置。
  • 高光反射,用Specularity节制。
  • 在转变区域较快的区域,可以恰当地增添网格线的密度。
  • 把“, Axes -> False”删失落,可以看到坐标系。
  • 当曲面不持续的时辰,Mathematica会主动忽略失落无法显示的部门。
  • 读者可以本身思虑一下,如何画出三个互相环绕纠缠的圆环?
  • 还可以用RevolutionPlot3D扭转一个圆获得圆环。
  • 发表于 2018-08-03 00:00
  • 阅读 ( 693 )
  • 分类:其他类型

相关问题

0 条评论

请先 登录 后评论