canvas碰撞检测(光线投射法)原理

      两物体A、B, 该方法假设碰撞时物体A运动,物体B不动,如果满足A速度方向直线与B物体顶部水平直线交点落在物体边界之间并且物体A在B的下方,则认为物体A、B碰撞

      转化为数学模型为求两条直线的交点(x,y)有:

      y = k1 * x + b1; // @1
      y = k2 * x + b2; // @2
      x >= B.x && x <= B.x + B.width && y >= B.y && y <= B.y + B.height;

      联立方程1,2解得:

      x = (b2 - b1) / (k1 - k2);
      y = (k1 * b2 - k2 * b1) / (k1 - k2);

    使用场景

      只适用于物体从上方掉落的情况,如球是否完全掉入桶中