第9回:グラフィックス

今週は,関数の復習を兼ねて,コンピュータで絵を描く方法を学ぶ.


第8回演習:解答例


グラフィック入門編

まず,道具箱をダウンロードしよう.

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

これは,グラフィックスの基本的な関数を集めたプログラムで,使える命令は下記の通りである. これらの関数を呼び出して,画面に絵を描いてみよう.


画面に絵を描画する場合,まず,座標系に注意しよう.
X座標は左から右へ増加,Y座標は上から下へ増加する.
つまり,普段我々が使っている直交座標系と上下逆になっている.

また,原点は左上,座標値は整数である.
これらの特徴は,コンピュータのディスプレイの仕組みに依存する.



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


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

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

    line(0,20, 40,0, 5);              /*  線を引く  */
    box(400,400, 560,479, 2);      /*  四角を書く  */
    circle(256,256, 100, 3);       /*  円を描く  */

    gend();     /* 終了処理.  */
}
絵が描画されたウインドウを閉じるには,ウインドウ右上の閉じるボタン「×」を押す. また,コマンドプロンプトでの処理が終了しない場合には,Ctrl+C(コントロールキーを押しながら,Cを押す.)によりプログラムを終了させることができる.

【演習課題】

(1)y = x2 および y = 1/x のグラフを表示するプログラムを作成してみよう.

(2)y = sin(x) および y = cos(x) のグラフを表示するプログラムを作成してみよう.

(3)前々回に作成した,sin, cos の値を計算して保存するプログラムの結果をファイルから読み込んで,y = sin(x),y = cos(x),のグラフを表示するプログラムを作成してみよう.

(4)16×16の2次元配列に配色のデータを書いてあります.配列をファイルから読み込み,グラフィックスを用いて画面に表示するプログラムを作成してみよう.どんな図柄が現れるかな??
配列は、次のファイルを(右クリック-->[対象をファイルに保存])で作成したプログラムと同じフォルダに入れること.
   [color_data.txt]

コンピュータの画面の座標は,一般の感覚とは上下逆であることに注意しよう.

授業終了時までのプログラムと完成した提出用プログラムをoh-meijiシステムを使って提出すること.
授業終了時に送るのは出席の確認用であり,完成した課題は提出用の回に送ること.
(提出期限を厳守し,提出用の回に提出しないと採点を行わない)


また提出の行い方については,以下のページを参照してください.
課題の提出方法