【第三週課題】 グラフィックス幾何操作の完成と表示
計算機序論2,
www.kameda-lab.org
2006/09/08
資料
先週と同様に、下のサンプルプログラムはそのままでは
コンパイルは通るものの、描画はされません。
適宜必要な部分を書き足して、描画できるようにしてください。
(ソース中にヒントがついています。)
以下は、参考までに色々なデータファイルから本授業向けに
フォーマット変換した3次元モデルスクリプトのファイル群です。
興味のある人は試してみましょう(応用課題)。
ここのファイルをもとに改良を加えても構いません。
これらのファイルは学外非公開です。
第三週課題
今週の授業で用いるサンプルプログラムは
残念ながら、そのままコンパイルしても何も表示されないが、
あと少し書き加えれば動くはずである。
今週の課題は、このサンプルプログラムを完成させることと、
それに関連する記述課題を行うことである。
今週のレポート課題として、以下の【必須】全項目について報告すること。
- 【必須】サンプルプログラム(week3-1)の完成
- 自分で作成したプログラム部分について、自分のコメントを付加すること。
(ソースコードは自分が作成した部分だけでよい。)
- どの関数がどの関数を呼び出しているか、全関数の呼び出し関係を図を用いて示せ。
関数一覧表を利用してよい。
- 【必須】幾何操作の記述
- 幾何操作のうち、回転は simple_rotation_x(), simple_rotation_y(), simple_rotation_z() で
行われる。本プログラムで用いる空間座標系に対して、これらの回転がどちら向きであるのか、
図示(ないし正確な記述)で示せ。
- パラメータ構造体を使った幾何操作は、create_transform_matrix()関数で行われる。
ここでは、パラメータ構造体を使って幾何変換を指定できるが、
1回で任意の操作ができるわけではない。
本関数の呼び出し1回で出来る幾何操作を行列を用いて説明し、
そこからどのような操作が1回で出来ないか、理由とともに述べよ。
- 【発展】様々なスクリプトを利用した実行
- 上記に用意した
3次元モデルスクリプトのファイルを読み込んで実行してみよう。
結果は実行の様子を挿入して示すこと。
- いちいちファイルを置き換えしなくても良いように、
ファイル名をコマンドラインから指定してできるようにしてみよう。
参考までに、役に立ちそうな例を挙げておく。
char filename[256] = "week3-fig_data.dat";
if (argc >= 2) {
strncpy(filename, argv[1], 256);
fprintf(stderr, "File = \"%s\"\n", filename);
}
Yoshinari Kameda