一种离散点云重复点快速查找方法技术

技术编号:28979730 阅读:14 留言:0更新日期:2021-06-23 09:26
本发明专利技术涉及一种离散点云重复点快速查找方法,通过构建离散点云所在的长方体空间,并将长方体空间切分为多个长方体空间小格;判断每个离散空间点所属长方体空间小格的编号;建立离散空间点在离散点云中的编号与在所属长方体空间小格中的排列编号的映射关系;然后,对长方体空间小格中所有离散空间点进行遍历查重,建立长方体空间小格中的空间重复点编号信息,并据此重构离散点云中的空间重复点编号信息,从而获取离散点云中的全部空间重复点编号信息。本发明专利技术将一个大的点云循环遍历问题,分割为多个小的点云循环遍历,能够快速确定空间重复点在离散点云中的编号和位置等信息,大幅降低大规模点云中重复点的查找时间、提高查找效率。

【技术实现步骤摘要】
一种离散点云重复点快速查找方法
本专利技术涉及计算力学中网格生成和网格变形,尤其涉及计算流体力学中的网格生成和网格变形领域。
技术介绍
计算流体力学CFD(ComputationalFluidDynamics)是开展流体力学机理研究的重要手段之一,在航空航天飞行器设计与性能评估中发挥着愈来愈重要的作用。CFD通过计算网格对流场空间进行离散,然后求解代数离散方程获取流动变量,如密度、压力和温度等,并沿飞行器表面积分得到飞行器整体的性能特性。因此,计算网格是开展CFD数值仿真的基础,决定着数值分析的计算精度和仿真效率,良好的计算网格不仅可以加速收敛,还可以改善预测精度。对于气动外形设计优化、非定常流动和气动弹性等外形需要发生变化的特殊问题,网格变形是开展对应数值仿真的关键技术。在网格生成和变形中,均可能遇到多个不同点集的合并和匹配问题,就需要对点集中存在的重复点进行标记和删除,以建立统一的点云集合。在实际应用过程中,多采用循环遍历的方式,逐个点进行对比,然后将相互之间重合的点进行标记。对于规模较小的点云问题,该方法能够比较快速地获得重复点的信息。但该算法的时间复杂度是点云中点数量的平方,随着点云规模的增大,重复点查找时间迅速增加,将极大地增加网格生成或变形的时间消耗,提高数值仿真的计算成本。
技术实现思路
本专利技术针对离散点云中的重复点查找问题,提出一种空间剖分的查找方法,通过将离散点云所在的长方体空间剖分为多个空间小格,然后在空间小格内查找重复点,并组装得到整个离散点云的重复点信息,将大规模离散点云重复点查找问题剖分为多个小规模离散点云重复点查找问题,降低查找的时间消耗,提高整体的查找效率。为实现上述目的,本专利技术采用如下技术方案:一种离散点云重复点快速查找方法,通过执行以下步骤实现:步骤一:建立X、Y、Z坐标系,循环遍历离散点云中的所有离散空间点,确定离散点云所在空间的边界;步骤二:构建离散点云所在的长方体空间;步骤三:将长方体空间沿X、Y、Z三个坐标方向均匀切分为多个长方体空间小格,并将长方体空间小格按排列顺序进行编号;步骤四:根据离散空间点的坐标位置判断每个离散空间点所属长方体空间小格的编号,并计算每个长方体空间小格中离散点的数量;步骤五:建立离散空间点在离散点云中的编号与在所属长方体空间小格中的排列编号的映射关系;步骤六:对长方体空间小格中所有离散空间点进行遍历查重,建立长方体空间小格中的空间重复点编号信息;步骤七:根据长方体空间小格中的空间重复点编号信息,重构离散点云中的空间重复点编号信息,从而获取离散点云中的全部空间重复点编号信息。优选的,步骤一中,循环遍历离散点云中的所有离散空间点,计算出所有离散空间点在三个坐标方向X、Y、Z的最大值和最小值Xmin、Xmax、Ymin、Ymax、Zmin、Zmax。优选的,步骤二中:首先,根据全部离散空间点三个坐标方向X、Y、Z的最大值和最小值Xmin、Xmax、Ymin、Ymax、Zmin、Zmax,构建点PC1(Xmin-dX,Ymin-dY,Zmin-dZ)和PC2(Xmax+dX,Ymax+dY,Zmax+dZ);其中,dX=ε(Xmax-Xmin)、dY=ε(Ymax-Ymin)、dZ=ε(Zmax-Zmin),ε为大于零的系数;然后,以点PC1和PC2作为角点,构建长方体空间。优选的,步骤三中:首先,根据X、Y、Z三个坐标方向切分格子的数量ni、nj、nk,确定长方体空间小格在每个方向的尺寸ΔX=(1+2ε)(Xmax-Xmin)/ni、ΔY=(1+2ε)(Ymax-Ymin)/nj、ΔZ=(1+2ε)(Zmax-Zmin)/nk,其中ni、nj、nk的值根据具体问题进行选择;然后,沿三个坐标方向将长方体空间均匀切分,离散点云所在的长方体空间共计能够切分出Nbox=ni*nj*nk个长方体空间小格;最后,将长方体空间小格按排列顺序进行编号,在X、Y、Z三个方向分别排列在第i、j、k位置的长方体空间小格的编号INDEXijk通过下式转换,其中,INDEX的变化范围为1~Nbox;INDEXijk=(k-1)*ni*nj+(j-1)*ni+i(1)优选的,步骤四中:首先,将每个长方体空间小格中的离散空间点数量初始化为零;然后,遍历离散点云中的全部离散空间点,根据离散空间点的坐标Xs、Ys、Zs,计算离散空间点所在长方体空间小格的位置编号iLoc、jLoc、kLoc,其中int(*)表示对实数*代表的数进行取整:然后,离散空间点(Xs,Ys,Zs)所在的长方体空间小格的编号的值INDEXs通过下式计算得到:INDEXs=(kLoc-1)*ni*nj+(jLoc-1)*ni+iLoc(3)最后,将编号值INDEXs记录在离散空间点(Xs,Ys,Zs)的属性中,将离散空间点(Xs,Ys,Zs)分配给编号为INDEXs的长方体空间小格,并将编号为INDEXs的长方体空间小格中离散空间点的数量Nnode累加1。优选的,步骤五中:首先,在每个长方体空间小格中定义1个计数器,并将计数器值初始化为零;然后,遍历离散点云中的每个离散空间点(Xs,Ys,Zs),根据离散空间点(Xs,Ys,Zs)所属的长方体空间小格的编号INDEXs,访问对应的长方体空间小格,将空间小格的计数器数值加1,并将计数器值对应的排列编号与离散空间点在离散点云中的编号s关联,形成关联映射关系。优选的,步骤六中:首先,根据步骤五建立的离散空间点在长方体空间小格中的排列编号与离散空间点在离散点云中的编号之间的关联映射关系,访问离散点云,获取长方体空间小格中所有离散空间点的三维坐标数据;然后,对于长方体空间小格中的第m个点Pm,遍历第1至第m-1个点,分别计算第i个遍历点Pi与第m个点Pm之间的空间距离dis;如果距离dis小于预定的阈值,表明Pm与Pi重合,将Pm标记为重复点,并将重复编号记录为i,退出遍历;如果距离dis大于预定的阈值,表明Pm与Pi不重合,遍历下一个点,直至遍历结束;最后,循环执行前面过程,直至全部长方体空间小格完成离散空间点遍历查重。优选的,步骤七中:遍历长方体空间小格中的全部离散空间点,若长方体空间小格中第m个离散空间点Pm被标记为重复点,根据步骤五中建立的关联映射关系,获取排列编号m关联映射的编号为s,将离散点云中编号为s的离散空间点Ps标记为重复点,提取点Pm的重复排列编号n,根据步骤五中建立的关联映射关系,获取排列编号n关联映射的编号为t,将离散点云中编号为t的离散空间点Pt标记为点Ps的重复点,点Ps的空间重复点编号信息记录为t;遍历全部长方体空间小格,获取离散点云中的全部空间重复点编号信息。本专利技术相对于现有技术具有如下有益效果:传统方法为对大点云进行整体遍历,本专利技术将一个大的点云循环遍历问题,分割为多个小的本文档来自技高网...

【技术保护点】
1.一种离散点云重复点快速查找方法,其特征在于通过执行以下步骤实现:/n步骤一:建立X、Y、Z坐标系,循环遍历离散点云中的所有离散空间点,确定离散点云所在空间的边界;/n步骤二:构建离散点云所在的长方体空间;/n步骤三:将长方体空间沿X、Y、Z三个坐标方向均匀切分为多个长方体空间小格,并将长方体空间小格按排列顺序进行编号;/n步骤四:根据离散空间点的坐标位置判断每个离散空间点所属长方体空间小格的编号,并计算每个长方体空间小格中离散点的数量;/n步骤五:建立离散空间点在离散点云中的编号与在所属长方体空间小格中的排列编号的映射关系;/n步骤六:对长方体空间小格中所有离散空间点进行遍历查重,建立长方体空间小格中的空间重复点编号信息;/n步骤七:根据长方体空间小格中的空间重复点编号信息,重构离散点云中的空间重复点编号信息,从而获取离散点云中的全部空间重复点编号信息。/n

【技术特征摘要】
1.一种离散点云重复点快速查找方法,其特征在于通过执行以下步骤实现:
步骤一:建立X、Y、Z坐标系,循环遍历离散点云中的所有离散空间点,确定离散点云所在空间的边界;
步骤二:构建离散点云所在的长方体空间;
步骤三:将长方体空间沿X、Y、Z三个坐标方向均匀切分为多个长方体空间小格,并将长方体空间小格按排列顺序进行编号;
步骤四:根据离散空间点的坐标位置判断每个离散空间点所属长方体空间小格的编号,并计算每个长方体空间小格中离散点的数量;
步骤五:建立离散空间点在离散点云中的编号与在所属长方体空间小格中的排列编号的映射关系;
步骤六:对长方体空间小格中所有离散空间点进行遍历查重,建立长方体空间小格中的空间重复点编号信息;
步骤七:根据长方体空间小格中的空间重复点编号信息,重构离散点云中的空间重复点编号信息,从而获取离散点云中的全部空间重复点编号信息。


2.根据权利要求1所述的离散点云重复点快速查找方法,其特征在于:
步骤一中,循环遍历离散点云中的所有离散空间点,计算出所有离散空间点在三个坐标方向X、Y、Z的最大值和最小值Xmin、Xmax、Ymin、Ymax、Zmin、Zmax。


3.根据权利要求1所述的离散点云重复点快速查找方法,其特征在于,步骤二中:
首先,根据全部离散空间点三个坐标方向X、Y、Z的最大值和最小值Xmin、Xmax、Ymin、Ymax、Zmin、Zmax,构建点PC1(Xmin-dX,Ymin-dY,Zmin-dZ)和PC2(Xmax+dX,Ymax+dY,Zmax+dZ);其中,dX=ε(Xmax-Xmin)、dY=ε(Ymax-Ymin)、dZ=ε(Zmax-Zmin),ε为大于零的系数;
然后,以点PC1和PC2作为角点,构建长方体空间。


4.根据权利要求1所述的离散点云重复点快速查找方法,其特征在于,步骤三中:
首先,根据X、Y、Z三个坐标方向切分格子的数量ni、nj、nk,确定长方体空间小格在每个方向的尺寸ΔX=(1+2ε)(Xmax-Xmin)/ni、ΔY=(1+2ε)(Ymax-Ymin)/nj、ΔZ=(1+2ε)(Zmax-Zmin)/nk,其中ni、nj、nk的值根据具体问题进行选择;
然后,沿三个坐标方向将长方体空间均匀切分,离散点云所在的长方体空间共计能够切分出Nbox=ni*nj*nk个长方体空间小格;
最后,将长方体空间小格按排列顺序进行编号,在X、Y、Z三个方向分别排列在第i、j、k位置的长方体空间小格的编号INDEXijk通过下式转换,其中,INDEX的变化范围为1~Nbox;
INDEXijk=(k-1)*ni*nj+(j-1)*ni+i(1)


5.根据权利要求1所述的离散点云重复点快...

【专利技术属性】
技术研发人员:孙岩邓学霖赵莹江盟邓彦增
申请(专利权)人:中国空气动力研究与发展中心计算空气动力研究所
类型:发明
国别省市:四川;51

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

1