ヨーヨーの実験

ヨーヨーといっても、コマのように回転するタイプではありません。
昔、縁日で良くやっていた「ヨーヨー釣り」のヨーヨーです。ゴム風船に水を入れて、ゴム紐を結んだ・・・あれです。
あのヨーヨーの動きをJavaScriptで再現してみました。
マウスポインタを手に見立てて、マウスを動かしてみてください。どうですか・・・

ここでは、ヨーヨーの動きを、できるだけ物理的に忠実に再現するようにプログラムしてあります。
ヨーヨーの質量、それに働く重力、ゴム紐のスプリング定数、空気との摩擦などを計算してあります。
JavaScriptは動作が遅いので、少々誤魔化しているところもありますが・・・

暇ができたら、マウスカーソルを手の画像に入れ替えて(IE6なら可能)、ヨーヨーが手にぶつかったら反発するように改良する予定です。
JavaScriptでは計算速度が遅くて、手の厚みの中をヨーヨーが通り抜けてしまうようなことが起きるかも知れません。
(実験してみました。[2003/5/30] 結果は手をすり抜ける割合が高く、失敗!!)
演算をもっと軽くなるように工夫しなければ・・・。


おまけです。

無重力で、しかも摩擦の無い宇宙のようなところでは、このヨーヨーはどんな動きをするのでしょう。
下の 無重力 ボタンを押して確かめてください。
人工衛星のようにマウスポインタの周りをいつまでも回転していますね。
真円軌道、楕円軌道、往復運動、・・・思いのままです。

 

あまり振り回して、ウィンドウの外に出てしまった場合は、 重力復元 ボタンを押して重力と摩擦を復元してください。
しばらく待つとウィンドウ内に戻ってきます。
JavaScriptの演算はフローティング演算です。 オーバーフローになるまで、天文学的数値でヨーヨーの演算は可能なのです。


おまけの、おまけです。
床や天井、左右の壁を作りました。 下の 壁あり ボタンを押してください。
反発の具合も設定できます。0〜1の範囲で数値を入力してから 壁あり ボタンを押してください。
(1以上だとどんなことに・・・)

反発係数: