9. EGGX による描画

EGGX についての詳細は作者である山内さんによるEGGX の情報ページ を参照して下さい。
ここでは EGGX を使って簡単な絵を描くのに必要な情報をまとめておきます。

9.1 基本的な描画サンプル

以下に非常に簡単な図形を描くサンプルプログラムを示します。

#include <eggx.h>
int main() {
  int win;
  win=gopen(400,400);  /* 描画ウィンドウを開く */
  winname(win, "sample 1"); /* 名前をつける */
  newpen(win, 1);  /* 描画する色を設定 */
       /* 色番号は 0:黒 1:白 2:赤 3:緑 4:青 5:シアン 6: マゼンタ 7:黄
          8:灰色(暗) 9:灰色 10:赤(暗) 11:緑(暗) 12:青(暗) 13:シアン(暗)
          14:マゼンタ(暗) 15:黄(暗) */
  fillrect(win,10,100,380,10);  /* (10,100)-(380,10) の四角形を描画 */

  /* 違う色で少しずつ異なる場所に長方形を描く */
  newpen(win, 2); fillrect(win,10,140,380,10);
  newpen(win, 3); fillrect(win,10,160,380,10);

  ggetch();  /* キー入力を待つ */
  gclose(win); /* 描画ウィンドウを閉じる */
  return 0;
}

先頭の #include 記述を忘れないように注意してください。

このプログラムを sample.c という名前で保存していたとして、これをコンパイルするためには egg コマンドを利用します。以下に sample という名前で実行ファイルを作り、それを実行する例と、その結果描かれた画像ウィンドウを示します。

  $ egg -o sample sample.c
  gcc -O2 -Wall /tmp/c.c -I/usr/local/include -L/usr/local/lib -I/usr/X11R6/includ
  e -L/usr/X11R6/lib -leggx -lX11 -lm
  $ ./sample

サンプルプログラム

サンプルプログラムの結果

プログラムに注目すると、はじめの gopen( ) 関数で描画ウィンドウを開き、そこに色、座標位置などを指定しながら絵を描いていっていることが読みとれると思います。おわりにある ggetch( ) 関数は何かキーを押すのを待っている関数です。gclose( ) 関数によって、gopen( ) 関数で開かれた描画ウィンドウが閉じられます。
つまりこのサンプルプログラムは何かキーを押すと終了するようになっています。
座標系は左下が原点 (0,0) で右上に向かって正方向に x, y 座標が伸びていきます。

座標軸


Yutaka Yasuda (yasuda@bakkers.gr.jp)