CN106951631A - 一种圆形与带旋转角度的矩形包围盒碰撞检测方法 - Google Patents
一种圆形与带旋转角度的矩形包围盒碰撞检测方法 Download PDFInfo
- Publication number
- CN106951631A CN106951631A CN201710162391.0A CN201710162391A CN106951631A CN 106951631 A CN106951631 A CN 106951631A CN 201710162391 A CN201710162391 A CN 201710162391A CN 106951631 A CN106951631 A CN 106951631A
- Authority
- CN
- China
- Prior art keywords
- circle
- square
- circular
- anglec
- rotation
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F30/00—Computer-aided design [CAD]
- G06F30/20—Design optimisation, verification or simulation
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Computer Hardware Design (AREA)
- Evolutionary Computation (AREA)
- Geometry (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Processing Or Creating Images (AREA)
Abstract
本发明公开了一种圆形与带旋转角度的矩形包围盒碰撞检测方法.目前常规检测方法,在机进行大量模拟碰撞检测时,OBB算法是对两个带有角度的矩形检测,仿真度较高,但运算量太大,而圆形与不带旋转角度的矩形包围盒的常规检测方法仿真度又太低.本发明能够在保有较高仿真度的情况下,以比OBB算法更少的运算量进行碰撞检测,提高检测速度。
Description
技术领域
本专利涉及计算机碰撞检测的技术领域,具体涉及一种圆形与带旋转角度的矩形包围盒碰撞检测方法。
背景技术
碰撞检测,是指在计算机中检测模拟图形是否相交的计算流程.目前在计算机图形学,仿真,动画,虚拟现实(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的情况,则确认两个包围盒发生了碰撞.
本发明的方案,提供了一种圆形与带旋转角度的矩形包围盒碰撞检测方法,这是一种在保证较高仿真度的情况下,尽量提高碰撞检测速度的方案.本发明是先对圆形和带有旋转角度的矩形包围盒进行特定的坐标转换,形成易于进行碰撞检测的形态,然后再根据圆形半径和矩形长宽判断碰撞检测.整个运算过程在经过优化设计,坐标系转换过程只需要4次乘法运算,全流程总共只需要7次乘法运算便可以判断出结果.
与目前常规的相关技术内容相比,本发明:
1.相比OBB算法,本发明经过针对目标圆形与带旋转角度的矩形包围盒的情况进行运算流程优化和化简,运算量更小.OBB算法需要12(最低)~48(最高)次乘法运算,本发明只需要7次乘法运算.在同一计算机上进行的10,000,000次碰撞检测中,OBB算法需要2.018秒,本发明只需0.552秒.
算法名 | 乘法运算 | 取绝对值 | 其他特殊运算 | 一千万次运算耗时 |
OBB | 12~48次 | 6~24次 | 无 | 2.018秒 |
本发明 | 7次 | 2次 | 无 | 0.552秒 |
2.相比圆形与与不带旋转角度的矩形包围盒碰撞检测算法,本发明中的矩形包围盒带有旋转角度,在计算机模拟场景中,可以提供较高的仿真度.
附图说明
下面结合附图及实施例对本发明作进一步描述:
图1为本发明技术方案一种圆形与带旋转角度的矩形包围盒碰撞检测方法的工作原理图.
图2为本发明技术方案一种圆形与带旋转角度的矩形包围盒碰撞检测方法的工作流程图.
具体实施方式
结合具体实施例对上述方案做进一步说明.应理解,这些实施例是用于说明本发明而不限于限制本发明的范围.实施例中采用的实施条件可以根据具体工作所需要的条件做进一步调整,未注明的实施条件通常为常规实验中的条件.
实施例
本发明的实施原理如图1所示,将圆形与带旋转角度的矩形包围盒互相进行特定的坐标系转换运算,形成极易进行碰撞检测的形态,然后进行检测.
具体实施流程如图2所示,以下结合计算机中虚拟现实的工作场景来详细说明:
步骤1:对计算机场景中的虚拟物体进行构造及分类,将需要进行碰撞检测的对象分为圆形包围盒和带旋转角度的矩形两种类别.其中,圆形包围盒根据原虚拟环境中的对象可生成数据:坐标(X圆,Y圆),半径R,带旋转角度的矩形包围盒根据原虚拟环境中的对象可生成数据:坐标(X矩,Y矩),朝向(DirX,DirY),宽度取半halfWidth,长度取半halfHeight.
步骤2:如图1,对原始数据进行三次坐标系转换,使用经过针对本方案的目标圆形与带旋转角度的矩形包围盒的情况进行运算流程优化的坐标轴转换算法,将数据转换为如图1第二次转换后的状态(X圆1,Y圆1).
步骤3:得到转换后的状态(X圆1,Y圆1)后,则可以根据以下条件进行判断:
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的情况,则确认两个包围盒发生了碰撞.
最终得到判断结果,确认两个包围盒是否碰撞。
Claims (1)
1.一种圆形与带旋转角度的矩形包围盒碰撞检测方法,其特征包括于以下步骤:
根据检测对象的原始数据生成圆形包围盒和带旋转角度的矩形包围盒.
对圆形包围盒与带旋转角度的矩形包围盒使用以下针对本发明的情况进行了优化设计的算法模型,进行坐标系转换,得到易于检测的数据形态:
圆形坐标(X圆,Y圆),半径R
矩形坐标(X矩,Y矩),单位方向(DirX,DirY),宽度取半halfWidth,长度取半halfHeight
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)对经过转换后的数据,进行以下条件判断:
若X圆1 - R>halfWidth,此情况两个包围盒没有碰撞.
若Y圆1 - R>halfHeight,此情况两个包围盒没有碰撞.
若不满足条件a和条件b,同时若满足情况(X圆1 - halfWidth)*(X圆1 - halfWidth)+(Y圆1 - halfHeight)*(Y圆1 - halfHeight)>R*R,此情况两个包围盒没有碰撞.
若同时不满足条件a,条件b,条件c的情况,则确认两个包围盒发生了碰撞。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710162391.0A CN106951631A (zh) | 2017-03-18 | 2017-03-18 | 一种圆形与带旋转角度的矩形包围盒碰撞检测方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710162391.0A CN106951631A (zh) | 2017-03-18 | 2017-03-18 | 一种圆形与带旋转角度的矩形包围盒碰撞检测方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN106951631A true CN106951631A (zh) | 2017-07-14 |
Family
ID=59472697
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201710162391.0A Pending CN106951631A (zh) | 2017-03-18 | 2017-03-18 | 一种圆形与带旋转角度的矩形包围盒碰撞检测方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN106951631A (zh) |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108296854A (zh) * | 2018-02-01 | 2018-07-20 | 上海铼钠克数控科技股份有限公司 | 机床防撞方法及装置 |
CN109740234A (zh) * | 2018-12-28 | 2019-05-10 | 江苏艾佳家居用品有限公司 | 一种家居布局3d碰撞检测方法及系统 |
CN110660272A (zh) * | 2019-09-27 | 2020-01-07 | 南京莱斯网信技术研究院有限公司 | 一种适用于内河水上船舶碰撞预警检测的方法 |
CN112245014A (zh) * | 2020-10-30 | 2021-01-22 | 微创(上海)医疗机器人有限公司 | 一种医疗机器人、检测机械臂碰撞的方法及存储介质 |
Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102142055A (zh) * | 2011-04-07 | 2011-08-03 | 上海大学 | 基于增强现实交互技术的真三维设计方法 |
CN102368280A (zh) * | 2011-10-21 | 2012-03-07 | 北京航空航天大学 | 一种面向虚拟装配的基于aabb-obb混合包围盒的碰撞检测方法 |
CN103049341A (zh) * | 2012-11-21 | 2013-04-17 | 苏州两江科技有限公司 | 带预判方法的obb层次体树碰撞检测方法 |
CN104606887A (zh) * | 2014-12-30 | 2015-05-13 | 北京像素软件科技股份有限公司 | 一种碰撞判定方法 |
CN104821006A (zh) * | 2015-05-18 | 2015-08-05 | 浙江理工大学 | 一种基于人体混合包围盒的动态服装仿真方法 |
CN105469406A (zh) * | 2015-11-30 | 2016-04-06 | 东北大学 | 一种基于包围盒与空间划分的虚拟物体碰撞检测方法 |
CN105488851A (zh) * | 2015-11-30 | 2016-04-13 | 腾讯科技(深圳)有限公司 | 实时虚拟场景中碰撞体之间碰撞探测的方法和装置 |
-
2017
- 2017-03-18 CN CN201710162391.0A patent/CN106951631A/zh active Pending
Patent Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102142055A (zh) * | 2011-04-07 | 2011-08-03 | 上海大学 | 基于增强现实交互技术的真三维设计方法 |
CN102368280A (zh) * | 2011-10-21 | 2012-03-07 | 北京航空航天大学 | 一种面向虚拟装配的基于aabb-obb混合包围盒的碰撞检测方法 |
CN103049341A (zh) * | 2012-11-21 | 2013-04-17 | 苏州两江科技有限公司 | 带预判方法的obb层次体树碰撞检测方法 |
CN104606887A (zh) * | 2014-12-30 | 2015-05-13 | 北京像素软件科技股份有限公司 | 一种碰撞判定方法 |
CN104821006A (zh) * | 2015-05-18 | 2015-08-05 | 浙江理工大学 | 一种基于人体混合包围盒的动态服装仿真方法 |
CN105469406A (zh) * | 2015-11-30 | 2016-04-06 | 东北大学 | 一种基于包围盒与空间划分的虚拟物体碰撞检测方法 |
CN105488851A (zh) * | 2015-11-30 | 2016-04-13 | 腾讯科技(深圳)有限公司 | 实时虚拟场景中碰撞体之间碰撞探测的方法和装置 |
Non-Patent Citations (4)
Title |
---|
TENG的世界: "【COCOS2DX-游戏开发之三七】圆与旋转矩形的碰撞检测(下篇)", 《HTTPS://BLOG.CSDN.NET/TENG_ONTHEWAY/ARTICLE/DETAILS/38707615》 * |
潘海鸿: "基于分离距离的碰撞检测算法综述", 《系统仿真学报》 * |
王志强等: "碰撞检测问题研究综述", 《软件学报》 * |
谭睿璞: "二维动画设计中的碰撞检测算法", 《莆田学院学报》 * |
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108296854A (zh) * | 2018-02-01 | 2018-07-20 | 上海铼钠克数控科技股份有限公司 | 机床防撞方法及装置 |
CN109740234A (zh) * | 2018-12-28 | 2019-05-10 | 江苏艾佳家居用品有限公司 | 一种家居布局3d碰撞检测方法及系统 |
CN109740234B (zh) * | 2018-12-28 | 2022-07-08 | 江苏艾佳家居用品有限公司 | 一种家居布局3d碰撞检测方法及系统 |
CN110660272A (zh) * | 2019-09-27 | 2020-01-07 | 南京莱斯网信技术研究院有限公司 | 一种适用于内河水上船舶碰撞预警检测的方法 |
CN112245014A (zh) * | 2020-10-30 | 2021-01-22 | 微创(上海)医疗机器人有限公司 | 一种医疗机器人、检测机械臂碰撞的方法及存储介质 |
CN112245014B (zh) * | 2020-10-30 | 2023-06-02 | 上海微创医疗机器人(集团)股份有限公司 | 一种医疗机器人、检测机械臂碰撞的方法及存储介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN106951631A (zh) | 一种圆形与带旋转角度的矩形包围盒碰撞检测方法 | |
Wang et al. | SAT-GCN: Self-attention graph convolutional network-based 3D object detection for autonomous driving | |
CN101882150B (zh) | 一种基于核密度估计的三维模型比较和检索方法 | |
CN106960470B (zh) | 三维点云曲面重建方法及装置 | |
CN102411794A (zh) | 一种基于球谐变换的三维模型的二维投影的输出方法 | |
CN111062135B (zh) | 一种精确的碰撞检测方法 | |
CN103324784B (zh) | 一种基于局部约束的网格模型碰撞处理方法 | |
CN103337091B (zh) | 一种基于厚度的柔性场景连续碰撞检测方法 | |
CN105224507A (zh) | 一种基于张量分解的缺失关联规则挖掘方法 | |
KR20150073859A (ko) | Cad 기반 초기 표면 기하형상 정정 | |
CN104977816B (zh) | 基于Compact Particle Swarm Optimization算法的光刻机掩模台微动台的机械参数软测量方法 | |
CN112505652A (zh) | 目标检测方法、装置及存储介质 | |
CN102044059A (zh) | 三维点模型的数字水印嵌入与提取方法 | |
Li et al. | The contact detection for heart-shaped particles | |
CN103049593A (zh) | 一种计算两条参数曲线间的Hausdorff距离的方法 | |
Zhang et al. | Adaptive generation of hexahedral element mesh using an improved grid-based method | |
CN103049341A (zh) | 带预判方法的obb层次体树碰撞检测方法 | |
JP2008523481A (ja) | 少なくとも2つの衝突する三次元体を有する三次元モデルから技術図面を作製するための方法 | |
CN106023314A (zh) | 一种基于回转轴方向映射的b样条母曲线拟合方法 | |
JP2022547873A (ja) | 点群データ処理方法及び装置 | |
CN102622583A (zh) | 基于模型和稀疏表示的多角度型号识别方法及系统 | |
CN103020474A (zh) | 基于杂波统计分布模型和功率谱模型确定杂波模型的方法 | |
CN111429581A (zh) | 游戏模型外轮廓确定、游戏特效添加方法和装置 | |
US8170813B2 (en) | Determining effects of turbine blades on fluid motion | |
Kim et al. | Three-dimensional building-cube method for inviscid compressible flow computations |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
WD01 | Invention patent application deemed withdrawn after publication | ||
WD01 | Invention patent application deemed withdrawn after publication |
Application publication date: 20170714 |