這里,有盡善盡美的圖形,有死板乏味的代碼,這里說的是用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 篇文章
如果覺得我的文章對您有用,請隨意打賞。你的支持將鼓勵我繼續創作!