摩擦のシミュレーション

コンピュータ上で運動をシミュレーションする

コンピュータ上で、物体の運動をシミュレーションすることができます。

その際には、物理学の知識を厳密に適用しなくても、「それらしく」見せることができます。

実際のところ、コンピュータゲームでは、物理学を厳密に適用して動作を決めているわけではなく、「画面上でそれらしく見える」ことや、「ゲームを面白くする」こと、あるいは「少ない計算・速い計算で済むこと」が優先されています(※もちろん、物理学的に厳密なシミュレーションをしているものもあります)。

今回は、動いている物体に摩擦力が働いて、止まる様子をシミュレーションするプログラムを紹介します。

サンプルアプリの動作:摩擦のある運動のシミュレーション

このサンプルアプリでは、物体(緑色の正方形)が、画面左から右に移動していきます。摩擦力が働いて、徐々に減速し、最後は止まります。止まったら、開始した地点から停止した地点までの距離を、数値で表示します。

初速と摩擦係数に値を入力することができます。入力したら、「シミュレーション開始」ボタンをクリックします。

物理学に従うなら、運動方程式を解いていくことになりますが、このサンプルプログラムではもっと単純な仕組みで実現しています。

一定時間ごとに決まった量だけ減速していき、速度がゼロになったところで運動は停止。プログラムを終了します。

初速や摩擦係数を指定して、「それらしい」動作をしている様子を確認してみてください。

アプリとソースコードのインポート

以下のボタンをクリックすると、Monaca Educationにプロジェクトをインポートできます。

Monaca Educationにインポートする(要ログイン)

このプログラムは、JavaScriptのライブラリp5.jsを使って作成しました。p5.jsは、Processingというプログラミング言語・環境の特徴をJavaScriptに持ち込んだものです。今回の作例のように、プログラミングをして、アニメーションを作ることができます。