第4回 課題

コンピュータグラフィックス基礎 第 4 回 課題
課題の目標
・C++の初歩的な機能について理解する
・GLUT を用いた対話的なアプリケーションを作成できるようになる
課題の内容
(1)
サンプルコード vector3d_example.cpp で提供されている Vector3d クラスに対して、減算
を表す演算子(-)の処理と、減算代入を表す演算子(-=)の処理を追加しなさい。
また、𝑎𝑎
⃗
= (2, 3, 4), 𝑏𝑏�⃗ = (3, 5, −2), 𝑐𝑐⃗ = (2, −1, 1)
のときに、次のベクトル計算を行う
処理を main 関数に記述し、その結果を出力しなさい。×は外積を、
・は内積を表すものとする。
(a) 𝑎𝑎⃗ − 𝑏𝑏�⃗
(b)
3𝑎𝑎⃗ − 2𝑏𝑏�⃗
(d) 𝑎𝑎⃗ × 𝑏𝑏�⃗ の単位ベクトル
(2)
(c) 𝑎𝑎⃗・𝑏𝑏�⃗
(e) (𝑎𝑎⃗ + 2𝑏𝑏�⃗) × 𝑐𝑐⃗
サンプルプログラムコード kadai04_pick_sphere.cpp を実行すると、下図のように 3 つの
球体が表示される。
★記号で示した箇所を埋めて、プログラムを完成させると、下図のようにマウスクリックで選
択した球体の ID と、クリックした位置の座標値が画面に描画される。必要なコードを追加して
プログラムを完成させなさい。
(発展課題:オプション)
課題 3 で学習した内容を活用し、球体が空間を動き回ったり、視点の位置がキーボードで変わるよう
にし、球体をクリックできた場合に得点が加算されるようなゲームアプリケーションを作りなさい。
提出するレポートに含めるもの
上記の課題のプログラムコードと、実行結果のウィンドウをキャプチャした図。課題(1),(2)のプロ
グラムコードについては、自分で作成した部分と、元からある部分が区別できるように示すこと。
発展課題で動きのあるものは、動いている様子が分かるように、複数のキャプチャ画像を含めること。
mp4 やアニメーション GIF などの動画ファイルを作成できる場合は、動画を含めること。