EGGXチュートリアル 1

グラフィック・ライブラリがなぜ必要か

グラフィックスはコンピュータのハードウェアやOS等に強く依存するので、C言語などの汎用プログラミング言語が標準でグラフィックスの機能を用意することはできない。実際、UNIX系のOSの多く(LINUXやFreeBSDなどのフリーOS、True64やAIXなどの商用OS)がX-Windowと呼ばれるウィンドウ・システムを採用しているのに対し、MS-WindowsやMac OSは独自のウィンドウ・システムを持ち、グラフィックスに関しては互換性がない。たとえば、Windows用のVisual C++やVisual BASICで作ったグラフィック・プログラムは他のOSでは動かない。 そのため、グラフィックスを操作する機能だけをまとめた"部品集"がそれぞれのシステムに用意されている。それらを総称してグラフィック・ライブラリとよぶ

計算機シミュレーションの過程をLINUXのコンピュータ画面上にグラフィカルに表示するには、X-Windowシステムに対応したグラフィック・ライブラリを用いたプログラムを書かなくてはならない。豊富な機能を持つグラフィック・ライブラリがいくつも開発されているが、残念ながら初心者が使うには難解すぎるものが多い。

ここでは日常の用途に対して必要充分な機能を簡単に実現できるグラフィックライブラリとして、愛知教育大の山内千里さんが作成されたEGGXを採用する。 同程度に簡単に使えるものとしてはドイツで開発されたSGL(simple graphic library)があったのだが、どうやら開発が止まったままらしく、公式ホームページも事実上行方不明のようだ。また、GNUのlibplotというライブラリもあるが、EGGXの簡単さは群を抜いていると思う。 EGGXのホームページは http://phe.phyas.aichi-edu.ac.jp/~cyamauch/eggx_procall/ にあり、ソースコードやサンプル・プログラム、マニュアル等を含めた完全な セットをダウンロードすることができる (ただし、コンパイルしなくてはならないので、少々敷居は高いかもしれない)。

サイバーメディアセンターの情報教育システムにはEGGXがあらかじめ用意してあるので、すぐに使える。 授業に最低限必要な知識は今読んでいるこのチュートリアルで説明するが、命令の詳細やその他の機能などについてはマニュアルを参照。 ただし、マニュアルは古い版のもので、これから使うものとは少々違いがある。 具体的には、すぐ下で述べるヘッダファイルの名前が eggx.h ではなく eggxlib.h であることと、すべての関数名には接頭辞 eggx_ をつけることの二点である(正確に言うと、マニュアル通りの使い方でも問題なく動くのだが、妙なエラーを避けるために、この授業では接頭辞 eggx_ をつける使い方のほうを推奨する)

使い方

プログラムのはじめにはeggxlib.hというヘッダファイルを読み込む指定を書く。

#include<eggxlib.h>

プログラムのコンパイルにはeggというコマンドを使用する。 プログラム名がca.cだとすると

egg ca.c -o ca
でコンパイルが行なわれ、ca という実行ファイルができる。

実は egg コマンドの中身は gcc にいろいろな指定を加えたものなので、gcc をじかに使ってコンパイルすることもできる。プログラム名がca.cなら
gcc -L/usr/X11R6/lib -O -o ca ca.c -leggx -lX11 -lm
などとする。-L/usr/X11R6/libはX-windowのライブラリが置いてあるディレクトリを指定している。-leggxがeggxライブラリを使うための指定、-lX11がX-windowライブラリの指定、-lmは数学関数ライブラリの指定である。この三つのライブラリ指定はプログラム名より後ろに書く。


次へ