基于数字孪生的区域划分模型动态快速生成方法、设备和介质
文献发布时间:2024-04-18 19:58:30
技术领域
本发明属于图形3D建模技术领域,具体涉及一种基于数字孪生的区域划分模型动态快速生成方法、设备和介质。
背景技术
在数字孪生技术的应用场景中,对城市、园区等场景中不同区域进行划分,并通过三维模型的方式来展示各个区域评价指标的动态数据是数字化仿真的重要功能之一,因此需要对区域划分模型进行动态快速生成。
目前可用于区域划分模型动态快速生成的方法主要有两类,一类是改进三角网格生长算法,如图1所示,使用Delaunay三角网格来生成区域模型。这类算法主要通过三角网格生成过程中提高搜索第3点的效率和提高判断第3点是否符合条件的效率来提高算法的整体运行效率。包括采用正负区搜索第3点,即每次只需要在基边的另一侧搜索第3点;使用封闭点的概念在构网过程中及时剔除已经完成三角形构建的节点。但这些方法对于点集数据动态变化后网格的快速重绘并不具有较好的效率。
另一类方法主要用于零件、材料模型的网格快速生成技术,这类技术针对点数据改变后的三角网格快速重构进行了专门优化。但在数字孪生区域划分模型的应用场景中,点集数据的高程值分布范围远小于X,Y坐标值的分布范围,可对点集数据进行降维处理,因此需要一种更加适用于平面网格快速重绘的处理方法。
发明内容
针对数字孪生应用场景中点集数据动态变化较快的特点,本发明提供一种基于数字孪生的区域划分模型动态快速生成方法、设备和介质,大幅提高区域划分模型动态快速生成时的运行效率。
为实现上述技术目的,本发明采用如下技术方案:
一种基于数字孪生的区域划分模型动态快速生成方法,包括:
步骤1,获取数字孪生点集数据的真实经纬度,映射至虚幻坐标系,并降维至拟合平面;方便进一步的子网划分和凸包计算;
步骤2,将虚幻坐标系下降维后的点集数据,划分为若干矩形区域,每个矩形区域内的点集数据对应为1个网格子点集数据;
步骤3,针对每个网格子点集数据分别对应生成子区域三角网;
步骤4,对所有生成的子区域三角网进行子网合并,形成完整的三角网;
步骤5,当数字孪生点集中的某个点P的位置发生改变时,将点P和包含点P的边从完整的三角网中删除,在基于点集S
步骤6,记点P发生位置改变前所在的矩形区域为A,点P发生位置改变后为新的点P’;按步骤1的方法获取点P’在虚幻坐标系下降维后的坐标,并判断点P’是否仍在矩形区域A的凸包内部:若是,则在凸包内部针对点P’生成新的三角形,完成对矩形区域A对应的子区域三角网更新;若否,则更新凸包信息,对点P’所在的凸包与其邻接凸包重新按照步骤4进行子网合并;
步骤7,还原点集数据的高程值,生成区域划分模型。
本发明方案在点集数据发生动态改变时,对数据点新位置采用构网中心点的策略,仅对发生改变的点的相关点集范围内对三角网进行局部更新,加快区域划分模型的动态快速重绘。
进一步地,步骤1具体包括:
步骤1.1,基于数字孪生点集数据的真实经纬度,获取点集数据中点的经纬度;
步骤1.2,根据虚幻引擎原点所对应的经纬度,获取点集数据在虚幻坐标系中的绝对坐标;
步骤1.3,将点集数据中点处的地球切平面作为点集数据的拟合平面,将点集数据从虚幻坐标系映射至拟合平面,记录下各点的初始高程值,将高程值设为点集拟合平面的高程值。
进一步地,将点集数据从虚幻坐标系映射至拟合平面的表达式为:
式中:V
进一步地,步骤2中将点集数据划分为若干矩形区域,具体为:
步骤2.1,获取点集在拟合平面上的最大横坐标X
步骤2.2,将整体矩形按每个子矩形长度为X
式中:N为数字孪生点集的点数量。
进一步地,步骤3中针对网格子点集数据生成对应的子区域三角网,具体过程为:
步骤3.1,设S是划分得到的任意矩形区域内的区域网格子点集;
步骤3.2,选取S中Y值最小的点,即X值最大的点,记该点为P
步骤3.3,对S中除点P
步骤3.4,按顺序依次遍历有序点集S′中的点并加入栈顶;当遍历到点P
步骤3.5,选定凸包C上相邻两点形成的边P
步骤3.6,针对三角形P
步骤3.7,从待拓展列表中选取边,判断该边是否属于凸包C中的凸包边,若不是,则重复步骤3.5至步骤3.7,直至将所有点集加入三角网,所得三角网即为当前计算网格子点集数据对应生成的子区域三角网。
进一步地,步骤4对所有生成的子区域三角网进行子网合并,通过对每相邻两个矩形对应生成的子区域三角网分别进行合并;其中,对每相邻两个矩形对应生成的子区域三角网进行合并的具体过程为:
设待合并的两个子区域三角网的凸包分别为C
将凸包C
选取合并边界点集H
本方案在子网合并时通过确定不同子网的合并边界点集,将点集划分为待拓展边与待拓展点,按坐标顺序依次搜索加入三角网,降低了构网过程中需要比较的点集数量,提高子网合并的效率。
进一步地,步骤5中在基于点集S
步骤5.1,选定凸包C
步骤5.2,针对三角形P
步骤5.3,从待拓展列表中选取边,判断该边是否属于凸包C
进一步地,步骤6中,若点P’仍在矩形区域A的凸包内部,则在凸包内部针对点P’生成新的三角形,完成对矩形区域A对应的子区域三角网更新,其具体方法为:
步骤a1,获取矩形区域A的区域网格子点集P
步骤a2,将连接边P’P”作为初始拓展边,在区域网格子点集P
步骤a3,将连接边P’P
进一步地,步骤6中,若点P’不在矩形区域A的凸包内部,则更新凸包信息具体为:获取矩形区域A的区域网格子点集P
一种电子设备,包括存储器及处理器,所述存储器中存储有计算机程序,所述计算机程序被所述处理器执行时,使得所述处理器实现上述任一项所述的基于数字孪生的区域划分模型动态快速生成方法。
一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现上述任一项所述的基于数字孪生的区域划分模型动态快速生成方法。
有益效果
本发明主要针对数字孪生应用场景中点集数据动态变化较快的特点,相较于其他技术产品所使用的三角网格生成算法,通过初次网格生成时合理的子网凸包划分进行并行构网提高生成效率,在动态模型重绘中,将整体模型重新生成优化为子模型局部网格生成,并通过构网中心点等策略,使得在新三角网格生成时,只需要对少量原三角网格进行改变,因此大幅提高了区域划分模型动态快速生成时的运行效率。
而相较于另一类产品主要针对点集数据更加立体的模型数据快速重绘,本发明利用数字孪生区域划分模型的应用场景中,点集数据的高程值分布范围远小于X,Y坐标值的分布范围的特点,对点集数据进行拟合平面的相对坐标降维处理,有利于点集数据的快速划分与凸包计算。
附图说明
图1是现有技术生成的三角网格,其中(a)和(b)是2个不同的三角网格;
图2是本申请实施例所述方法的整体流程图;
图3是本申请实施例所述的坐标关系,其中(a)和(b)分别为虚幻坐标轴和降维平面坐标轴;
图4是本申请实施例对每相邻两个矩形对应生成的子区域三角网进行合并的流程图;
图5是本申请实施例对于新的位置点在原有凸包内部时更新三角网的流程图。
具体实施方式
下面对本发明的实施例作详细说明,本实施例以本发明的技术方案为依据开展,给出了详细的实施方式和具体的操作过程,对本发明的技术方案作进一步解释说明。
一种基于数字孪生的区域划分模型动态快速生成方法,整体流程参见图2所示,包括以下步骤:
步骤1,获取数字孪生点集数据的真实经纬度,映射至虚幻坐标系,并降维至拟合平面。具体包括:
步骤1.1,基于数字孪生点集数据的真实经纬度,获取点集数据中点的经纬度;
步骤1.2,根据虚幻引擎原点所对应的经纬度,获取点集数据在虚幻坐标系中的绝对坐标;
步骤1.3,将点集数据中点处的地球切平面作为点集数据的拟合平面,将点集数据从虚幻坐标系映射至拟合平面,记录下各点的初始高程值,将高程值设为点集拟合平面的高程值。
为了在后序步骤中加快三角网构网速度,因此本发明对数据采用降维处理,即暂时忽略点集数据的高程值,根据点集数据之间在平面内的位置关系来进行构网。
如图3所示的坐标关系,由于数字孪生应用采用在球面上进行开发,为了尽可能减少由球面转化为平面带来的数据误差,选取数据点的经纬度坐标中点所在位置,以此位置与球体的切平面作为点集数据降维处理的平面。
其中,将点集数据从虚幻坐标系映射至拟合平面的表达式为:
式中:V
步骤2,将虚幻坐标系下降维后的点集数据,划分为若干矩形区域,每个矩形区域内的点集数据对应为1个网格子点集数据。
其中将点集数据划分为若干矩形区域,具体为:
步骤2.1,获取点集在拟合平面上的最大横坐标X
步骤2.2,将整体矩形按每个子矩形长度为X
式中:N为数字孪生点集的点数量。
步骤3,针对每个网格子点集数据分别对应生成子区域三角网。
步骤3.1,设S是划分得到的任意矩形区域内的区域网格子点集;
步骤3.2,选取S中Y值最小的点,即X值最大的点,记该点为P
步骤3.3,对S中除点P
步骤3.4,按顺序依次遍历有序点集S′中的点并加入栈顶;当遍历到点P
本实施例中所述某点P
步骤3.5,选定凸包C上相邻两点形成的边P
在选择基准边时,可以任意选择凸包C上相邻两点形成的边作为基准边,一般般选择两个坐标值之和最小的点和与该点距离最近的点构成基准边。
本实施例中通过计算余弦角来比较角度大小,当cos(∠P
步骤3.6,针对三角形P
步骤3.7,从待拓展列表中选取边,判断该边是否属于凸包C中的凸包边,若不是,则重复步骤3.5至步骤3.7,直至将所有点集加入三角网,所得三角网即为当前计算网格子点集数据对应生成的子区域三角网。
步骤4,对所有生成的子区域三角网进行子网合并,具体通过对每相邻两个矩形对应生成的子区域三角网分别进行合并,形成完整的三角网。
其中,参考图4所示,对每相邻两个矩形对应生成的子区域三角网进行合并的具体过程为:
步骤4.1,设待合并的两个子区域三角网的凸包分别为C
步骤4.2,将凸包C
在该步骤4.2中,若该凸包点在整体凸包中靠近交界线L
步骤4.3,选取合并边界点集H
步骤5,当数字孪生点集中的某个点P的位置发生改变时,将点P和包含点P的边从完整的三角网中删除,在基于点集S
其中在基于点集S
步骤5.1,选定凸包C
步骤5.2,针对三角形P
步骤5.3,从待拓展列表中选取边,判断该边是否属于凸包C
步骤6,记点P发生位置改变前所在的矩形区域为A,点P发生位置改变后为新的点P’;按步骤1的方法获取点P’在虚幻坐标系下降维后的坐标,并判断点P’是否仍在矩形区域A的凸包内部:若是,则在凸包内部针对点P’生成新的三角形,完成对矩形区域A对应的子区域三角网更新;若否,则更新凸包信息,对点P’所在的凸包与其邻接凸包重新按照步骤4进行子网合并。
其中,若点P’仍在矩形区域j的凸包内部,则在凸包内部针对点P’生成新的三角形,完成对矩形区域A对应的子区域三角网更新,参考图5所示,其具体方法为:
步骤a1,获取矩形区域A的区域网格子点集P
步骤a2,将连接边P’P”作为初始拓展边,在区域网格子点集P
步骤a3,将连接边P’P
若点P’不在矩形区域A的凸包内部,则更新凸包信息具体为:获取矩形区域A的区域网格子点集P
步骤7,还原点集数据的高程值,生成区域划分模型。
以上实施例为本申请的优选实施例,本领域的普通技术人员还可以在此基础上进行各种变换或改进,在不脱离本申请总的构思的前提下,这些变换或改进都应当属于本申请要求保护的范围之内。
- 基于动态本体模型的电网设备数字孪生体构建方法及装置
- 基于动态本体模型的电网设备数字孪生体构建方法及装置