ボールプログラムのバリエーション 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