第四週 3次元グラフィックス
計算機序論2, 
www.kameda-lab.org 
2004/10/24
実習にあたって
    3次元の立体を操作するには, 3次元の座標変換が必要である. 
    また, それを表示するには, 2次元平面上へ投影する必要がある. 
    3次元グラフィックス変換と射影変換をマスターしよう.
    
      - 3次元空間中に定義した多面体(何でも良い)のワイアフレームを, 
      順次グラフィックス変換し, それを透視投影変換して画面上に表示する
      アニメーションを作成せよ.
    - 図形のためのデータ構造は前回の演習で用いたものを使おう.
    各線分はLINE構造体で,線分の集まりはFIGURE構造体で扱う.
    今回からは,実際に3次元のデータを扱うため,
    今まで,"仮の値"を埋めていた部分にも,
    しっかりと考えて値を与える必要がある.
    - 前回まで用いていた幾何変換のための関数群は
    2次元グラフィックスのためのものであり,
    3次元グラフィックスのために大幅に変える必要がある.
    ただし,基本的な考え方は良く似ているので,
    3x3行列を4x4行列に直したり,
    今まで1つだったものを3つ用意する等の
    機械的な操作で対応できる部分も多い.
    - 3次元グラフィックスで初めて現れる「透視変換」については,
    新しく関数を用意する必要がある.
サンプルプログラム
    
 
ヒント
    
      - 
	perspective_projection()を完成させれば,(正しい動作ではないが),
	とりあえず動くはずである.それをまず確かめよう.
      
- 
	次に,X軸回りの "ひねり" を入れてみよう.simple_rotation_x()の
	不足部分を埋め,my_Animation()のコメントアウトされている部分を
	有効に戻すことによって,できるはずである.
      
- 
	次に,自分の考えた図形に置き換えてみよう.
	同じ動きをするだろうか?
      
- 
	その他の動きができるように,色々な変換行列を作る関数を入れよう.
	これで,面白い動きが作れるはずである.
      
さらに先へ
    ボーナス課題: 以下のどれかを取り入れると,格段に面白くなるはずである.
    
      - 図形の形を時間的に変化させ,成長したり壊れたりする物体を
      表現してみよう.[難易度★]
- 複数の図形を用意し,合体や分裂をさせてみよう.[難易度★★]
- ナレーション(文字)を入れてみよう.[難易度★]
Yoshinari Kameda: 2004/09/17-
Yuichi Nakamura: Tue Aug 12 00:41:10 JST 2003