这里,有尽善尽美的图形,有死板乏味的代码,这里说的是用Mathematica的ParametricPlot(3D)、绘制参数方程的图像的方式。
先来吸睛——一个半透明的绿贝壳:
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]
另一条参数化的曲面:
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}】
绘制两个套在一路的圆环,两个圆环红绿相间:
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】
注重透明度是别离设置的!
三个圆环套在一路,用分歧的颜色加以区分:
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}}]
读者可以本身思虑一下,如何画出三个互相环绕纠缠的圆环?
绘制一个不透明的蓝色球体,概况有平均的海浪条纹,还有白色的高光反射:
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节制。
画贝壳的时辰,在转变区域较快的区域,增添网格线的密度:
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}】
绘制三维空间的曲线——单参数曲直线,双参数曲直面:
ParametricPlot3D[{Cos[2 u], Sin[2 u], Sqrt[u] + Sin[5 u]/5}, {u, 0,
4 Pi}, Mesh -> All, PlotStyle -> {Pink}
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”删失落,可以看到坐标系。
当曲面不持续的时辰,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}]
弹簧绕当作一个圈会是什么模样呢?
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}】
给它起个名字叫“弹簧线圈”:
ParametricPlot3D[{(2 + Cos[8 u]) Cos[u], (2 + Cos[8 u]) Sin[u],
Sin[8 u]}, {u, 0, 2 Pi}, AxesLabel -> {x, y}, PlotLabel -> “弹簧线圈”]
有两种方式可以画一个圆环。
第一种方式是用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 -> “圆环”]
用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]
上面的动态图片如下。
先到这里吧!
0 篇文章
如果觉得我的文章对您有用,请随意打赏。你的支持将鼓励我继续创作!