文責:遠藤理平
公開日:2017年04月04日
最終更新日:2017年04月04日
本項物理シミュレーション環境構築用HTML5フレームワーク「physics.js」を用いて物理シミュレーションを行うための手順をチュートリアル形式で紹介する記事です。 最新版「physics.js」(リビジョン14、2017年03月26日現在)をここからダウンロードしてください。以下はチュートリアルの目次です。
「万有引力によるポテンシャルエネルギーの3次元表示モード〜ポテンシャルエネルギーの可視化方法〜」では、楕円軌道運動を行わせるための万有引力相互作用の設定方法を解説しました。万有引力による運動は楕円軌道の他に双曲線軌道があり、楕円軌道の特殊な場合として円軌道が存在します。本項ではこの円軌道運動を行うための初期条件とその設定方法を解説します。
円軌道運動とは、その名の通り運動の軌跡が円となる運動です。 中心力(引力)の方向と速度ベクトルが直交していて、速度が次の式で与えられる大きさの場合に、その後の運動は円軌道運動となります。
rは円軌道中心からの距離、Gは万有引力定数、Mは相手の質量です。実際の運動は次の図のとおりです。軌道中心からの距離が小さいほど、円運動するために必要な速度が大きくなります。
//仮想物理実験室オブジェクトの生成
PHYSICS.physLab = new PHYSICS.PhysLab({
(省略)
//表示モードの指定
displayMode : PHYSICS.Potential3DMode,
(省略)
})
////////////////////////////////////////////////////////////////////
//相互作用の準備
////////////////////////////////////////////////////////////////////
for( var i=1; i<colors.length; i++ ){
//半径
var r = 3*i;
//初速度
var v = Math.sqrt( 0.01 * 10000 / r );
//位置と速度
PHYSICS.physLab.balls[ i ].position.set( r, 0, 0 );
PHYSICS.physLab.balls[ i ].velocity.set( 0, v, 0 );
PHYSICS.physLab.balls[ i ].mass = 1;
//万有引力相互作用の定義
PHYSICS.physLab.setInteraction(
PHYSICS.physLab.balls[ 0 ],
PHYSICS.physLab.balls[ i ],
PHYSICS.UniversalGravitation,
{
G : 0.01, //万有引力定数
}
);
}