初年次セミナー 第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回のレポート 以下のプログラムを作成し、メールで提出してください 宛先: 様々な図形を組み合わせて、自分のオリジナルの模様を 描くプログラム 図形の数、色、形は自由に設定してよい
© Copyright 2024 ExpyDoc