新算法如下。
1.投影圆心至直线
2.计算投影点是否在l1,l2之间,在的话用点到直线距离==r计算碰撞点,时间
3.如果投影点不在l1/l2之间,计算其与l1,l2距离。
取d=距离较小的一个,判断d和r大小。
4.如果d<=r,点到点距离==r 计算碰撞时间,碰撞点
算法思路。
圆围绕线段移动一圈,圆心轨迹是一个胶囊体。
因此实际问题等同于点和胶囊相交判断。(2个圆+一个方块)
此算法可对任意形状多边形作碰撞检测。
扩充至3d则是球/面
等价于点与平面+胶囊体边界检测