本日の内容
- はじめに
- C言語で簡単にグラフィックを扱うには…
- OpenGL (Open Graphics Library): OSに依存しないグラフィックライブラリ
- GLUT(OpenGL Utility Toolkit): OpenGLを簡単に利用するためのライブラリ
- 演習
- 演習3.1: OpenGLとGLUTを使った単純な図形描画
- 課題3.1: ちょっと複雑な図形描画
- 課題3.2: 自由作成
各演習・課題に取り組む手順
- まず自力でプログラムを書いてみる. 間違っていても構わない.教科書やWeb上のリファレンスを見ても構わない.
- ひととおり入力を終えたら,ビルドする前にソースをレポートに貼り付けておく.
- ビルドする.ビルドエラーをレポートに貼り付けておく.
- エラーを取り除き,正しく動作するプログラムを作成する.
- 自力で考えた限界のソースコードをレポートに貼り付けておく.
- 友人と相談した場合,誰と相談したか,また,相談した結果気がついた間違いをレポートに記述する.
- 完成版のソースコード,および,実行結果の画像をレポートに貼り付ける.
演習3.1
OpenGLとGLUTの準備(WindowsのVisual Studioで開発する場合)
- GLUTをダウンロードする
GLUTのリンク (glut_lib.zip) (manabaにも glut_lib.zip ファイルをおいておきます)
- glut.dll, glut32.dllを「あなたが作ったフォルダ\あなたが作ったプロジェクト名\debug」にコピーする。
debugフォルダがない場合は、Visual Studioで「あなたが作ったプロジェクト名のビルド」を実行すると、debugフォルダが追加される。
- それ以外のファイル(glut.h, glut32.lib, glut.lib)を、ソースコード(cファイル)と同じフォルダにコピーする。
MacのXcodeで開発する場合
以下の図は、WindowsのVisual Studioで開発する場合

OpenGLとGLUTを使ったプログラムの流れ

-以下のように設定する

-コード例

- Mac Xcodeを使用している場合:

図形の情報の書き方(自作関数を使わない場合)

図形の情報の書き方(自作関数を使う場合1)
自作の矩形描画関数drawRect()
書式: void drawRect(double pos[2], double size[2], double color[3])
引数:
double pos[2]: 開始座標(x, y)
double size[2]: x座標とy座標の移動距離(=矩形の大きさ)
double color[3]: 線の色(RGB、0~1)
戻り値:
なし
描画関数display()で矩形描画関数drawRect()を呼び出すコード例
図形の情報の書き方(自作関数を使う場合2)
円を描く考え方
自作の円・円弧描画関数drawCircle()
書式: void drawCircle(double pos_x, double pos_y, double radius, int startAngle, int endAngle)
引数:
pos_x, pos_y: 円の中心座標
radius: 半径 (円の大きさ)
startAngle: 開始角度(0~360度)
endAngle: 終了角度(0~360度)
戻り値:
なし
コード例
描画関数display()で円描画関数drawCircle()を呼び出すコード例
課題3.1
演習3.1を修正して、複数の三角形、矩形、円を描画せよ。できるだけ下記の出力結果と同じ描画にすること。なお,矩形と円は自作関数をループ文で呼び出して描画すること。
課題3.2
drawCircle関数とdrawRect関数を利用して,テーマ「果物」について自由に描画せよ.
(「果物」に限らず,drawCircleとdrawRectを用いれば何でもよい)
レポート
- 提出先・期限
- 担当教員の指示に従うこと.
- 内容
- Microsoft Wordを用いてレポートを作成すること.
下記について記述すること.
- 演習3.1 (最終ソースコード,実行結果)
- 課題3.1 (ビルド前のソース,最初のビルドで見つかったエラーの一覧,自力で考えた限界のソースコード,最終ソースコード,実行結果)
- 課題3.2 (ビルド前のソース,最初のビルドで見つかったエラーの一覧,自力で考えた限界のソースコード,最終ソースコード,実行結果)
- 結論 (今回の演習を通じて学んだことについて客観的かつ具体的に述べる.)
- 質問・相談 (質問した場合や誰かと相談した場合は,その内容、相手名、所要時間を書くこと.)
- 所感 (感想や意見などを自由に書いてよい.)
- 提出ファイル
- Wordファイルにソースコードやキャプチャした実行画面などを貼り付けてmanabaのレポートから提出すること.
- テンプレート等(Word)
- Word表紙 (回数やタイトルなどを適宜修正して使うこと.)