[发明专利]一种圆形与带旋转角度的矩形包围盒碰撞检测方法在审
申请号: | 201710162391.0 | 申请日: | 2017-03-18 |
公开(公告)号: | CN106951631A | 公开(公告)日: | 2017-07-14 |
发明(设计)人: | 李远阳 | 申请(专利权)人: | 李远阳 |
主分类号: | G06F17/50 | 分类号: | G06F17/50 |
代理公司: | 暂无信息 | 代理人: | 暂无信息 |
地址: | 510080 广东省*** | 国省代码: | 广东;44 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 圆形 旋转 角度 矩形 包围 碰撞 检测 方法 | ||
技术领域
本专利涉及计算机碰撞检测的技术领域,具体涉及一种圆形与带旋转角度的矩形包围盒碰撞检测方法。
背景技术
碰撞检测,是指在计算机中检测模拟图形是否相交的计算流程.目前在计算机图形学,仿真,动画,虚拟现实(VR)和电子游戏中都有应用.包围盒是一类求解离散点集最优包围空间的方法,基本思想是用体积稍大且特性简单的几何体(称为包围盒)来近似地代替复杂的几何对象.
目前常规的包围盒碰撞检测方法有:
1.圆形与不带旋转角度的矩形包围盒碰撞检测算法,存在问题:矩形包围盒无法旋转,没有方向,仿真度低.
2.OBB(SAT分离轴定理)包围盒碰撞检测算法,矩形包围盒可旋转,带有方向,仿真度高,但存在问题:运算量较大,每次检测需要计算两个包围盒在分离轴上的投影并确认是否相交,每次需要12(最低)~48(最高)次乘法运算才能得出结果.
目前常规检测方法应用中,在计算机进行大量模拟碰撞检测时,OBB算法运算量太大,圆形与不带旋转角度的矩形包围盒仿真度又太低.关键问题在于:如何在保有较高的仿真度的情况下提高包围盒碰撞检测速度.
发明内容
本发明的目的在于设计一种圆形与带旋转角度的矩形包围盒碰撞检测方法.使之比OBB算法运算量更小,并且达到仿真度较高的效果.解决了现有技术中在保有较高的仿真度的情况下提高包围盒碰撞检测速度的问题.
为了解决现有的问题,本发明在此提出方案:
一种圆形与带旋转角度的矩形包围盒碰撞检测方法,本发明的特点在于,将圆形与带旋转角度的矩形包围盒互相进行特定的坐标系转换运算,形成极易进行碰撞检测的形态,然后进行检测.其包括的主要步骤为:
步骤1:根据检测对象的原始数据生成包围盒:圆形包围盒与矩形包围盒的世界坐标(X园,Y园),(X矩,Y矩),圆形包围盒的半径R,矩形包围盒的单位方向(DirX,DirY),矩形包围盒的长和宽取半(halfWidth,halfHeight).
步骤2:以(X园,Y园)为原点,将矩形包围盒转换到圆形包围盒的对象坐标系中,得到(X矩1,Y矩1),然后再以(X矩1,Y矩1)为原点,矩形方向DirX为横轴,DirY为纵轴,对圆形包围盒的对象坐标系进行第二次坐标系转换.然后第三次转换,将该圆形包围盒映射到转换后的坐标系第一象限,最终可得到(X园1,Y园1).根据坐标系转换基本公式: x’=xcosα+ysinα,y’=ycosα-xsinα,对步骤2中两轮坐标系的转换,原公式需要多次三角函数的复杂计算,经过针对本方案的目标圆形与带旋转角度的矩形包围盒的情况进行运算流程优化和化简之后,给出以下只需要4次乘法运算的算法模型:
X矩1=X圆-X矩
Y矩1=Y圆-X矩
X圆1=abs(X矩1*DirX+Y矩1*DirY)
Y圆1=abs(Y矩1*DirY-X矩1*DirY)
步骤3:经过2次坐标系转换后,转换得到了圆形包围盒在矩形包围盒坐标为原点,矩形包围盒方向为轴的坐标系中的形态,就可以直接通过以下规则进行判断:
a.若X圆1 - R>halfWidth,此情况两个包围盒没有碰撞.
b.若Y圆1 - R>halfHeight,此情况两个包围盒没有碰撞.
c.若不满足条件a和条件b,同时若满足情况(X圆1 - halfWidth)*(X圆1 - halfWidth)+(Y圆1 - halfHeight)*(Y圆1 - halfHeight)>R*R,此种情况两个包围盒没有碰撞.
d.若同时不满足条件a,条件b,条件c的情况,则确认两个包围盒发生了碰撞.
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于李远阳,未经李远阳许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201710162391.0/2.html,转载请声明来源钻瓜专利网。
- 上一篇:一种新型多角度定点喷淋装置
- 下一篇:一种铲齿凸轮的结构优化设计方法