はねかえり係数を使ったシミュレータ

はねかえり係数

はねかえり係数とは、衝突の前後での相対速度の大きさの比である。反発係数ともいい、eで表す。eの値は0〜1である。
また、eの値については0は非弾性衝突といい、1は完全弾性衝突という。

はねかえり係数
e = - (衝突後の相対速度 / 衝突前の相対速度)

となる。はねかえり係数を取り入れたシミュレータを製作する。ボールが壁に10回衝突すれば、プログラムは終了とする。また、質量は1として考え、省略していいものとする。速度成分vxは3、速度成分はyとする。eは0.5で設定し、確かめる。
参考例:ls2_22.exe

ウインドウのサイズは640×480
箱は始点X:40 Y40 終点X:400 Y:400の360×360のサイズである。

ヒント
今回は前回の項目と違って、斜めにボールが進行する。
そのため、当たり判定の条件を複雑にする必要性がある。
なお、
・ウインドウの原点は左上である
・下方向と右方向が正の方向である
という点に注意すること。


※当たり判定について
当たり判定は
 ボールが箱の領域外になった場合、であると同時に進行方向と
 逆ではない
という条件をする必要がある

 例)
 ( ( ボールの中心x - ボールの半径 ) < 箱のXの始点 )
 && ボールの進行方向と逆ではない場合(ボールの進行方向が正しい場合)

と言う条件式になる。
これと同様の条件式を今回4つ用意する必要性がある。
それも同時に考えること。

解答:ls2_22.cpp
どうしてもコンパイルエラーが起きる!と言う場合、どこかで全角スペースキーが入力されていないか、文法にミス(最も多くあるのが"かぎかっこ"のつけ忘れ、セミコロン(;)の入力忘れ、領域外に認識できない文字コードが入力されている、などが挙げられる)がないか、を解答と合わせて比較していけばいい。

トップへ戻る