演習課題D:計算機序論2(2010年度)

計算機序論2, 2010/11/17a

注意

必修課題は必ず提出して下さい。
発展課題は提出できなくても構いません(必修だけで演習100点になるように配点します)。

課題Dを全て正常にやりとげると、モーフィングをしないようなアニメーション指定だけで できているものについては、正常に表示ができるようになるはずです。


D1.(必修):移動行列・回転行列の生成

ベースプログラムの中で、 ModelView行列の生成に使われることになる移動行列・回転行列の生成が正しく行えるように、 ic2exp-geom.c を修正すること。
回転行列は3種類あるので注意。
必要な箇所はic2exp-geom.cの中でも

と記されている近辺である。
それぞれ、新たに書き加えた部分およびその前後で必要と思われる部分について、 必ずコメントの形で動作に関する解説を書き加えること。
これがない提出物は最低限のスコア(ないし類似コードが認められた場合はそれ以下)しか 得られないものと覚悟しておくこと。下記は書き方の一例である。
(この通りである必要はないが、採点しやすさを高めるために、コメントの先頭には できるだけ自分のイニシャルや名字などを入れておくことを勧める)

(提出に当たってのコメント文の書き方については課題C1と同様)

提出にあたって: 各課題については、学生同士で相談して進めてよい。
特にプログラム提出の課題の場合、提出するプログラムコードがどうしてもお互い(ないし教えた・教えられた側の両側で)似通ったものになる可能性がある。
これについて、当該コード部分のコメントに、誰と相談して(誰に教わって・誰に教えて)進めたかを明示している場合はコードが似ていることについて不問とする。
ただし、その記述がない場合は、単にコピーしただけとみなして相応に低い点数にすることがある。
独力で解いた場合でも、コメントによる解説は必ず示すこと。コメントのないコードもまた、相応に低い点数になる可能性がある。

提出物


D2.(必修):ModelView行列の合成

ベースプログラムic2exp-rendering_figure.c には、世界に対する物体の運動を表すModelView行列を合成する関数 ic2_AnimationMatrix() が用意されているが、内容は不完全である。
授業で解説した運動順になるように行列を合成できるよう、プログラムを完成させること。
関連する部分は

の辺りである。

提出物


D3.(必修):小問2題

以下のそれぞれについて、解答せよ。
解答時には、解答だけでなく、その理由を必ず記述して自分なりの解説を行うこと。
必要であればソースコードの一部を引用再掲すること。

提出物


D10.(発展):光源のLinked List内の正順化

ベースプログラムでは、 光源が読み込まれると、ファイル内の記述順と逆にlinked list内で並べられることになる。
これをアニメーション読み込みのときと同様に、正順でリストされるようにプログラムを改変せよ。
関連する部分は、 ic2exp-build_light.c の[Report-2102]近辺であろう。

提出にあたっての諸注意は、課題C1に同じ。

提出物


kameda[at]iit.tsukuba.ac.jp