スタートページ> Javascript> CANVAS> 物理等
中心(0,0), 辺の長さ2の正方形のビリヤード台があります。(x0,y0) にある自分の青球を突いて、(xg,yg) にある相手の赤球に当てるには、どの角度に打てばよいかという問題です。
直接当てるのなら簡単ですが、辺に2回反射させてから当てる、全ての辺で反射させてから当てるのどの条件をつけることにより、次第に難しい問題にすることができます。
ここで、角度とは水平右方向を0とする傾き( y = ax + b での a )とし、最初は右側に打つことにします。辺では入射角と反射角は等しい( a が -a になる)こととし、当たるとは、点(xg,yg)と直線の最短距離 r が 0.1 以下になることとします。
青球がポケットに入ったとき、青球が辺に10回当たったら終了します。