それではMathematicaを用いて3次元図形を描画してみましょう。Mathematicaの3次元図形の基本的な図形の描き方は
「Let's Enjoy with Plot3D」(Masasi.Sanae)
http://www.nikonet.or.jp/spring/Plot3D/Plot3D.htm
をご覧ください。ここでは任意の空間図形を任意の平面で切断する関数knife[]や,固有ベクトルを用いた座標変換による2次曲面の高速描画関数quadrics[]などが入ったパッケージを用いた教材作成について述べていきます。これらの関数を用いることにで,より空間的なイメージ化をすることができます。
なお,これらのパッケージはH.Takahashi氏のHomePageから非営利目的に限り,次のURLから自由にダウンロードすることができます。
「H.Takahashi's Home Page」 http://www.biwako.or.jp/%7Ehidekazu/
これらのパッケージはフォルダStandardPackagesに置いて使用することができます。さっそくパッケージknife.mに入っている関数knife[]を用いて,空間図形を任意の平面で切断してみましょう。
いま最も簡単な図形である立方体を描画してみます。
Get["Graphics`Polyhedra`"] Get["Graphics`Shapes`"] Show[Graphics3D[Cube[]],Boxed->False]次にこの立方体を,さまざまな角度から平面で切断していきます。しかし,まず関数knife[]を用いるためにパッケージknife.mをロードする必要があります。
Remove["Global`*"] Get["knife`"] Get["Graphics`Shapes`"]それでは関数knife[]を用いて,この立方体を切断してみましょう。オプション値を変化させればさまざまな切断ができます。
cube=Graphics3D[Cube[]]; gr=knife[cube,{1,1,1,0},{0,0,0},{.3,.3,.3}]; Show[gr,Boxed->False] gr=knife[cube,{2,1,1,0},{0,0,0},{.3,.3,.3}]; Show[gr,Boxed->False] gr=knife[cube,{1,1,1,0},{-30,0,0},{.3,.3,.3}]; Show[gr,Boxed->False] gr=knife[cube,{1,1,1,0},{0,0,0},{1,1,1}]; Show[gr,Boxed->False]さあ,今度はDoを用いてパラメータの変化による変化の様子を調べてみましょう。「cell」メニューの中の「Animate Selected Graphics」を選択すれば,アニメーションもできます。
Do[vec = N[{Sin[(π t)/180], Cos[(π t)/180], Sin[(π t)/180], 0}]; gr = knife[cube, vec, {0, 0, 0}, Drop[vec, -1]]; Show[gr, PlotRange->All,Boxed->False,BoxRatios->Automatic,Axes->False, DisplayFunction->$DisplayFunction],{t,0,180,15}]ここで用いたMathematicaのNotebookは,次のところをクリックするとダウンロードできます。
→ cut.nb (6kb)