欢迎光临小豌豆知识网!
当前位置:首页 > 生活技术 > 运动娱乐> 碰撞检测方法和装置独创技术33766字

碰撞检测方法和装置

2021-03-10 18:22:01

碰撞检测方法和装置

  技术领域

  本发明涉及互联网领域,具体而言,涉及一种碰撞检测方法和装置。

  背景技术

  在动作类游戏中,游戏角色经常会有近战攻击技能,一般是游戏角色手持近战武器装备朝向目标对象挥舞来攻击目标对象。但近战武器装备的攻击动作能否击中目标对象,取决于碰撞检测方法,该方法是判定近战武器装备和目标对象是否发生碰撞的方法。

  如图1a和图1b所示,圆圈代表目标对象,游戏角色手持剑形武器装备由右向左挥舞。由于游戏程序是按一定的时间间隔所形成的帧来被CPU(中央处理器,CentralProcessing Unit)执行的,如图1a所示,在当前第x帧时,剑形武器装备未与目标对象发生碰撞,可以确认未攻击到目标对象,而如图1b所示,在下一帧即第x+1帧时,剑形武器装备已经绕过了目标对象所在的位置,也可以确认未攻击到目标对象。在上述情况下,可以确定剑形武器装备此次的攻击动作必然会攻击到目标对象,也即,在两帧之间的某一时刻,剑形武器装备会和目标对象发生碰撞。但是,如果只检测剑形武器装备在两个位置时是否与目标对象发生碰撞,则检测结果为未发生碰撞,导致剑形武器装备此次的攻击动作被判定为未攻击到目标对象。

  针对上述的问题,目前尚未提出有效的解决方案。

  发明内容

  本发明实施例提供了一种碰撞检测方法和装置,以至少解决相关技术中碰撞检测方法按帧进行检测容易出现误判,导致检测准确度降低的技术问题。

  根据本发明实施例的一个方面,提供了一种碰撞检测方法,包括:获取虚拟对象在第一时刻的第一运动位置和虚拟对象在第二时刻的第二运动位置,第二时刻是与第一时刻相邻的下一个时刻;建立连接于第一运动位置和第二运动位置的虚拟几何体;通过虚拟几何体与目标对象进行碰撞检测,以确定虚拟对象自第一运动位置移动至第二运动位置的过程中与目标对象是否发生碰撞。

  可选地,建立连接于第一运动位置和第二运动位置的虚拟几何体的步骤,包括:获取虚拟对象上多个目标点在第一时刻所处的第一位置和多个目标点在第二时刻所处的第二位置,其中,多个目标点是在虚拟对象的首部与尾部之间选取的目标点;基于第一位置和第二位置,在每组不同位置的目标点之间构建虚拟几何体,得到多个虚拟几何体。

  可选地,基于第一位置和第二位置,在每组不同位置的目标点之间构建虚拟几何体,得到多个虚拟几何体的步骤,包括:基于第一位置和第二位置,获取每组不同位置的目标点之间的连线,得到多个目标连线;分别根据目标连线构建虚拟几何体,得到多个虚拟几何体。

  可选地,目标连线为每组不同位置的目标点之间的直线或弧线,其中,弧线以虚拟对象的运动弧线所对应的中心为圆心。

  可选地,在目标连线为每组不同位置的目标点之间的弧线的情况下,根据目标连线构建虚拟几何体,得到多个虚拟几何体的步骤,包括:在目标连线上确定至少一个中间点;在每组不同位置的目标点和至少一个中间点中,确定任意两个相邻点之间的连线,得到多个子直线;根据子直线构建虚拟几何体,得到多个虚拟几何体。

  可选地,虚拟几何体为虚拟圆柱体,虚拟圆柱体的底面直径小于或等于相邻目标点之间的间隔。

  可选地,多个目标点是在虚拟对象的首部与尾部之间等间隔选取的目标点。

  根据本发明实施例的另一方面,还提供了一种碰撞检测装置,包括:获取模块,用于获取虚拟对象在第一时刻的第一运动位置和虚拟对象在第二时刻的第二运动位置,第二时刻是与第一时刻相邻的下一个时刻;建立模块,用于建立连接于第一运动位置和第二运动位置的虚拟几何体;检测模块,用于通过虚拟几何体与目标对象进行碰撞检测,以确定虚拟对象自第一运动位置移动至第二运动位置的过程中与目标对象是否发生碰撞。

  可选地,建立模块包括:获取单元,用于获取虚拟对象上多个目标点在第一时刻所处的第一位置和多个目标点在第二时刻所处的第二位置,其中,多个目标点是在虚拟对象的首部与尾部之间选取的目标点;构建单元,用于基于第一位置和第二位置,在每组不同位置的目标点之间构建虚拟几何体,得到多个虚拟几何体。

  可选地,构建单元还用于执行如下步骤:基于第一位置和第二位置,确定每组不同位置的目标点之间的连线,得到多个目标连线;分别根据目标连线构建虚拟几何体,得到多个虚拟几何体。

  可选地,目标连线为每组不同位置的目标点之间的直线或弧线,其中,弧线以虚拟对象的运动弧线所对应的中心为圆心。

  可选地,在目标连线为每组不同位置的目标点之间的弧线的情况下,构建单元还用于执行如下步骤:在目标连线上确定至少一个中间点;在每组不同位置的目标点和至少一个中间点中,确定任意两个相邻点之间的连线,得到多个子直线;根据子直线构建虚拟几何体,得到多个虚拟几何体。

  根据本发明实施例的另一方面,还提供了一种存储介质,存储介质包括存储的程序,其中,在程序运行时控制存储介质所在设备执行上述的碰撞检测方法。

  根据本发明实施例的另一方面,还提供了一种处理器,处理器用于运行程序,其中,程序运行时执行上述的碰撞检测方法。

  在本发明实施例中,在虚拟对象在相邻两个时刻的第一运动位置和第二运动位置之后,可以建立连接于第一运动位置和第二运动位置的虚拟几何体,并通过虚拟几何体与目标对象进行碰撞检测,确定虚拟对象在自第一运动位置移动至第二运动位置的过程中与目标对象是否发生碰撞,实现判断虚拟对象是否攻击到目标对象的目的。容易注意到的是,由于虚拟几何体连接于相邻两个时刻的不同运动位置,并不是在某个时刻虚拟对象所处的位置上创建的,因此,可以准确检测到两帧图像之间的某个时刻,虚拟对象与目标对象是否发生碰撞,而且可以避免其他非目标对象的误判,从而达到了提高检测准确度,提高检测到发生碰撞的概率的技术效果,进而解决了相关技术中碰撞检测方法按帧进行检测容易出现误判,导致检测准确度降低的技术问题。

  附图说明

  此处所说明的附图用来提供对本发明的进一步理解,构成本申请的一部分,本发明的示意性实施例及其说明用于解释本发明,并不构成对本发明的不当限定。在附图中:

  图1a是根据现有技术的一种虚拟对象在第一时刻的显示位置的示意图;

  图1b是根据现有技术的一种虚拟对象在第二时刻的显示位置的示意图;

  图2a是根据现有技术的一种碰撞检测方法的示意图;

  图2b是根据现有技术的另一种碰撞检测方法的示意图;

  图3是根据本发明实施例的一种碰撞检测方法的流程图

  图4a是根据本发明实施例的一种可选的不同位置的目标点直线连接的示意图;

  图4b是根据本发明实施例的一种可选的以直线为中心轴构建虚拟圆柱体的示意图;

  图5a是根据本发明实施例的一种可选的不同位置的目标点弧线连接的示意图;

  图5b是根据本发明实施例的一种可选的以弧线为中心轴构建虚拟圆柱体的示意图;

  图6是根据本发明实施例的一种碰撞检测装置的示意图;

  图7是根据本发明实施例的一种存储介质的结构示意图;以及

  图8是根据本发明实施例的一种设备的结构示意图。

  具体实施方式

  为了使本技术领域的人员更好地理解本发明方案,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分的实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都应当属于本发明保护的范围。

  需要说明的是,本发明的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本发明的实施例能够以除了在这里图示或描述的那些以外的顺序实施。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。

  由于游戏程序按帧被CPU执行,如果只检测剑形武器装备在两个位置是否与目标对象发生碰撞,则检测结果为未发生碰撞,但实际情况是,剑形武器装备此次的攻击动作必然会攻击到目标对象。

  为了解决上述问题,在每一帧检测时,可以在剑形武器装备的位置虚拟创建一个圆柱体,圆柱体的长度大约等于剑的长度,圆柱体的底面直径要大于剑形武器装备的横截面最大长度,即圆柱体要比剑形武器装备粗,要包围住剑形武器装备。如图2a所示,圆柱体可稍微比剑形武器装备粗一点,如图2b所示,也可以比剑身粗很多。

  圆柱体可粗可细,越细当前帧的碰撞检测越准确,但是会降低检测到发生碰撞的概率,越粗虽然可提高检测到发生碰撞的概率,但是会降低检测准确度,导致误判的情况发生,如图2b所示,剑形武器装备左边的圆圈代表非目标对象,由于圆柱体较粗,导致该对象被检测到与圆柱体相交。

  为了解决上述问题,本发明提供了一种碰撞检测方法,该方法可以避免目标对象被遗漏,也可以避免非目标对象被误判,从而提高了检测准确度。

  根据本发明实施例,提供了一种碰撞检测方法,需要说明的是,在附图的流程图示出的步骤可以在诸如一组计算机可执行指令的计算机系统中执行,并且,虽然在流程图中示出了逻辑顺序,但是在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤。

  图3是根据本发明实施例的一种碰撞检测方法的流程图,如图3所示,该方法包括如下步骤:

  步骤S302,获取虚拟对象在第一时刻的第一运动位置和虚拟对象在第二时刻的第二运动位置,第二时刻是与第一时刻相邻的下一个时刻;

  上述步骤中的虚拟对象可以是指动作类游戏中,游戏角色所使用的剑、刀、匕首等能够对近距离的目标进行攻击的武器装备,其攻击操作是通过游戏角色对其进行挥舞实现的,但不仅限于此。

  由于游戏程序是按帧来被CPU执行的,为了实现较为准确的碰撞检测,可以在游戏角色挥舞虚拟对象进行进攻的过程中,获取相邻两帧图像中虚拟对象所处的位置,确定虚拟对象在两个相邻时刻的第一运动位置和第二运动位置,两个运动位置不同。

  步骤S304,建立连接于第一运动位置和第二运动位置的虚拟几何体;

  可选的,上述步骤中的虚拟几何体可以是虚拟长方体、虚拟圆柱体、虚拟椭球体等,但不仅限于此,在本发明实施例中,以虚拟圆柱体为例进行说明。

  在一种可选的实施例中,虚拟对象在相邻两个时刻的运动位置不同,可以在两个不同运动位置之间构建虚拟圆柱体,从而该虚拟圆柱体可以覆盖虚拟对象从第一运动位置移动至第二运动位置的所有区域。

  步骤S306,通过虚拟几何体与目标对象进行碰撞检测,以确定虚拟对象自第一运动位置移动至第二运动位置的过程中与目标对象是否发生碰撞。

  在一种可选的实施例中,在构建出虚拟圆柱体之后,可以采用虚拟圆柱体和目标对象进行碰撞检测,由于构建出的虚拟圆柱体连接于第一运动位置和第二运动位置,也即,虚拟圆柱体位于虚拟对象在两个相邻时刻的运动位置之间,因此,采用该虚拟圆柱体进行碰撞检测,可以避免目标对象被遗漏,并且可以避免非目标对象被误判。

  需要说明的是,上述的碰撞检测方法可以采用现有的碰撞检测方法实现,本发明对此不作具体限定。例如,可以在目标对象的位置上构建一个虚拟几何体,将连接于第一运动位置和第二运动位置的虚拟几何体与目标对象上构建的虚拟几何体进行检测,判断两个虚拟几何体在空间上是否存在相交的情况,如果存在,则确定发生碰撞,如果不存在,则确定不发生碰撞。

  通过本发明上述实施例,在虚拟对象在相邻两个时刻的第一运动位置和第二运动位置之后,可以建立连接于第一运动位置和第二运动位置的虚拟几何体,并通过虚拟几何体与目标对象进行碰撞检测,确定虚拟对象在自第一运动位置移动至第二运动位置的过程中与目标对象是否发生碰撞,实现判断虚拟对象是否攻击到目标对象的目的。容易注意到的是,由于虚拟几何体连接于相邻两个时刻的不同运动位置,并不是在某个时刻虚拟对象所处的位置上创建的,因此,可以准确检测到两帧图像之间的某个时刻,虚拟对象与目标对象是否发生碰撞,而且可以避免其他非目标对象的误判,从而达到了提高检测准确度,提高检测到发生碰撞的概率的技术效果,进而解决了相关技术中碰撞检测方法按帧进行检测容易出现误判,导致检测准确度降低的技术问题。

  可选地,在本发明上述实施例中,步骤S304,建立连接于第一运动位置和第二运动位置的虚拟几何体包括:获取虚拟对象上多个目标点在第一图像中的第一位置,以及第二图像中的第二位置,其中,多个目标点是在虚拟对象的首部与尾部之间选取的目标点;获取虚拟对象上多个目标点在第一时刻所处的第一位置和多个目标点在第二时刻所处的第二位置,其中,多个目标点是在虚拟对象的首部与尾部之间选取的目标点;基于第一位置和第二位置,在每组不同位置的目标点之间构建虚拟几何体,得到多个虚拟几何体。

  可选的,多个目标点可以是在虚拟对象的首部与尾部之间等间隔选取的目标点,但不仅限于此,也可以是非等间隔地选取多个目标点。其中,首部可以是指虚拟对象上远离游戏角色的一端,而尾部可以是指虚拟对象上游戏角色手持的一端。并且,一种可选的实施例中,在游戏角色挥舞虚拟对象的过程中,虚拟对象的尾部基本保持不动。

  为了避免虚拟几何体较粗,影响检测准确度,可以根据目标点之间的间隔确定虚拟几何体的粗细程度,其中,在虚拟圆柱体的情况下,虚拟圆柱体的底面直径小于或等于相邻目标点之间的间隔。

  在一种可选的实施例中,可以从虚拟对象的首部到尾部,每隔一定的长度,例如m,在虚拟对象上选取一个目标点。例如,对于剑形武器装备,可以从剑首(即上述的首部)到剑柄(即上述的尾部)上等间隔的选取三个目标点,如图4a所示,在第一时刻,三个目标点的第一位置分别为A、B和C;在第二时刻,三个目标点的第二位置分别为A'、B'和C'。对于同一个目标点,在第一时刻和第二时刻所处的位置不同,可以在两个不同位置之间构建虚拟圆柱体,由于目标点为多个,因此可以构建出多个虚拟圆柱体。例如,对于剑形武器装备,如图4b所示,可以分别在A和A'之间构建虚拟圆柱体,在B和B'之间构建虚拟圆柱体,并在C和C'之间构建虚拟圆柱体,最终得到三个虚拟的圆柱体,圆柱体的底面直径可以是m,也可以比m稍小。

  可选地,在本发明上述实施例中,基于第一位置和第二位置,在每组不同位置的目标点之间构建虚拟几何体,得到多个虚拟几何体的步骤包括:基于第一位置和第二位置,获取每组不同位置的目标点之间的连线,得到多个目标连线;分别根据目标连线构建虚拟几何体,得到多个虚拟几何体。

  可选的,上述的目标连线可以为每组不同位置的目标点之间的直线。在一种可选的实施例中,对于同一个目标点,可以将第一位置和第二位置直线连接,并以连线为中心轴创建虚拟圆柱体。例如,对于剑形武器装备,如图4b所示,可以将A和A'直线连接,以直线AA'为中心轴创建虚拟圆柱体,将B和B'直线连接,以直线BB'为中心轴创建虚拟圆柱体,最后,将C和C'直线连接,以直线CC'为中心轴创建虚拟圆柱体。

  需要说明的是,如图4b所示,如果目标对象的位置距离剑形武器装备的剑柄的位置再远一些,超出圆柱体的底面直径,则可能会出现检测失败的情况。为了进一步提升检测准确度,可选的,上述的目标连线可以为每组不同位置的目标点之间的直线弧线,其中,弧线以虚拟对象的运动弧线所对应的中心为圆心。在一种可选的实施例中,在虚拟对象的尾部基本保持不动的情况下,弧线以虚拟对象的尾部为圆心。

  在一种可选的实施例中,对于同一个目标点,可以将第一位置和第二位置,以虚拟对象的运动弧线所对应的中心为圆心的弧线进行连接,并以弧线为中心轴创建虚拟圆柱体。例如,对于剑形武器装备,如图5a所示,以剑柄O为圆心将A和A'连接,以弧线AA'为中心轴创建虚拟圆柱体,以剑柄O为圆心将B和B'连接,以弧线BB'为中心轴创建虚拟圆柱体,最后,以剑柄O为圆心将C和C'连接,以弧线CC'为中心轴创建虚拟圆柱体。

  可选地,在本发明上述实施例中,根据目标连线构建虚拟几何体,得到多个虚拟几何体的步骤,包括:在目标连线上确定至少一个中间点;在每组不同位置的目标点和至少一个中间点中,确定任意两个相邻点之间的连线,得到多个子直线;根据子直线构建虚拟几何体,得到多个虚拟几何体。

  在一种可选的实施例中,对于弧线,无法直接构建虚拟圆柱体,因此,对于同一个目标点,可以在弧线上再分别每隔长度n取一个中间点,然后以弧线的端点,和每隔长度n所选取的中间点直线连接,并将这些连接得到的直线为中心轴创建若干虚拟的圆柱体。

  需要说明的是,由于不同目标点与虚拟对象的尾部的距离不同,因此不同目标点所确定的弧线的长度不同,在此基础上,每条弧线上确定的中间点的数量不同。进一步地,如果弧线长度较短,可以不选取中间点,直接以两个不同位置之间的直线为中心轴构建虚拟圆柱体。

  例如,对于剑形武器装备,如图5b所示,对于弧线AA',可以选取两个中间点,并将A、A'和选取的两个中间点中相邻的两个点进行连接,得到三条连线,进一步分别以每条连线为中心轴构建虚拟圆柱体,从而得到三个虚拟圆柱体;对于弧线BB',由于其比弧线AA'短,因此可以选取一个中间点,并将B、B'和选取的两个中间点中相邻的两个点进行连接,得到两条连线,进一步分别以每条连线为中心轴构建虚拟圆柱体,从而得到两个虚拟圆柱体;对于弧线CC',由于其比弧线BB'短,因此可以不选取一个中间点,直接将C和C'连接,进一步以该连线为中心轴构建虚拟圆柱体,从而得到一个虚拟圆柱体。

  根据本发明实施例,还提供了一种碰撞检测装置,该装置可以执行上述实施例1中的碰撞检测方法,优选的实施方式如实施例1所述,在此不做赘述。

  图6是根据本发明实施例的一种碰撞检测装置的示意图,如图6所示,该装置包括:

  获取模块62,用于获取虚拟对象在第一时刻的第一运动位置和虚拟对象在第二时刻的第二运动位置,第二时刻是与第一时刻相邻的下一个时刻;

  建立模块64,用于建立连接于第一运动位置和第二运动位置的虚拟几何体;

  检测模块66,用于通过虚拟几何体与目标对象进行碰撞检测,以确定虚拟对象自第一运动位置移动至第二运动位置的过程中与目标对象是否发生碰撞。

  可选地,在本发明上述实施例中,建立模块包括:获取单元,用于获取虚拟对象上多个目标点在第一时刻所处的第一位置和多个目标点在第二时刻所处的第二位置,其中,多个目标点是在虚拟对象的首部与尾部之间选取的目标点;构建单元,用于基于第一位置和第二位置,在每组不同位置的目标点之间构建虚拟几何体,得到多个虚拟几何体。

  可选地,在本发明上述实施例中构建单元还用于执行如下步骤:基于第一位置和第二位置,获取每组不同位置的目标点之间的连线,得到多个目标连线;分别根据目标连线构建虚拟几何体,得到多个虚拟几何体。

  可选地,在目标连线为每组不同位置的目标点之间的弧线的情况下,构建单元还用于执行如下步骤:在目标连线上确定至少一个中间点;在每组不同位置的目标点和至少一个中间点中,确定任意两个相邻点之间的连线,得到多个子直线;根据子直线构建虚拟几何体,得到多个虚拟几何体。

  根据本发明实施例,还提供了一种存储介质,存储介质包括存储的程序,其中,在程序运行时控制存储介质所在设备执行上述实施例1中的碰撞检测方法。

  如图7所示,描述了根据本发明的实施方式的程序产品700,其上存储有计算机程序,所述计算机程序被处理器执行时实现如下步骤的程序代码:

  获取虚拟对象在第一时刻的第一运动位置和虚拟对象在第二时刻的第二运动位置,第二时刻是与第一时刻相邻的下一个时刻;

  建立连接于第一运动位置和第二运动位置的虚拟几何体;

  通过虚拟几何体与目标对象进行碰撞检测,以确定虚拟对象自第一运动位置移动至第二运动位置的过程中与目标对象是否发生碰撞。

  可选地,所述计算机程序被处理器执行时还实现如下步骤的程序代码:

  获取虚拟对象上多个目标点在第一时刻所处的第一位置和多个目标点在第二时刻所处的第二位置,其中,多个目标点是在虚拟对象的首部与尾部之间选取的目标点;

  基于第一位置和第二位置,在每组不同位置的目标点之间构建虚拟几何体,得到多个虚拟几何体。

  可选地,所述计算机程序被处理器执行时还实现如下步骤的程序代码:

  基于第一位置和第二位置,获取每组不同位置的目标点之间的连线,得到多个目标连线;

  分别根据目标连线构建虚拟几何体,得到多个虚拟几何体。

  可选地,所述计算机程序被处理器执行时还实现如下步骤的程序代码:

  在目标连线为每组不同位置的目标点之间的弧线的情况下,在目标连线上确定至少一个中间点;

  在每组不同位置的目标点和至少一个中间点中,确定任意两个相邻点之间的连线,得到多个子直线;

  根据子直线构建虚拟几何体,得到多个虚拟几何体。

  可选地,本实施例中的具体示例可以参考上述实施例中所描述的示例,本实施例在此不再赘述。

  计算机可读存储介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了可读程序代码。这种传播的数据信号可以采用多种形式,包括但不限于电磁信号、光信号或上述的任意合适的组合。计算机可读存储介质可以发送、传播或者传输用于由指令执行系统、装置或者器件使用或者与其结合使用的程序。

  计算机可读存储介质中包含的程序代码可以用任何适当的介质传输,包括但不限于无线、有线、光缆、射频等等,或者上述的任意合适的组合。

  根据本发明实施例,还提供了一种处理器,处理器用于运行程序,其中,程序运行时执行上述实施例1中的碰撞检测方法。

  处理器可以被设置为执行下述步骤:

  获取虚拟对象在第一时刻的第一运动位置和虚拟对象在第二时刻的第二运动位置,第二时刻是与第一时刻相邻的下一个时刻;

  建立连接于第一运动位置和第二运动位置的虚拟几何体;

  通过虚拟几何体与目标对象进行碰撞检测,以确定虚拟对象自第一运动位置移动至第二运动位置的过程中与目标对象是否发生碰撞。

  可选地,处理器还可以被设置为执行下述步骤:

  获取虚拟对象上多个目标点在第一时刻所处的第一位置和多个目标点在第二时刻所处的第二位置,其中,多个目标点是在虚拟对象的首部与尾部之间选取的目标点;

  基于第一位置和第二位置,在每组不同位置的目标点之间构建虚拟几何体,得到多个虚拟几何体。

  可选地,处理器还可以被设置为执行下述步骤:

  基于第一位置和第二位置,获取每组不同位置的目标点之间的连线,得到多个目标连线;

  分别根据目标连线构建虚拟几何体,得到多个虚拟几何体。

  可选地,处理器还可以被设置为执行下述步骤:

  在目标连线为每组不同位置的目标点之间的弧线的情况下,在目标连线上确定至少一个中间点;

  在每组不同位置的目标点和至少一个中间点中,确定任意两个相邻点之间的连线,得到多个子直线;

  根据子直线构建虚拟几何体,得到多个虚拟几何体。

  如图8所示,本实施例的设备包括:处理器210和存储介质220,处理器210和存储介质220之间通过总线230连接。其中,存储介质220用于存储所述处理器的可执行指令,所述可执行指令可以为计算机程序;所述处理器210配置为经由执行所述可执行指令来实现如下步骤:

  获取虚拟对象在第一时刻的第一运动位置和虚拟对象在第二时刻的第二运动位置,第二时刻是与第一时刻相邻的下一个时刻;

  建立连接于第一运动位置和第二运动位置的虚拟几何体;

  通过虚拟几何体与目标对象进行碰撞检测,以确定虚拟对象自第一运动位置移动至第二运动位置的过程中与目标对象是否发生碰撞。

  可选地,所述处理器210还配置为经由执行所述可执行指令来实现如下步骤:

  获取虚拟对象上多个目标点在第一时刻所处的第一位置和多个目标点在第二时刻所处的第二位置,其中,多个目标点是在虚拟对象的首部与尾部之间选取的目标点;

  基于第一位置和第二位置,在每组不同位置的目标点之间构建虚拟几何体,得到多个虚拟几何体。

  可选地,所述处理器210还配置为经由执行所述可执行指令来实现如下步骤:

  基于第一位置和第二位置,获取每组不同位置的目标点之间的连线,得到多个目标连线;

  分别根据目标连线构建虚拟几何体,得到多个虚拟几何体。

  可选地,所述处理器210还配置为经由执行所述可执行指令来实现如下步骤:

  在目标连线为每组不同位置的目标点之间的弧线的情况下,在目标连线上确定至少一个中间点;

  在每组不同位置的目标点和至少一个中间点中,确定任意两个相邻点之间的连线,得到多个子直线;

  根据子直线构建虚拟几何体,得到多个虚拟几何体。

  在可选的实施方式中,所述设备其进一步可以包括一个或多个处理器,以及由存储器所代表的存储器资源,用于存储可由处理组件执行的指令,例如应用程序。存储器中存储的应用程序可以包括一个或一个以上的每一个对应于一组指令的模块。此外,处理组件被配置为执行指令,以执行上述的信息处理方法。

  该设备还可以包括:一个电源组件,电源组件被配置成对执行电子设备进行电源管理;一个有线或无线网络接口,被配置成将电子设备连接到网络;以及一个输入输出(I/O)接口。该电子设备可以操作基于存储在存储器的操作系统,例如Android、iOS、Windows,Mac OS X,Unix,Linux,FreeBSD或类似。

  本领域普通技术人员可以理解,图8所示的结构仅为示意,设备可以是智能手机、平板电脑、掌上电脑以及移动互联网设备(Mobile Internet Devices,MID)、PAD等电子装置。图8其并不对上述设备的结构造成限定。例如,设备还可包括比图8中所示更多或者更少的组件(如网络接口、显示装置等),或者具有与图8所示不同的配置。

  上述本发明实施例序号仅仅为了描述,不代表实施例的优劣。

  在本发明的上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述的部分,可以参见其他实施例的相关描述。

  在本申请所提供的几个实施例中,应该理解到,所揭露的技术内容,可通过其它的方式实现。其中,以上所描述的装置实施例仅仅是示意性的,例如所述单元的划分,可以为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,单元或模块的间接耦合或通信连接,可以是电性或其它的形式。

  所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。

  另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。

  所述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可为个人计算机、服务器或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、移动硬盘、磁碟或者光盘等各种可以存储程序代码的介质。

  以上所述仅是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本发明的保护范围。

《碰撞检测方法和装置.doc》
将本文的Word文档下载到电脑,方便收藏和打印
推荐度:
点击下载文档

文档为doc格式(或pdf格式)