● グラフィック出力

計算結果の数値データを綺麗にグラフ化してくれるグラフ作成ソフトは 各種出回っているが、グラフだけでは計算対象である物理の姿は よく見えない。やはりグラフィックを描くプログラムの作り方を知って おく方が良いだろう。計算結果をグラフィックで可視化することで プログラムと物理に対する親しみがより一層深まるであろう。

しかしながら、C/C++言語には統一的なグラフィックの描き方の定義が無い。 なぜならC/C++言語は汎用な言語であり、あらゆる環境で同じ文法で プログラムが書かれなければならないのであるが、グラフィックのような 環境依存の激しい操作に統一的な文法は定められないからである。

このため、かつては各環境においてコンパイラ製作者などが独自規格の グラフィックライブラリを作成して提供していた。もちろん文法は それぞれ全く異なり、プログラムに移植性は無い。

こうした不便さを解決すべくソフトウェア業界の多くが提携して定めた グラフィックライブラリの標準規格に OpenGL がある。この規格に沿った グラフィックライブラリが企業、個人によりさまざまな環境向けに作成され 配布されている。その結果、OpenGL の文法で設計したプログラムは XWindows,iMac,MS-Windows98 などでもそのまま利用できるようになった。

本書ではXWindos System において標準である Xlib グラフィックライブラリ を用いて、グラフィックを描くことにする。 もちろん、この方法は他の環境(iMac,MS-Windows98など)では使えない。

XlibはXWindowのあらゆるグラフィックを実現するため、かなり複雑な描画も できるが、そのためXlibの関数には設定項目が多い。簡単なグラフィックを 描く目的にはXlibの関数をそのまま用いるのはやや大袈裟である。 そこで基本的な描画を簡単に行う道具として、 本書は nxgraph という名の小さなグラフィックライブラリを提供する。 nxgraphは複雑なXlibの関数の呼び出しを我々に代わって行ってくれる。 さらにnxgraphはグラフィックをファイルに書き出すこともできる。 これを論文に貼り付けて印刷することも簡単である。 nxgraphの文法をここで簡単に紹介するが、使い方は簡単なので以降に解説 する物理計算の実践例での使われ方を見ればすぐに明らかになるであろう。 より詳細な使用法の解説はファイルにまとめてある。

■ nxgraphの関数

nxgraphが提供する関数の一部の簡単な意味を紹介する。

コンパイルはかなり面倒で次の長い呪文を唱える。Windowに絵を描くだけの 場合。

gcc -o main main.cc -O2 -I/usr/X11R6/include -L/usr/X11R6/lib -lX11
EPS形式のファイルを同時に出力する場合。
gcc -o main main.cc -DNX_EPS Elib.o -O2 -I/usr/X11R6/include -L/usr/X11R6/lib -lX11
FIG形式のファイルを同時に出力する場合。
gcc -o main main.cc -DNX_FIG Flib.o -O2 -I/usr/X11R6/include -L/usr/X11R6/lib -lX11
ただし環境によって上記のpathが異なるので各自調整すること。

最後にこれらライブラリを併せて、データ加工の流れ図を紹介する。 このように計算機を多いに利用してほしい。


データ加工の流れ図



  • 次へ
  • 目次
    Copyright(C) by Naoki Watanabe. Oct 21st, 1995.
    渡辺尚貴 naoki@cms.phys.s.u-tokyo.ac.jp