一种模型构件的碰撞检测方法及系统技术方案

技术编号:39180875 阅读:10 留言:0更新日期:2023-10-27 08:28
本申请实施例提供一种模型构件的碰撞检测方法及系统,涉及碰撞检测技术领域。该碰撞检测方法包括:获取待检测构件组数据,所述待检测构件组数据包括多个待检测构件;根据所述待检测构件组数据生成九维包围盒组数据,所述九维包围盒组数据包括多个九维包围盒,所述多个待检测构件与所述多个九维包围盒一一对应;对所述九维包围盒组数据进行碰撞检测,获得第一碰撞构件集数据;对所述第一碰撞构件集数据进行碰撞关系检测,获得第二碰撞构件集数据;对所述第二碰撞构件集数据进行拓扑关系检测,生成所述待检测构件组数据的碰撞检测结果。该碰撞检测方法可以实现保证碰撞检测精度的前提下,提高碰撞检测效率的技术效果。提高碰撞检测效率的技术效果。提高碰撞检测效率的技术效果。

【技术实现步骤摘要】
一种模型构件的碰撞检测方法及系统


[0001]本申请涉及碰撞检测
,具体而言,涉及一种模型构件的碰撞检测方法、系统、电子设备及计算机可读存储介质。

技术介绍

[0002]目前,建筑信息(BIM,Building Information Modeling)模型是建筑学、工程学及土木工程的新工具,BIM模型是来形容那些以三维图形为主、物件导向、建筑学有关的电脑辅助设计。
[0003]现有技术中,BIM模型一般较为复杂,构件数量大,构件中三角面片的数量庞大;在使用常规碰撞检测算法时,如果同时需要检测碰撞关系的构件数目较多,在不做优化处理的情况下算法耗时特别长;如果只使用常规三维AABB包围盒做碰撞检测,则会存在假碰撞问题,无法精确检测构件之间的碰撞关系,无法确定构件之间的拓扑关系,准确性不可靠。

技术实现思路

[0004]本申请实施例的目的在于提供一种模型构件的碰撞检测方法、系统、电子设备及计算机可读存储介质,可以实现保证碰撞检测精度的前提下,提高碰撞检测效率的技术效果。
[0005]本申请实施例提供了一种模型构件的碰撞检测方法,包括:
[0006]获取待检测构件组数据,所述待检测构件组数据包括多个待检测构件;
[0007]根据所述待检测构件组数据生成九维包围盒组数据,所述九维包围盒组数据包括多个九维包围盒,所述多个待检测构件与所述多个九维包围盒一一对应;
[0008]对所述九维包围盒组数据进行碰撞检测,获得第一碰撞构件集数据;
[0009]对所述第一碰撞构件集数据进行碰撞关系检测,获得第二碰撞构件集数据;
[0010]对所述第二碰撞构件集数据进行拓扑关系检测,生成所述待检测构件组数据的碰撞检测结果。
[0011]在上述实现过程中,该模型构件的碰撞检测方法通过将对九维包围盒组数据进行碰撞检测,使用九维包围盒作为粗略碰撞关系的筛选,从而快速筛选出有可能发生碰撞的构件关系,大大降低算法时间;对于筛选后的第一碰撞构件集数据做精确的碰撞关系计算,确定构件之间精确的碰撞关系,获得第二碰撞构件集数据;进而根据第二碰撞构件集数据做拓扑分析,计算出两个构件之间的拓扑关系,最终获得碰撞检测结果;从而,该方法可以实现保证碰撞检测精度的前提下,提高碰撞检测效率的技术效果。
[0012]进一步地,所述对所述九维包围盒组数据进行碰撞检测,获得第一碰撞构件集数据的步骤,包括:
[0013]对所述九维包围盒组数据中的多个九维包围盒进行两两配对,生成九维包围盒对数据;
[0014]遍历每个所述九维包围盒对数据并对所述九维包围盒对数据中的两个九维包围
盒进行碰撞检测,生成所述第一碰撞构件集数据,所述第一碰撞构件集数据包括任意两个所述九维包围盒之间的碰撞信息。
[0015]在上述实现过程中,对多个九维包围盒进行两两配对,从而可对任意两个九维包围盒运行碰撞检测算法,第一碰撞构件集数据包括任意两个九维包围盒之间的碰撞信息,即记录了所有待检测构件的两两之间的碰撞关系。
[0016]进一步地,所述九维包围盒对数据对应的两个所述待检测构件分别标记为第一构件和第二构件,所述对所述第一碰撞构件集数据进行碰撞关系检测,获得第二碰撞构件集数据的步骤,包括:
[0017]遍历每个所述九维包围盒对数据,并对遍历到的所述九维包围盒对数据进行如下处理:
[0018]判断所述九维包围盒对数据中的两个所述九维包围盒之间是否存在碰撞,若是,对所述第一构件和所述第二构件的每个三角面片做九维包围盒处理并进行碰撞关系检测,生成包围盒碰撞数据;根据所述包围盒碰撞数据对每个三角面片进行精确碰撞关系检测,生成精确碰撞关系数据;
[0019]根据所述精确碰撞关系数据生成所述第二碰撞构件集数据。
[0020]在上述实现过程中,对两个待检测构件的每个三角面片做九维包围盒并且计算碰撞关系,生成包围盒碰撞数据,可加快运算速度,提高碰撞关系准确性;进而根据包围盒碰撞数据对有碰撞关系的三角面片计算精确碰撞关系,精确计算构件之间的碰撞关系,生成精确碰撞关系数据;通过上述方式,兼顾碰撞检测效率和检测精度。
[0021]进一步地,所述对所述第一构件和所述第二构件的每个三角面片做九维包围盒处理并进行碰撞关系检测,生成包围盒碰撞数据的步骤,包括:
[0022]对所述第一构件的每个三角面片分别进行九维包围盒处理,生成第一包围盒数据;
[0023]对所述第二构件的每个三角面片分别进行九维包围盒处理,生成第二包围盒数据;
[0024]对所述第一构件和所述第二构件的每个三角面片进行碰撞关系检测,生成所述包围盒碰撞数据。
[0025]进一步地,所述根据所述包围盒碰撞数据对每个三角面片进行精确碰撞关系检测,生成精确碰撞关系数据的步骤,包括:
[0026]对所述包围盒碰撞数据中所述第一构件的三角面片和所述第二构件的三角面片进行两两配对,生成三角面片对数据;
[0027]遍历每个所述三角面片对数据,并对遍历到的所述三角面片对数据进行如下处理:对所述三角面片对数据进行拓扑关系检测,生成三角面片碰撞关系数据;
[0028]根据所述三角面片碰撞关系数据生成所述精确碰撞关系数据。
[0029]进一步地,所述根据所述待检测构件组数据生成九维包围盒组数据的步骤,包括:
[0030]遍历所述待检测构件组数据中的每个待检测构件,并对遍历到的所述待检测构件进行如下处理:
[0031]构建所述待检测构件构建的第一AABB包围盒数据,所述待检测构件基于预设xyz三轴坐标系生成;
[0032]构建绕所述预设xyz坐标系中的x轴旋转的旋转矩阵,将所述待检测构件绕x轴旋转预设角度,构建第二AABB包围盒数据;
[0033]构建绕所述预设xyz坐标系中的y轴旋转的旋转矩阵,将所述待检测构件绕y轴旋转预设角度,构建第三AABB包围盒数据;
[0034]构建绕所述预设xyz坐标系中的z轴旋转的旋转矩阵,将所述待检测构件绕z轴旋转预设角度,构建第四AABB包围盒数据;
[0035]根据所述第一AABB包围盒数据、所述第二AABB包围盒数据、第三AABB包围盒数据、第四AABB包围盒数据构建与所述待检测构件对应的九维包围盒;
[0036]根据遍历完成后每个所述待检测构件对应的九维包围盒生成所述九维包围盒组数据。
[0037]进一步地,在所述对所述九维包围盒组数据进行碰撞检测,获得第一碰撞构件集数据的步骤之前,所述方法还包括:
[0038]判断所述九维包围盒组数据是否进行软碰撞检测,若是则对所述九维包围盒组数据进行buffer处理。
[0039]在上述实现过程中,对九维包围盒组数据按照需求做buffer处理,从而支持待检测构件之间的软碰撞检测。
[0040]第二方面,本申请实施例提供了一种模型构件的碰撞检测系统,包括:
[0041]获取模块,用于获取待检测构件组数据,所述待检测构件组本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种模型构件的碰撞检测方法,其特征在于,包括:获取待检测构件组数据,所述待检测构件组数据包括多个待检测构件;根据所述待检测构件组数据生成九维包围盒组数据,所述九维包围盒组数据包括多个九维包围盒,所述多个待检测构件与所述多个九维包围盒一一对应;对所述九维包围盒组数据进行碰撞检测,获得第一碰撞构件集数据;对所述第一碰撞构件集数据进行碰撞关系检测,获得第二碰撞构件集数据;对所述第二碰撞构件集数据进行拓扑关系检测,生成所述待检测构件组数据的碰撞检测结果。2.根据权利要求1所述的模型构件的碰撞检测方法,其特征在于,所述对所述九维包围盒组数据进行碰撞检测,获得第一碰撞构件集数据的步骤,包括:对所述九维包围盒组数据中的多个九维包围盒进行两两配对,生成九维包围盒对数据;遍历每个所述九维包围盒对数据并对所述九维包围盒对数据中的两个九维包围盒进行碰撞检测,生成所述第一碰撞构件集数据,所述第一碰撞构件集数据包括任意两个所述九维包围盒之间的碰撞信息。3.根据权利要求2所述的模型构件的碰撞检测方法,其特征在于,所述九维包围盒对数据对应的两个所述待检测构件分别标记为第一构件和第二构件,所述对所述第一碰撞构件集数据进行碰撞关系检测,获得第二碰撞构件集数据的步骤,包括:遍历每个所述九维包围盒对数据,并对遍历到的所述九维包围盒对数据进行如下处理:判断所述九维包围盒对数据中的两个所述九维包围盒之间是否存在碰撞,若是,对所述第一构件和所述第二构件的每个三角面片做九维包围盒处理并进行碰撞关系检测,生成包围盒碰撞数据;根据所述包围盒碰撞数据对每个三角面片进行精确碰撞关系检测,生成精确碰撞关系数据;根据所述精确碰撞关系数据生成所述第二碰撞构件集数据。4.根据权利要求3所述的模型构件的碰撞检测方法,其特征在于,所述对所述第一构件和所述第二构件的每个三角面片做九维包围盒处理并进行碰撞关系检测,生成包围盒碰撞数据的步骤,包括:对所述第一构件的每个三角面片分别进行九维包围盒处理,生成第一包围盒数据;对所述第二构件的每个三角面片分别进行九维包围盒处理,生成第二包围盒数据;对所述第一构件和所述第二构件的每个三角面片进行碰撞关系检测,生成所述包围盒碰撞数据。5.根据权利要求4所述的模型构件的碰撞检测方法,其特征在于,所述根据所述包围盒碰撞数据对每个三角面片进行精确碰撞关系检测,生成精确碰撞关系数据的步骤,包括:对所述包围盒碰撞数据中所述第一构件的三角面片和所述第二构件的三角面片进行两两配对,生成三角面片对数据;遍历每个所述三角面片对数据,并对遍历到的所述三角面片对数据进行如下处理:对所述三角面...

【专利技术属性】
技术研发人员:武腾李文浩
申请(专利权)人:广东博智林机器人有限公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1