HOME > natural science Laboratory > コンピュータ・シミュレーション講座 > 仮想物理実験室

VisualC++ と OpenGL を利用した仮想物理実験室
【0.1日目】グラフ作成ソフト gnuplot のインストールと使い方

「gnuplot」(読み方:グニュプロット)は、関数や数値データをプロット(描画)するためのグラフ作成用です。フリーソフトで、現在は様々なOSで利用することができます。 本講座では、シミュレーションの結果を数値データとして保存して、 様々な物理量同士の関係をグラフで可視化するのにこのソフトを利用します。 また厳密解の判っている系で、シミュレーション結果と厳密解との差を比較することで、 計算のアルゴリズムの精度を確かめることもできます。

ソフトのインストールと設定

本家ホームページ(gnuplot homepage)の上部にある「Download」をクリックしてページ移動後、上段の「Primary download site on SourceForge」をクリックします。 最新安定バージョンをの内、「win」とついているものを選択します(2009.12.30日現在:gp426win32.zip)。zipファイルをダウンロード後、解凍します。解凍したフォルダの中にある「gnuplot」フォルダをCドライブの直下(C:gnuplot)に移動するだけでインストール完了です(本来、フォルダは任意の場所に置くことができます)。アンインストールの際は、該当フォルダを削除するだけです。

「C:\gnuplot\bin」に移動すると下の図のフォルダが開きます。

上記フォルダの「gnuplot.exe」がソフトウェアの実行ファイルです。このファイルをダブルクリックすることで、ソフトウェアを起動することができます(下図)。

ソフトウェアが起動しましたが、デフォルトでは表示のフォントサイズが小さすぎるので、設定を変更します。

設定の変更方法

1.ソフトウェア上にマウスポインタを置きます。
2.右クリックし、「Choose Font...」をクリックします。 3.下図の設定画面が表示されます。

4.上図のように、お好みの「フォント名」「スタイル」「サイズ」を選択し、「OK」ボタンを押します。
5.(重要)設定した内容を保存するために、 もう一度ソフトウェア上で右クリック後「Update ~」をクリックします。(この作業をしないと、ソフトウェアの記号毎に同じ設定を行なう必要があります。)

gnuplot 使い方

関数の描画

上図は、入力待ちの状態です。コンソールにコマンド(命令文)を記述することでグラフを描画します。 簡単な関数のプロットを行なうために、次のコマンドを入力します。

plot sin(x)

高校2年生で学習する三角関数sin(x)のプロットができました。
四則演算:和「+」差「-」積「*」商「/」
指数「**」(例:x**2)
自然対数「log」(例:log(x))
三角関数:正弦「sin」(例:sin(x))余弦「cos」(例:cos(x))正接「tan」(例:tan(x))
など。

次に3次元プロットについてです。

splot sin(x)*sin(y)

プロット図は、マウスドラックで角度や向きを変更することができます。 しかし、上図は線が込み入っていて判りにくいので、「背面処理」を行ないます。 次の命令文を入力してください。

set hidden3d
replot

今度はポリゴンのようになりました。 もっと滑らかにプロットするために、描画する細かさを次のコマンドで指定します。

set isosample 50
replot

「isosample」のデフォルト値は「10」で、大きな数値を指定することで細かくプロットすることができます。次にプロット図を画像データとして保存します。次のコマンドを入力します。

set terminal gif
set output 'test.gif'
replot
exit

「C:\gnuplot\bin」に中に、ファイル名「test.gif」のGIFファイルが生成されます。 画像ファイル形式は、gif 以外にもあります。今後必要に応じて解説します。

テンプレートの利用

同じ作業を繰り返す場合、一連のコマンド入力を繰り返すのは非常に非効率的です。 そのような場合にgnuplotでは、一連の作業をテンプレートとしてファイルに保存し、 テンプレートファイルを読み込むことで実行させることができます。

ファイル名:test.plt

マウスポインタをデスクトップ上で右クリックし、「新規作成」→「テキスト ドキュメント」でテキストファイルを作成します。ファイル名を「test.plt」とし、「メモ帳」などのテキストエディタで開いた後、次の内容をコピー&ペーストします。ファイルを「C:\gnuplot\bin」に移動します。

# 3次元プロット + gif 保存
set hidden3d
set isosample 50
splot sin(x)*sin(y)
set terminal gif
set output 'test.gif'
replot

テンプレートの読み込み

load "test.plt"
exit

以上で「C:\gnuplot\bin」に「test.gif」が出力できます。

カラーマップ描画

カラーマップとは、3次元の情報を x,y 軸の2次元+色で表現する描画方法です。 前と同様にテンプレートを作成し、テンプレートを読み込むことで実行します。

ファイル名:test2.plt

set pm3d map
set isosample 300
set hidden3d
set cbrange[-1:1]
set palette defined (-1 "blue", 0 "white", 1 "red")
splot sin(x)*cos(y) with pm3d
set terminal gif
set output 'test2.gif'
replot

数値データのプロット

準備中

VisualC++ と OpenGL を利用した仮想物理実験室

第0章 仮想物理実験室の構築

第1章 様々な運動

第2章 ニュートンの運動方程式

第3章 剛体の運動(エネルギー保存則と運動量保存則)

付録

  • 【A-1】参考文献
    ・(A-1-1)OpenGL について
    ・(A-1-2)VisualC++ について
    ・(A-1-3)物理シミュレーション
    ・(A-1-4)数値計算

未分類

力学

量子力学

波動論

【目次】 (VisualC++ を使った OpenGL 入門)

未分類




▲このページのトップNPO法人 natural science トップ

関連記事

コンピュータ・シミュレーション講座 授業日誌







仮想物理実験室







▲このページのトップNPO法人 natural science トップ




Warning: mysqli_connect(): (28000/1045): Access denied for user 'xsvx1015071_ri'@'sv102.xserver.jp' (using password: YES) in /home/xsvx1015071/include/natural-science/include_counter-d.php on line 8
MySQL DBとの接続に失敗しました