跳ね返り運動と反発係数
- 2023/10/30
- 22:35
前回はエネルギーを保存して永久的に跳ね続ける運動のアニメーションを作りましたが、実際の跳ね返り運動はいずれ停止します
それは空気抵抗や衝突などの影響でエネルギーを失い運動のためのエネルギーがなくなるからです
今回は衝突の際のエネルギーの変化を運動に反映させるアニメーションを作成したいと思います
運動している物体がある物体に衝突した際に反発力が発生して運動に変化が起こります
この反発の前後の速度の大きさの比を反発係数といいます
e(反発係数) = 衝突後の速度の大きさ/衝突前の速度の大きさ
反発係数は速度の大きさそのもので決まりますので、衝突後跳ね返って速度がマイナスになっても反発係数はマイナスにはなりません
逆に反発係数を適用する運動を記述するのなら、反発係数は速度の大きさのみに関係しますので速度の向きを取り入れた記述が必要になります
跳ね返り運動は衝突後に速度がマイナスになりますので、Canvasの鉛直方向のアニメーションでの記述の例として
vy´(鉛直方向の衝突後の速度の大きさ) = -e*vy(鉛直方向の衝突前の速度の大きさ)
このように表せます
このスクリプトは反発係数を0.95にした跳ね返り運動のアニメーションです
次第に跳ね返りが小さくなります
今回は鉛直方向の運動のアニメーションでしたが、水平方向の跳ね返り運動にも反発係数が用いることができます
鉛直方向と水平方向の速度を合わせて放物線の運動を記述することもできます
それは空気抵抗や衝突などの影響でエネルギーを失い運動のためのエネルギーがなくなるからです
今回は衝突の際のエネルギーの変化を運動に反映させるアニメーションを作成したいと思います
反発係数と運動の変化
運動している物体がある物体に衝突した際に反発力が発生して運動に変化が起こります
この反発の前後の速度の大きさの比を反発係数といいます
e(反発係数) = 衝突後の速度の大きさ/衝突前の速度の大きさ
反発係数は速度の大きさそのもので決まりますので、衝突後跳ね返って速度がマイナスになっても反発係数はマイナスにはなりません
逆に反発係数を適用する運動を記述するのなら、反発係数は速度の大きさのみに関係しますので速度の向きを取り入れた記述が必要になります
跳ね返り運動は衝突後に速度がマイナスになりますので、Canvasの鉛直方向のアニメーションでの記述の例として
vy´(鉛直方向の衝突後の速度の大きさ) = -e*vy(鉛直方向の衝突前の速度の大きさ)
このように表せます
このスクリプトは反発係数を0.95にした跳ね返り運動のアニメーションです
次第に跳ね返りが小さくなります
今回は鉛直方向の運動のアニメーションでしたが、水平方向の跳ね返り運動にも反発係数が用いることができます
鉛直方向と水平方向の速度を合わせて放物線の運動を記述することもできます
スポンサーサイト