ボールプログラムのバリエーション 1999/02/28(初版)
衝突プログラムの幾つかのバリエーションを考えます。 このモデルでは、ボールのエネルギーの和は保存されます。つまり、初期化の時 にボール全体のエネルギーは決まっています。 衝突では、2つのボールの質量や相対的な速度によって、エネルギーを相手か らもらったり、与えたりしますが、2つのエネルギーの和は一定です。相手から エネルギーをもらったら、相手は同じ大きさのエネルギーを失います。 この様子を表現するプログラムを書きます。Ballクラスにボールのエネルギー を計算するコードを加えます。 class Ball{ public: // 前のと同じもの // ......... double getenergy() const { return m * v * v /2.0;}// エネルギーを計算 private: // 前のと同じもの // ......... }; そして、main() 関数でグラフィックス画面を2つに分けてボールのシミュレー ションと同時に個々のボールのエネルギーの時間変化をプロットします。
ソース・ファイルはこちらです。 BALL01.CPP (11KB) または、HTMLファイルで見る場合ははこちら 実行ファイルとソース・ファイルのダウンロードはこちらです。
ボールの衝突シミュレーション(2)
実行ファイルとソース・ファイル Windows 95/ 98上で動作します。 |
ball01_1.lzh (54KB) |
* このソフトウェアは、SYMANTEC. NORTON AntiVirus 5.0 でウィルス検査を 行っています。 * ファイルは吉崎栄泰氏による LHA (Copyright(c)1988-92 H.Yoshizaki)を 使って圧縮しています。
Copyright(c) 1999 Yamada,K