はねかえり係数とは、衝突の前後での相対速度の大きさの比である。反発係数ともいい、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
どうしてもコンパイルエラーが起きる!と言う場合、どこかで全角スペースキーが入力されていないか、文法にミス(最も多くあるのが"かぎかっこ"のつけ忘れ、セミコロン(;)の入力忘れ、領域外に認識できない文字コードが入力されている、などが挙げられる)がないか、を解答と合わせて比較していけばいい。