課題
サイコロを転がすアニメーションを行うプログラムを作成して下さい.
どのように転がして止めるかは自由です.
できればうまく転がっているように見えるように工夫してみて下さい.
課題を進めるためのヒント
課題を行うにあたって,次のテンプレートファイルをダウンロードして利用して下さい. サンプルプログラムも参考にしてください. テンプレートではサイコロを描画できるようにしてあります. またキーを使って,サイコロの周囲でカメラを動かすことができるようになっています. これをもとにして,サイコロを転がすアニメーションを行うようにしてください.
以下に課題のプログラムを作成するためのヒントを挙げます.
- サイコロを回転させる方法
サンプルプログラムでは原点に配置された色付けされた立方体を視点をさまざまに変えて見ることができるようになっています.視点を連続してスムーズに変えていくと,画面では,あたかも立方体が回転しているかのように見えます.サイコロを「回転させる」のにも同様の手法が使えます.
なおテンプレート(dice_template.rb)で視点を決めているのはset_camera(theta,phi,psi,dist)というメソッドです. 原点中心の半径distの球面上の点(経度theta,緯度phi)から原点をとらえるようにしています.また視線を軸としてpsiだけカメラを回転させるようにしています. なおtheta,phi,psiの単位は度(degree)です.弧度(radian)ではありませんので注意して下さい.
- プログラムにランダム性を与える方法
サイコロの転がり方にランダム性を与えるには,rand()を使います. rand(n)は,nが正の整数のとき0〜n-1のいずれかの整数をランダムに返します.