[BlueLeaf1336]> PROGRAM> Natural Born Junk>

物理シミュレーション-001

historyTOP

2003/08/13:着手

referenceTOP

ゲーム開発のための物理シミュレーション入門(以下テキストと呼称する)

overviewTOP

以前にくじけた物理シミュレーションへの道を4410円のテキストを得てリベンジです。ゆるりと進みます。

付録A:ベクトル演算TOP

iVector.zip(1,427bytes)

全ての基本です。テキストではウォーミングアップと名乗った直後にいきなり使用しています。
とりあえず付録B:行列演算、付録C:4元数の演算を先に片付けてから本編に入る予定です。
ここでいう本編は、このサイト上での詳細な説明を意味しません。 テキストの「本編」を参考にした役に立たない記述が増えることを意味しています。

付録B:行列演算TOP

iMatrix.zip(1,772bytes)

iVector.pasを使用しています。入力ミスがあるほうに戦車A。 テキストのほかの箇所には、まだ一切目もくれていません。 ベクトル演算でもそうですが、演算子のオーバーロードしてやがるんです。 そんなのpascalには無いって。なのでメソッドとしてやるしかない。 全ての基本ともいえるクラスに関する処理に、演算子レベルの読み替えがあるのが恐ろしいです。

付録C:四元数の演算TOP

iQuat.zip(2,261bytes)

これは意味不明。

でもこの付録たち3つに共通して言えるのは、演算子のオーバーロードをメソッドでやり過ごしたことによる弊害が出そうであることです。
3つともクラスですから、たとえば加算したり減算したりするときの返却値をCreateしているけども、これってどうなん?という点があります。
たとえば100回の足し算を行えば、100回のCreateが行われるということです。で、問題は、どのタイミングでFreeするのか?です。
作業用の関数内ならば、作業用の変数に掘り込んで、関数の最後でFreeすればよさそうですが、いりくんだ処理の途中で加算しなければ ならなくなったときどうするか?Freeするタイミングがあるのか?ほったらかしか?というわけです。

EOFTOP