next up previous contents
: 水平面(座標が書かれる面)の位置の変更 : 直交座標系を用いた3次元グラフの描画 : 隠れ面の表示の切り換え 目次


視点の変更

3次元グラフを画面に表示するときには, 視点の位置によってグラフが見やすくなったり 見にくくなったりします.

そこで, グラフの見やすさを調整するために, set view というコマンドが用意されています.

われわれの視点(モニタの正面)から見た グラフが描かれる座標系は, 初期状態ではモニタの左右方向がx軸, モニタの上下方向がy軸, モニタに立てた垂線の方向がz軸になっています.

この座標系を最初にx軸のまわりで回転させ, さらに新しいz軸のまわりで回転さた座標系が グラフが実際に描画される座標系になります (図8.4).

図 8.4: 座標系の回転
\includegraphics[scale=1]{EPS/gnuplot-3d-view1.eps}

我々の視点はつねにモニタの正面に固定されていて, グラフが描画される座標系の方が回転しているという ことに注意して下さい. コマンド名 set view からは 視点の方を移動することが連想されますが, これは 実際の挙動とは異なります.

さらに, グラフ全体の縮尺とz軸の縮尺を指定することで, 実際にグラフがどのように描かれるかが決まります.

以上の説明をふまえた上で, コマンド set view の使い方を 紹介しましょう.

コマンド set view は

set view 回転1, 回転2, グラフの拡大率, z軸の拡大率 [Enter]
のようにして使います. 回転1は x軸のまわりの回転の角度で, 0度から180度のあいだの値を取ります. 回転2は少しわかりにくいのですが, 回転1で回転したあとの 座標系に関するz 軸まわりの回転で, 0度から360度の値を取ります. 回転1と回転2の意味を 図8.4に示します.

拡大率には任意の数が指定できます. また, 回転2以降は省略可能です.

gnuplotを起動したときには, 座標系は

set view 60, 30, 1, 1 [Return]
を実行した場合と同じ位置にあります.

以下に, 座標軸を回転させたときの例を示します.

まず最初に, 回転角1, 回転角2をともに 0, 0に指定してみましょう.

  set view 0,0,1,1 [Return]
  splot exp(-(x**2+y**2)/20) [Return]
結果は図8.5(a)のようになります. z軸がモニタの画面に垂直で, グラフを真上から見ていることになるので, 関数の形はまったくわかりません 続いて, 回転角1を30度ずつ増やし, 回転角2は零のまま固定しててみます. 結果を図8.5(b), (c), (d)に示します. 結果を図8.5(d)では, グラフを真横から見た図が表示されています.

続いて, 回転角1を10度に固定して, 回転角2を0度, 30度, 60度, 90度とした 場合のグラフをプロットしてみましょう.

図 8.5: 回転角1の指定
\includegraphics[scale=1]{EPS/gnuplot-3d-00-00.eps}
(a)回転角1=0, 回転角2=0
\includegraphics[scale=1]{EPS/gnuplot-3d-30-00.eps}
(b)回転角1=30, 回転角2=0
\includegraphics[scale=1]{EPS/gnuplot-3d-60-00.eps}
(c)回転角1=60, 回転角2=0
\includegraphics[scale=1]{EPS/gnuplot-3d-90-00.eps}
(d)回転角1=90, 回転角2=0
図 8.6: 回転角2の指定
\includegraphics[scale=1]{EPS/gnuplot-3d-10-00.eps}
(a)回転角1=10, 回転角2=0
\includegraphics[scale=1]{EPS/gnuplot-3d-10-30.eps}
(b)回転角1=10, 回転角2=30
\includegraphics[scale=1]{EPS/gnuplot-3d-10-60.eps}
(c)回転角1=10, 回転角2=60
\includegraphics[scale=1]{EPS/gnuplot-3d-10-90.eps}
(d)回転角1=10, 回転角2=90


next up previous contents
: 水平面(座標が書かれる面)の位置の変更 : 直交座標系を用いた3次元グラフの描画 : 隠れ面の表示の切り換え 目次
Shigeru HANBA 平成17年7月16日