A 基本的な設定
3D表示をするための基本的な設定をします。
「3. SpaceCindy」のページでダウンロードできる SpaceCindy.cdy では,Drawスロットで以下の設定がされています。
投影法
立体を平面に「投影」して表示するとき,遠近感をどのように出すかがひとつの問題になります。
「遠くにあるものは小さく見える」のが自然ですので,そのようにするのがよさそうですが,そうでないものもよくあります。
次の左図が,遠近感を出したもの(透視投影)右図が教科書などによくあるもの(平行投影)です。
4つの立方体はどれも同じ大きさの立方体ですが,透視投影では一つが奥にあるように見えます。
SpaceCindyでは setview3d() という関数で,この設定をします。
setview3d() には3つの引数があり,第1引数が投影法で,1なら透視投影,0なら平行投影とします。
第2,第3引数は,視点の位置(原点からの距離),拡大率 です。
初期設定は setview(1,15,30) ですが,一度実行しただけでは視点移動ができないので,Drawスロットの最初に書く方がよいでしょう。
座標軸
座標軸を描画するときは,setaxis3d(範囲リスト,option)で描画する範囲を設定します。範囲リストはx軸,y軸,z軸の順にコンマで区切って書きます。たとえば,
setaxis3d([-4,4],[-4,4],[0,3]);
のようにします。option は原点のOの表示位置です。(マニュアルを参照してください)
なお,これは「設定」なので,これだけでは座標軸は表示されません。座標軸を表示するには,スクリプトの最後に
axisdisp();
を書きます。最後に書く理由は,陰線処理で立体に隠れた部分を点線にするためです。
回転(視点移動)
3Dで描かれた図は視点移動をすると立体感がよくわかります。その方法につぎのようなものがあります。
(1) 画面上でマウスをドラッグする
(2) 直線のスライダを2本作る
(3) 円形のスライダを2個作る
GeoGebraやMacのGrapher,Cindy3Dでは(1) の方法を使っています。
SpaceCindyではいろいろ検討した結果(3)の方法を用いています。画面左に2つの円形スライダがあります。中心をドラッグすると位置を変えることができます。