包围球与包围盒的碰撞检测

碰撞检测算法的引申问题

 

盒子和盒子的碰撞,或者球和球的碰撞已经有太多的讨论文章, 这里不说

这里只说盒子和球的碰撞

 

二维情况:

问题描述:  平面任意的矩形和一个圆是否相交的判定

分析:

        圆和矩形相交发生情况下,球心在什么区域呢?

        区域的形状是个圆角矩形, 如下示意图

        

       绿色为矩形的部分, 当圆的圆心卫浴蓝色和绿色的部分的时候就会相交

 

       因此算法为:

           循环矩形的每个边

                判定球心到矩形的边的距离(注意距离是有正负的)d

                如果d>圆半径r,必然不相交

                如果d>0 并且 d< r  记录下这个边号

           // 记录下来的边号只有0,1,2三种情况, 0表示圆心位于绿色区域    1表示在上边或者左边   2 表示左上角

           如果记录下来的编号小于2, 则必然相交

           如果记录下来的编号是2

                检测两个记录下来的边的交点(矩形的一个顶点)和圆心距离dd

                dd<r 则相交

                dd>r不相交

 

三维情况

    问题描述:  空间任意长方体与一个球体的相交,如何判定

   分析:  和二维的情况类似, 球心是在一个圆角长方体内才会相交

   算法:

             判定球心和每个面的情况

             记录到面距离小于r又大于0的面

             根据面计算处于棱边状况或者顶角的状况

 

no time, continue。。。。。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值