情報処理入門
「簡単な3Dグラフィックスの描き方」

マスマティカを使うと、色々な数学的図形を描くことができる。たとえば、「mathematica 3D graphics」で検索すると様々な3D画像が出てくる。ここでは、基礎的な3D画像の書き方を学ぶ。

課題1
表面プロット。Plot3D[関数, {xの範囲}, {yの範囲}, PlotRange ->{zの範囲}]を使う。
a) Sin[x*y]を{x, 0, 3}, {y, 0, 3}の範囲で、表面プロットしてみる。
b) 三次元プロットの図は、マウス長押し状態でぐりぐり動かすことができるので、やってみよう。
c) Exp[-x^2]*Exp[-y^2]を{x, -2, 2}, {y, -2, 2}, PlotRange -> {0, 1}の範囲で、表面プロットしてみる。
d1) 10*Sin[x + Sin[y]]を {x, -10, 10}, {y, -10, 10}の範囲で、表面プロットしてみる。
d2) Mesh -> FalseとMesh -> Allで、メッシュを付けたり、けしたりしてみる。
d3) PlotRange->{初期値、最終値}を使い、z軸の範囲を変えてみる。
たとえば、PlotRange -> {-4, 4}

課題2
多面体を描こう。
a)PolyhedronData["…hedron" ]を使って、Tetrahedron、Hexahedron、Octahedron、Dodecahedron、Icosahedronなどを描こう。
b) PentagonalHexecontahedronを描いてみよう。
c) Show[ ]の中にPolyhedronData["Dodecahedron"]、PolyhedronData["Icosahedron"]、PolyhedronData["Octahedron"]等を入れて、PlotRange ->{zの範囲}]を指定してみる。たとえば、PlotRange -> {-0.8, 0.4}にしてみる。

課題3
3次元プロット。ParametricPlot3D[{fx(t, u), fy(t, u), fz(t, u)}, {t, 初期値, 最終値}, {u, 初期値, 最終値}]を使う。
a) 以下の関数を使い、円柱を描こう。tの範囲は0から2*Pi、uの範囲は0から4とする。
 x=Sin[t]
 y=Cos[t]
 z=u
 
b) 以下の関数を使い、円錐を描こう。tの範囲は0から2*Pi、uの範囲は0から4とする。
 x=u*Sin[t]
 y=u*Cos[t]
 z=2*u
 
c) 以下の関数を使い、螺旋を描こう。tの範囲は0から15、uの範囲は-1から1とする。ただし、解像度をあげるため、PlotPoints -> 40とする。
 x=u*Sin[t]
 y=u*Cos[t]
 z=t/3

課題4
a) 以下の関数を使い、球を描こう。tの範囲は0から2*Pi、uの範囲は0から2*Piとする。
 x=Cos[t]*Cos[u]
 y=Sin[t]*Cos[u]
 z=Sin[u]
 
b) 以下の関数を使い、潰れた楕円球を描こう。tの範囲は0から2*Pi、uの範囲は0から2*Piとする。
 x=2*Cos[t]*Cos[u]
 y=2*Sin[t]*Cos[u]
 z=Sin[u]
 
c) 以下の関数を使い、縦長の楕円球を描こう。tの範囲は0から2*Pi、uの範囲は0から2*Piとする。
 x=Cos[t]*Cos[u]/2
 y=Sin[t]*Cos[u]/2
 z=Sin[u]
 
d) 以下の関数を使い、トーラスを描こう。tの範囲は0から2*Pi、uの範囲は0から2*Piとする。

 x=Cos[t]*(3 + Cos[u])
 y=Sin[t]*(3 + Cos[u])
 z=Sin[u]

課題5
a) 以下の関数を使い、堤太鼓のような、砂時計のような図形を描いてみよう。tの範囲は-Pi/2からPi/2、uの範囲は0から2*Piとする。
 x=Sin[t]
 y=Sin[2*t]*Sin[u]
 z=Sin[2*t]*Cos[u]
 
b) 以下の関数を使い、ぐるぐる巻きの円柱を描いてみよう。tの範囲は0から2*Pi、uの範囲は0から10*Piとする。
 x=(5 + 1.2*Cos[t])*Cos[u]
 y=(5 + 1.2*Cos[t])*Sin[u]
 z=1.2*Sin[t] + 0.5*u
 このままだと解像度が悪いので、PlotPoints -> {20, 40}と点の数を増やす。
 
c) 以下の2つの関数を使い、トーラスと円柱をを描き、重ねてみよう。このとき、ParametricPlot3D[{{トーラスの関数}, {円柱の関数}}, {t, 初期値, 最終値}, {u, 初期値, 最終値}]とする。tの範囲は0から2*Pi、uの範囲は-PiからPiとする。
 
 トーラス:
 x=Cos[t]*(3 + Cos[u])
 y=Sin[t]*(3 + Cos[u]) 
 z=Sin[u]
 
 円柱:
 x=
Sin[t]
 y=2*u
 z=Cos[t]

課題はマスマティカのファイル(拡張子が.nb)を添付して送ってください。
結果のみではなく、コマンドそのものも送ること。

完成したら、ファイルをメールに添付して提出すること。
送り先:ynagasaあっとfc.ritsumei.ac.jp