昨日の続き
ボールの速度は、プログラム上ではx方向とy方向に分けられている。
x方向の速度をv_x,y方向の速度をv_yとして、円筒の壁に衝突した際の
ボールの跳ね返りを考えてみる。
ボールの重心と円筒のなす角θは、昨日のとおり
θ = tan^(-1){(y-Y)/(x-X)}
である。
まず、x方向とy方向の速度成分を、円筒の壁との接触点の傾き方向と
壁に対して垂直方向の成分とに分解・合成します。
円筒の壁との接触点の傾き方向の成分は
B = -v_x * cosθ + v_y sinθ
壁に対して垂直方向の成分は
A = v_x sinθ + v_y cosθ
となり、円筒の壁の跳ね返り係数をeとすると
垂直方向の跳ね返り後の速度は eA となる。
更にx方向、y方向成分に変換すると
x方向成分は
eA cosθ + B sinθ
y方向成分は
eA sinθ - B cosθ
となる。
これでなんとかできそう。
ボールの速度は、プログラム上ではx方向とy方向に分けられている。
x方向の速度をv_x,y方向の速度をv_yとして、円筒の壁に衝突した際の
ボールの跳ね返りを考えてみる。
ボールの重心と円筒のなす角θは、昨日のとおり
θ = tan^(-1){(y-Y)/(x-X)}
である。
まず、x方向とy方向の速度成分を、円筒の壁との接触点の傾き方向と
壁に対して垂直方向の成分とに分解・合成します。
円筒の壁との接触点の傾き方向の成分は
B = -v_x * cosθ + v_y sinθ
壁に対して垂直方向の成分は
A = v_x sinθ + v_y cosθ
となり、円筒の壁の跳ね返り係数をeとすると
垂直方向の跳ね返り後の速度は eA となる。
更にx方向、y方向成分に変換すると
x方向成分は
eA cosθ + B sinθ
y方向成分は
eA sinθ - B cosθ
となる。
これでなんとかできそう。
※コメント投稿者のブログIDはブログ作成者のみに通知されます