向量V是通过碰撞检测时计算出的圆心C距离AABB最近位置P的距离,由P-C得到。
https://bbs.guaik.org/topic/104/碰撞检测算法-圆-aabb


图中画出了左右方向的碰撞示意,还有上下碰撞没画出来,如果左上角顶点为(0, 0),右下角坐标为800, 600,则当圆在AABB上方的时候V的方向向量为(0,1),因为P点的Y坐标肯定大于圆心Y坐标。同理,当圆在AABB下方的时候方向向量为(0, -1)因为P点的Y坐标小于圆心Y坐标。
定义方向向量:UP(0, 1) RIGHT(1, 0) DOWN(0, -1) LEFT(-1, 0)
当球碰撞AABB上边的时候实际计算出的碰撞方向:
(0, 1) · (0, 1) = 1 // 对应的是UP

当球碰撞AABB下边的时候实际计算出的碰撞方向:
(0, -1) · (0, -1) = 1 // 对应的是DOWN

总结:
撞击左边:V(1, 0),方向RIGHT
撞击右边:V(-1, 0),方向LEFT
撞击上边:V(0, 1),方向UP
撞击下边:V(0, -1),方向DOWN


0_1564583835395_WechatIMG161.jpeg