第10回:グラフィックス

今週は,コンピュータで絵を描くしくみを学ぼう。


グラフィック入門編

(mogla.zip)を右クリックして,ソースファイルを保存するフォルダと同じ場所に保存する。
(この時,「ファイルの種類」は「テキスト文書」ではなく「すべてのファイル」に変更する。)

これは,グラフィックスの基本的な関数を集めたライブラリ(OpenGL)を,borland C で使えるようにしたもので,ファイルをダブルクリックするとmogla という名前のフォルダが見つかる。このフォルダを,普段作業しているマイドキュメントなどに,コピーしよう。グラフィックスを利用してプログラムを組むときは,このフォルダの中で作業をする。プログラムで,使える命令は下記の通りである。 これらの関数を呼び出して,画面に絵を描いてみよう。


画面に絵を描画する場合,まず,座標系に注意しよう.
X座標は左から右へ増加,Y座標は下から上へ増加する.
原点は,新しくできるウインドウの中心となる.
座標値は整数である.
これらの特徴は,コンピュータのディスプレイの仕組みに依存する.


下記に絵を描くための関数の使い方を示す.座標の値はint型と書いてあるが,float型でもdouble型でも可.


グラフィックのサンプルプログラム


#include <stdio.h>
#include "mogla.f"       /* この行を忘れないこと */

void graphic(void)       /* この関数の中で描画する */
{
    double x1,x2,x3,y1,y2,y3;

    gl_clearbuffer();    /* おまじない */

    x1=-200.0;
    y1=0.0;
    x2=0.0;
    y2=200.0;
    x3=(x1+x2)/2.0;
    y3=(y1+y2)/2.0;

    line(x1,y1,x2,y2,10);
    line(0.0,0.0,x3,y3,12);
    line(0,0,320,0,5);

    box(-100,-100,100,100,2);

    circle(0,0,100,3);

    gl_flush();      /* おまじない */

}

void main()
{
    gl_int(640, 480);   /*  640*480ピクセルのウインドウを開く  */

    gl_displayfunc(graphic);    /* 描画関数の呼び出し */

    gl_loop();          /* 再描画処理  */
}

このプログラムは,先ほどのmoglaフォルダに,mogla.cとして保存されている。これをコンパイルするには,「cd mogla」と入力してmoglaフォルダ内に移動して,bccglというコマンドを用いて,

bccgl mogla.c

と入力する。実行すると,新しいウィンドウが開いて,グラフィックが描かれる。(画面が表示されるまで,時間がかかる場合があります。)絵が描画されたウインドウを閉じるには,ウインドウ右上の閉じるボタン「×」を押すか,ctrl キーと C を同時に押す。


【演習課題】

(1) いろいろな図形・色を描画して,座標,グラフィックコマンドを試す。

(2) y = x のグラフを表示するプログラムを作成する。

(3) y = x2 のグラフを表示するプログラムを作成する。ただし,できるだけ見やすい形になるよう,画面の座標と,描画する座標を変換する。たとえば,値1が,画面上では,100になるよう工夫しよう。

(4) (3)と同様に y = sin(x) および y = cos(x) のグラフを一周期分表示するプログラムを作成する。