スライド 1

初年次セミナー
第13回 2次元グラフィックス(1)
前回のレポート解答例

「氏名と番号」を入力したファイル(ここではdata3.txt)を
読み込んで、画面に表示するプログラム
前回のレポート解答例

関数 y = x2 のx, y の組を計算し、ファイルに書き出すプ
ログラム(x は –3 から 3 まで 0.1 間隔)
↑
生成されるファイルと
それをExcelでグラフ
にしたもの
実行準備


Mドライブの割り当てが済んでいることを確認し、Mドライ
ブ内の「FPS」フォルダに移動してください
今日作成するファイルの保存用に、「13」フォルダを作って
ください
C言語におけるグラフィックス処理




C言語で画面上にグラフィックスを表示する場合、処理系
や使用するアプリケーションによって様々な違いがある
Windows上でグラフィックスを表示するにはWindows API
を利用する方法や、専用のソフトウエアを利用する方法
などがあるが、いずれも作業が複雑になる
初年次セミナーではグラフィックス表示のために作成さ
れた「wingxa.h」というファイルを用いて、なるべく簡単に
グラフィックス処理を体験しよう
参考テキスト:「Windowsですぐにできる C言語グラフィッ
クス」、安居院猛、佐野元昭、関根詮明 共著、昭晃堂
wingxa.h の導入




「wingxa.h」は、参考テキストで使用されているグラフィックス処理の
ためのヘッダファイル
Windows上でグラフィックス処理をするためのオリジナルの関数がま
とめられている
デスクトップに「wingxa.h」を配信するので、届いたことを確認して
「13」フォルダにコピーすること
届かない場合は下記のホームページの「初年次セミナー」のリンク
から右クリックでダウンロードし、「13」フォルダへコピー
URL: http://ns1.shudo-u.ac.jp/~iyori/
ウインドウを作成してみよう
「wingxa.h」が「13」フォルダにあることを確認し、以下のようなプログ
ラムを書いてコンパイルし、実行してみよう
※ 実行後は、開いたウインドウ上で何かキーを押せば終了できる

コンパイル時に必要
おまじないと思って
書いておくこと
“”で囲むことに注意
ウインドウを作成する関数
ウインドウサイズの指定と原点の設定




ginit(1) はウインドウを作成する関数
ウインドウの大きさは gwinsize(横幅, 縦幅) で指定できる
ウインドウ内に図形を描画する際、座標を指定するために座標の「原
点」を gsetorg(x, y) で指定する(x, yはウインドウ左下端からの距離)
大きさ 600×400ピクセルで、左下端を原点とするウインドウを作成し
てみよう
直線を引いてみよう

直線を引く関数は
gline(始点のx座標, 始点のy座標, 終点のx座標, 終点のy座標);
である。先ほど作成したウインドウ上に直線を引いてみよう
←座標(10,10)から(590,390)へ
直線を引く
色の指定




デフォルトでは描画の色は白になっている
描画の色を指定するには
gcolor(r, g, b); (※r, g, bは0~255の整数)または
color16(0~15の整数); を用いる
gcolor関数で指定する値はRGB値で、それぞれ赤・緑・青の分量を示
す(gcolor(255,0,0);とすれば赤になる)
color16関数では事前によく使う16色が定義されており、0~15の整数
で指定する(数値と色の対応は以下の表の通り)
0
黒
1
暗青色
2
茶色
3
暗深紅色
4
暗緑色
5
暗青緑色
6
暗黄色
7
暗灰色
8
灰色
9
青色
10
赤色
11
深紅色
12
緑色
13
青緑色
14
黄色
15
白
色つきの直線を描いてみよう

描画の色を指定する場合は、「色の設定」→「描画」の順で指定する
gcolorで「赤」を指定し、(10,10)から
(590,390)まで直線を引く
color16で「黄色」を指定し、(10,390)から
(590,10)まで直線を引く
様々な図形を描画する

図形描画に使用できる関数は以下のようなものがある
関数名
機能
glinewidth(w)
描画の線の太さをwピクセルにする
gpnt(x, y)
座標(x, y)に1ドットの点を描く
gline(x1,y1,x2,y2)
座標(x1, y1)から(x2,y2)まで直線を引く
gtriangle(x1,y1,x2,y2,x3,y3)
座標(x1,y1)、(x2,y2)、(x3,y3)を頂点とする三角形の辺を描く
gtri(x1,y1,x2,y2,x3,y3)
座標(x1,y1)、(x2,y2)、(x3,y3)を頂点とする三角形を描く(中は塗りつぶし)
gtetragon(x1,y1,x2,y2,x3,y3,x4,y4)
座標(x1,y1)、(x2,y2)、(x3,y3)、(x4,y4)を頂点とする四角形の辺を描く
gtetra(x1,y1,x2,y2,x3,y3,x4,y4)
座標(x1,y1)、(x2,y2)、(x3,y3)、(x4,y4)を頂点とする四角形を描く(中は塗りつぶし)
grectangle(x1,y1,x2,y2)
座標(x1, y1)、(x2,y2)を対角点とする長方形の辺を描く
grect(x1,y1,x2,y2)
座標(x1, y1)、(x2,y2)を対角点とする長方形を描く(中は塗りつぶし)
gcircle(x,y,r)
座標(x, y)を中心とする半径rの円周を描く
gcirc(x,y,r)
座標(x, y)を中心とする半径rの円を描く(中は塗りつぶし)
gellipse(x,y,rx,ry)
座標(x, y)を中心とし、x方向の半径xr、y方向の半径yrの楕円の周を描く
gellip(x,y,rx,ry)
座標(x, y)を中心とし、x方向の半径xr、y方向の半径yrの楕円を描く(中は塗りつぶし)
図形を描いてみよう

図形描画の関数を使って、様々な図形を描いてみよう
練習:図形を描く

図形描画の関数および座標に注意して設定する
色を黄色に設定し、(50,50)、(20,200)
を対角点とする長方形を描く
色を赤に設定し、(200,200)を中心と
する半径100の円を描く
色を緑に設定し、(500,300)、(200,250)、
(300,100)を頂点とする三角形を描く
色を深紅色に設定し、(400,350)、
(550,300)、(450,100)、(350,50)
を頂点とする四角形を描く
第13回のレポート




以下のプログラムを作成し、メールで提出してください
宛先:
様々な図形を組み合わせて、自分のオリジナルの模様を
描くプログラム
図形の数、色、形は自由に設定してよい