CN104574517A - 三维模型的边界面网格单元的处理方法和装置 - Google Patents

三维模型的边界面网格单元的处理方法和装置 Download PDF

Info

Publication number
CN104574517A
CN104574517A CN201410815099.0A CN201410815099A CN104574517A CN 104574517 A CN104574517 A CN 104574517A CN 201410815099 A CN201410815099 A CN 201410815099A CN 104574517 A CN104574517 A CN 104574517A
Authority
CN
China
Prior art keywords
unit
node
close
packed plane
module
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.)
Granted
Application number
CN201410815099.0A
Other languages
English (en)
Other versions
CN104574517B (zh
Inventor
魏一雄
陈兴玉
张祥祥
田富君
周红桥
胡祥涛
张红旗
苏建军
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
CETC 38 Research Institute
Original Assignee
CETC 38 Research Institute
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by CETC 38 Research Institute filed Critical CETC 38 Research Institute
Priority to CN201410815099.0A priority Critical patent/CN104574517B/zh
Publication of CN104574517A publication Critical patent/CN104574517A/zh
Application granted granted Critical
Publication of CN104574517B publication Critical patent/CN104574517B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T17/00Three dimensional [3D] modelling, e.g. data description of 3D objects
    • G06T17/30Polynomial surface description

Abstract

本发明公开了一种三维模型的边界面网格单元的处理方法和装置。其中,该处理方法包括:查找边界网格单元数据中的密集边,并基于密集边确定第一密集面;对第一密集面的网格数据进行密集边处理,得到第二密集面;判断第二密集面上的为尖锐单元的第一单元是否具有与其邻接的为尖锐单元的第二单元;若否,按照第一单元的类型对第一单元进行位姿调整操作,得到第三密集面;若是,对第一单元和第二单元的区域进行重构操作,得到第三密集面。通过本发明,解决了现有技术中得到高质量的三维模型中网格的方法耗时长、效率低的问题,实现了快速高效地调整边界网格单元的质量的效果。

Description

三维模型的边界面网格单元的处理方法和装置
技术领域
本发明涉及数据处理领域,具体而言,涉及一种三维模型的边界面网格单元的处理方法和装置。
背景技术
ACIS是目前广泛使用的几何驱动引擎和图形系统开发平台,现有很多大型商业软件,如AutoCAD、Solidwork、Rhio等均采用了ACIS作为图形开发的内核。由于现在CAD/CAE集成一体化技术不断发展,在同一平台内部进行几何建模和仿真分析成为越来越多人研究的方向。ACIS本身具有三维网格单元划分功能,适用于边界元法、无网格法等分析计算的数据源。但对于造型复杂,曲面特征较多的模块,ACIS的划分方法容易产生较多的尖锐单元、密集边分布等质量较差情况,较大程度上会影响数值分析计算结果精度。
近年来,随着计算机技术的飞速发展,CAD/CAE功能得到不断完善,但二者之间的融合技术依然未有重大突破。一直以来,很多学者致力于研究CAD/CAE一体化建模,在CAE中集成部分CAD建模功能。但由于数值分析的前处理及计算效率问题,这种集成并没有真正实现建模和分析的同步。传统的有限元法分析中,前处理占据整个有限元处理时间的40%~45%,其中,网格剖分消耗了大部分时间。同时,准确数值计算通常通过牺牲计算时间来获得好的结果,而高质量的网格单元能起到较大的帮助作用。因此,提高网格剖分效率及质量以及加速数值计算是解决CAD和CAE融合难题的关键。
针对不同的环境和要求,近年来出现了多种网格剖分算法。主流的算法包含有映射法、拓扑分解法、波前法,栅格法等。但没有任何算法只通过一次剖分就可以能得到高质量的网格单元。
目前,优化网格质量的方法分为两种类型:1)一类是通过插入、删除节点或局部节点重置改变网格的拓扑结构;2)另一类是在不改变拓扑信息前提下,通过计算所有节点最优位置,纠正形状不规整单元,使之达到理想的形状提升网格质量。实际应用中,使用较多的是第一种类型算法。此类方法大都针对于局部规划、尺寸调整、单元面积优化等要求。虽然此类优化算法但在处理大规模的数据时,能节约大量的计算时间,但算法本身可靠性较差,优化结果波动较大。最早出现且使用最广泛的此类算法是Laplace算法,主要是将节点调整到与之邻接的所有节点中间位置。后来出现了评价函数最优法等算法。上述方法执行需要消耗大量时间,效率较低。
针对现有技术中得到高质量的三维模型中网格的方法耗时长、效率低的问题,目前尚未提出有效的解决方案。
发明内容
本发明的主要目的在于提供一种三维模型的边界面网格单元的处理方法和装置,以解决得到高质量的三维模型中网格的方法耗时长、效率低的问题。
为了实现上述目的,根据本发明实施例的一个方面,提供了一种三维模型的边界面网格单元的处理方法。
根据本发明的方法包括:查找边界网格单元数据中的密集边,并基于密集边确定第一密集面;对第一密集面的网格数据进行密集边处理,得到第二密集面;判断第二密集面上的为尖锐单元的第一单元是否具有与其邻接的为尖锐单元的第二单元,其中,尖锐单元为至少有一个内角的角度小于预设角度值的三角形单元;若第二密集面上的为尖锐单元的第一单元不具有与其邻接的为尖锐单元的第二单元,按照第一单元的类型对第一单元进行位姿调整操作,得到第三密集面;若第二密集面上的为尖锐单元的第一单元具有与其邻接的为尖锐单元的第二单元,对第一单元和第二单元的区域进行重构操作,得到第三密集面。
进一步地,查找边界网格单元数据中的密集边,并基于密集边确定第一密集面包括:计算网格单元数据的面信息中每条边任意两个节点间的平均距离;按照从大到小的顺序对平均距离进行排序,得到距离序列;依序计算距离序列中两两平均距离之间的比值,若比值大于第一预设阈值,则检测出距离序列中两两平均距离中排序在后的边为密集边;若面信息所指示的面为平面,且平面的非密集边长度与密集边长度之比小于第二预设阈值,则确定平面为第一密集面。
进一步地,对第一密集面的网格数据进行密集边处理,得到第二密集面包括:对第一密集面的密集边进行稀疏处理得到处理后的第四密集面,其中,对第一密集面的密集边进行稀疏处理包括:获取第一密集面的密集边的映射点数量o和第一密集面的密集边的节点数量k;删除密集边中下标非为l·n-l+1的节点,得到第四密集面,l=0,1,2…,n=k/o;获取第四密集面的密集边点集合ω={μ1,μ2,…,μp},依次从密集边点集合中取μi、μi+1以及第一密集面的密集边的密集边的映射点集合中的节点ζi(i=1,2,3…),构造第三单元,得到第二密集面,其中,i<p。
进一步地,对第一单元和第二单元的区域进行重构操作,得到第三密集面包括:获取与第二单元邻接的第四单元;若第i四单元为尖锐单元,则将第四单元记录为第一单元,直至第四单元不为尖锐单元;获取第一单元、第二单元和第四单元构成的图形的最外层节点的节点数据;调用多边形网格剖析算法对节点数据所包围的多边形区域进行网格重构处理,得到第三密集面。
进一步地,按照第一单元的类型对第一单元进行位姿调整操作,得到第三密集面包括:判断第一单元中内角角度小于预设角度值的内角个数;若内角个数为1,则判断出第一单元为狭长三角形单元,判断狭长三角形单元的三个顶点是否均在第二密集面的边界上,其中,三个顶点包括第一节点、第二节点和第三节点,其中,第一节点的角度小于预设角度值。若狭长三角形单元的三个顶点未均在第二密集面的边界上,且第二节点和第三节点均具有四个邻接单元,比较第二节点和第三节点对应狭长三角形单元的第一角度和第二角度;若第一角度大于第二角度,则获取四个邻接单元的五个节点,删除五个节点中的第三节点,按照逆序生成第五单元和第六单元,得到第三密集面,其中,第五单元的顶点包括第一节点、第二节点和五个节点中的第四节点,第六单元的顶点包括第二节点、第四节点和五个节点中的第五节点,五个节点包括第一节点、第二节点、第三节点、第四节点和第五节点。若狭长三角形单元的三个顶点未均在第二密集面的边界上,且第二节点或第三节点具有四个邻接单元,获取四个邻接单元的五个节点,删除五个节点中具有四个邻接单元的第三节点,按照逆序生成第五单元和第六单元,得到第三密集面,其中,第五单元的顶点包括第一节点、第二节点和五个节点中的第四节点,第六单元的顶点包括第二节点、第四节点和五个节点中的第五节点,五个节点包括第一节点、第二节点、第三节点、第四节点和第五节点。若狭长三角形单元的三个顶点均在第二密集面的边界上,则获取第二节点与第三节点的共同的共面邻接单元,获取共面邻接单元的第四节点,按照逆序生成第五单元和第六单元,得到第三密集面,其中,共面邻接单元的顶点包括:第二节点、第三节点和第四节点,第五单元为共面邻接单元,第六单元的顶点包括:第一节点、第二节点和第四节点。若内角个数为2,则判断出第一单元为扁平三角形单元,获取扁平三角形单元的第一节点、第二节点和第三节点,其中,第一节点和第二节点的角度小于预设角度值。判断第一节点和第二节点是否均在第二密集面的边界上;若第一节点和第二节点不同时在第二密集面的边界上,则获取第一节点与第三节点的共同的共面邻接单元,获取共面邻接单元的第四节点,按照逆序生成第五单元和第六单元,得到第三密集面,其中,共面邻接单元的顶点包括:第一节点、第三节点和第四节点,第五单元为共面邻接单元,第六单元的顶点包括:第二节点、第三节点和第四节点。若第一节点和第二节点同时在第二密集面的边界上,则计算第三节点的共面邻接单元的数量。若共面邻接单元的数量为1,则获取共面邻接单元的第四节点,按照逆序生成第五单元和第六单元,得到第三密集面,其中,共面邻接单元的顶点包括:第一节点、第三节点和第四节点,第五单元为共面邻接单元,第六单元的顶点包括:第二节点、第三节点和第四节点。若共面邻接单元的数量为3,则获取三个共面邻接单元的四个节点,将三个共面邻接单元的并集作为第五单元,得到第三密集面,其中,三个共面邻接单元的四个节点包括:第一节点、第二节点、第三节点和第四节点,第五单元的顶点包括第一节点、第二节点和第四节点。若共面邻接单元的数量为4,则获取四个共面邻接单元的四个节点,其中,四个节点包括:四个共面邻接单元的并集组成的图形的四个顶点,四个顶点包括:第一节点、第二节点、第四节点和第五节点。比较第四节点的第一角度与第五节点的第二角度;从第一角度与第二角度之间大的角度对应的节点引出对角线,重新划分四个共面邻接单元的并集组成的图形,得到第五单元和第六单元,得到第三密集面。
为了实现上述目的,根据本发明实施例的另一方面,提供了一种三维模型的边界面网格单元的处理装置。
根据本发明的装置包括:查找模块,用于查找边界网格单元数据中的密集边,并基于密集边确定第一密集面;密集边处理模块,用于对第一密集面的网格数据进行密集边处理,得到第二密集面;第一判断模块,用于判断第二密集面上的为尖锐单元的第一单元是否具有与其邻接的为尖锐单元的第二单元,其中,尖锐单元为至少有一个内角的角度小于预设角度值的三角形单元;位姿调整模块,用于若第二密集面上的为尖锐单元的第一单元不具有与其邻接的为尖锐单元的第二单元,按照第一单元的类型对第一单元进行位姿调整操作,得到第三密集面;重构处理模块,用于若第二密集面上的为尖锐单元的第一单元具有与其邻接的为尖锐单元的第二单元,对第一单元和第二单元的区域进行重构操作,得到第三密集面。
进一步地,查找模块包括:第一计算模块,用于计算网格单元数据的面信息中每条边任意两个节点间的平均距离;排序模块,用于按照从大到小的顺序对平均距离进行排序,得到距离序列;第一检测模块,用于依序计算距离序列中两两平均距离之间的比值,若比值大于第一预设阈值,则检测出距离序列中两两平均距离中排序在后的边为密集边;第一确定模块,用于若面信息所指示的面为平面,且平面的非密集边长度与密集边长度之比小于第二预设阈值,则确定平面为第一密集面。
进一步地,密集边处理模块包括:稀疏处理模块,用于对第一密集面的密集边进行稀疏处理得到处理后的第四密集面,其中,对第一密集面的密集边进行稀疏处理包括:获取第一密集面的密集边的映射点数量o和第一密集面的密集边的节点数量k;删除密集边中下标非为l·n-l+1的节点,得到第四密集面,l=0,1,2…,n=k/o;单元构造模块,用于获取第四密集面的密集边点集合ω={μ1,μ2,…,μp},依次从密集边点集合中取μi、μi+1以及第一密集面的密集边的密集边的映射点集合中的节点ζi(i=1,2,3…),构造第三单元,得到第二密集面,其中,i<p。
进一步地,重构处理模块包括:第一获取模块,用于获取与第二单元邻接的第四单元;记录模块,用于若第四单元为尖锐单元,则将第四单元记录为第一单元,直至第四单元不为尖锐单元;第二获取模块,用于获取第一单元、第二单元和第四单元构成的图形的最外层节点的节点数据;重构子模块,用于调用多边形网格剖析算法对节点数据所包围的多边形区域进行网格重构处理,得到第三密集面。
进一步地,位姿调整模块包括:第二判断模块,用于判断第一单元中内角角度小于预设角度值的内角个数;第三判断模块,用于若内角个数为1,则判断出第一单元为狭长三角形单元,判断狭长三角形单元的三个顶点是否均在第二密集面的边界上,其中,三个顶点包括第一节点、第二节点和第三节点,其中,第一节点的角度小于预设角度值。第一单元处理模块,用于若狭长三角形单元的三个顶点未均在第二密集面的边界上,且第二节点和第三节点均具有四个邻接单元,比较第二节点和第三节点对应狭长三角形单元的第一角度和第二角度;若第一角度大于第二角度,则获取四个邻接单元的五个节点,删除五个节点中的第三节点,按照逆序生成第五单元和第六单元,得到第三密集面,其中,第五单元的顶点包括第一节点、第二节点和五个节点中的第四节点,第六单元的顶点包括第二节点、第四节点和五个节点中的第五节点,五个节点包括第一节点、第二节点、第三节点、第四节点和第五节点。第二单元处理模块,用于若狭长三角形单元的三个顶点未均在第二密集面的边界上,且第二节点或第三节点具有四个邻接单元,获取四个邻接单元的五个节点,删除五个节点中具有四个邻接单元的第三节点,按照逆序生成第五单元和第六单元,得到第三密集面,其中,第五单元的顶点包括第一节点、第二节点和五个节点中的第四节点,第六单元的顶点包括第二节点、第四节点和五个节点中的第五节点,五个节点包括第一节点、第二节点、第三节点、第四节点和第五节点。
第三单元处理模块,用于若狭长三角形单元的三个顶点均在第二密集面的边界上,则获取第二节点与第三节点的共同的共面邻接单元,获取共面邻接单元的第四节点,按照逆序生成第五单元和第六单元,得到第三密集面,其中,共面邻接单元的顶点包括:第二节点、第三节点和第四节点,第五单元为共面邻接单元,第六单元的顶点包括:第一节点、第二节点和第四节点。
第四单元处理模块,用于若内角个数为2,则判断出第一单元为扁平三角形单元,获取扁平三角形单元的第一节点、第二节点和第三节点,其中,第一节点和第二节点的角度小于预设角度值。第四判断模块,用于判断第一节点和第二节点是否均在第二密集面的边界上;第五单元处理模块,用于若第一节点和第二节点不同时在第二密集面的边界上,则获取第一节点与第三节点的共同的共面邻接单元,获取共面邻接单元的第四节点,按照逆序生成第五单元和第六单元,得到第三密集面,其中,共面邻接单元的顶点包括:第一节点、第三节点和第四节点,第五单元为共面邻接单元,第六单元的顶点包括:第二节点、第三节点和第四节点。第二计算模块,用于若第一节点和第二节点同时在第二密集面的边界上,则计算第三节点的共面邻接单元的数量。第六单元处理模块,用于若共面邻接单元的数量为1,则获取共面邻接单元的第四节点,按照逆序生成第五单元和第六单元,得到第三密集面,其中,共面邻接单元的顶点包括:第一节点、第三节点和第四节点,第五单元为共面邻接单元,第六单元的顶点包括:第二节点、第三节点和第四节点。第七单元处理模块,用于若共面邻接单元的数量为3,则获取三个共面邻接单元的四个节点,将三个共面邻接单元的并集作为第五单元,得到第三密集面,其中,三个共面邻接单元的四个节点包括:第一节点、第二节点、第三节点和第四节点,第五单元的顶点包括第一节点、第二节点和第四节点。第八单元处理模块,用于若共面邻接单元的数量为4,则获取四个共面邻接单元的四个节点,其中,四个节点包括:四个共面邻接单元的并集组成的图形的四个顶点,四个顶点包括:第一节点、第二节点、第四节点和第五节点。比较模块,用于比较第四节点的第一角度与第五节点的第二角度;第九单元处理模块,用于从第一角度与第二角度之间大的角度对应的节点引出对角线,重新划分四个共面邻接单元的并集组成的图形,得到第五单元和第六单元,得到第三密集面。
根据发明实施例,可以在尽量保留原始拓扑信息、不牺牲优化效率的前提下,将边界离散网格单元质量较差单元(密集面的尖锐单元)进行特征化区分,针对不同类型采用不同的高效优化方法,完成全部网格单元的质量调整任务,从而通过局部光顺的手段得到高质量的网格单元。通过本发明实施例,解决了现有技术中得到高质量的三维模型中网格的方法耗时长、效率低的问题,实现了快速高效地调整边界网格单元的质量的效果。
附图说明
构成本申请的一部分的附图用来提供对本发明的进一步理解,本发明的示意性实施例及其说明用于解释本发明,并不构成对本发明的不当限定。在附图中:
图1是根据本发明实施例的三维模型的边界面网格单元的处理方法的流程图;
图2是根据本发明实施例的第一种可选的三维模型的边界面网格单元的处理方法的流程图;
图3是根据本发明实施例的三维模型的平面和曲面连接处节点分布类型和密集边的示意图;
图4是根据本发明实施例的第二种可选的三维模型的边界面网格单元的处理方法的流程图;
图5是根据本发明实施例的三维模型的尖锐单元的延拓示意图;
图6是根据本发明实施例的第三种可选的三维模型的边界面网格单元的处理方法的流程图;
图7是根据本发明实施例的第四种可选的三维模型的边界面网格单元的处理方法的流程图;
图8是根据本发明实施例的尖锐单元的分类的示意图;
图9是根据本发明实施例的三维模型的边界面网格单元的处理前后的对比图;以及
图10是根据本发明实施例的三维模型的边界面网格单元的处理装置的示意图。
具体实施方式
需要说明的是,在不冲突的情况下,本申请中的实施例及实施例中的特征可以相互组合。下面将参考附图并结合实施例来详细说明本发明。
为了使本技术领域的人员更好地理解本发明方案,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分的实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都应当属于本发明保护的范围。
需要说明的是,本发明的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本发明的实施例。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。
本发明实施例提供了一种三维模型的边界面网格单元的处理方法。
图1是根据本发明实施例的三维模型的边界面网格单元的处理方法的流程图。如图1所示,该方法包括步骤如下:
步骤S102:查找边界网格单元数据中的密集边,并基于密集边确定第一密集面;
步骤S104:对第一密集面的网格数据进行密集边处理,得到第二密集面;
步骤S106:判断第二密集面上的为尖锐单元的第一单元是否具有与其邻接的为尖锐单元的第二单元,其中,尖锐单元为至少有一个内角的角度小于预设角度值的三角形单元;
步骤S108:若第二密集面上的为尖锐单元的第一单元不具有与其邻接的为尖锐单元的第二单元,按照第一单元的类型对第一单元进行位姿调整操作,得到第三密集面;
步骤S110:若第二密集面上的为尖锐单元的第一单元具有与其邻接的为尖锐单元的第二单元,对第一单元和第二单元的区域进行重构操作,得到第三密集面。
采用本发明实施例,对三维模型的边界网格单元数据进行处理,并且在处理过程中,先确定密集面,对密集面进行密集边处理,然后判断第二密集面上的为尖锐单元的第一单元是否具有与其邻接的为尖锐单元的第二单元,也即判断第二密集面上的尖锐单元是否为独立的,若第二密集面上的尖锐单元可以连成一个区域,则对该区域执行重构操作;若第二密集面上的尖锐单元为单个的单元,则针对其的类型对其进行位姿操作。通过上述实施例,可以在尽量保留原始拓扑信息、不牺牲优化效率的前提下,将边界离散网格单元质量较差单元(密集面的尖锐单元)进行特征化区分,针对不同类型采用不同的高效优化方法,完成全部网格单元的质量调整任务,从而通过局部光顺的手段得到高质量的网格单元。通过本发明实施例,解决了现有技术中得到高质量的三维模型中网格的方法耗时长、效率低的问题,实现了快速高效地调整边界网格单元的质量的效果。
其中,上述实施例中的尖锐单元η:指三角形单元内角中有至少有一个角度小于预设角度值(如20度)。可选地,尖锐三角形单元分为两类:狭长三角形单元η1和扁平三角形单元η2,狭长三角形单元有一个内角的角度小于预设角度值,扁平三角形单元有两个内角的角度小于预设角度值。
下面结合附图2详细介绍本发明实施例,如图2所示,本发明实施例可以通过如下步骤实现:
步骤S202:调用图形系统开发平台的面模块。
具体地,可以调用图形系统开发平台的面模块得到边界网格单元数据。
步骤S204:查找边界网格单元数据中的密集边,并确定密集面。
具体地,可以查找边界网格单元数据中的密集边,并确定密集面用密集边处理算法,对曲面上的密集边m进行判断,改善辐射狭长单元质量。
步骤S206:判断第二密集面上的为尖锐单元的第一单元是否为单个尖锐单元。
其中,若是,则执行步骤S208;若否,则执行步骤S210。
通过该步骤可以判断出第一单元是否具有与其邻接的为尖锐单元的第二单元。
步骤S208:针对每个面上的单个尖锐单元η,对不同类型的单个尖锐单元调用不同方法进行逐个位姿调整操作。
具体地,可以研究第一单元的内角特点及尖锐节点位置将之分为六类,对不同类型的单个尖锐单元调用不同方法进行逐个位姿调整操作。
步骤S210:通过尖锐单元节点的不断延拓操作,构建尖锐单元集中区域,并将此区域进行网格单元重新离散。
在上述实施例中,优化过程迭代次数少,优化效率较高,给出了非常灵活的网格单元质量调整方案,解决了各类边界网格单元离散可能出现的问题。
根据本发明的上述实施例,查找边界网格单元数据中的密集边,并基于密集边确定第一密集面可以包括:计算网格单元数据的面信息中每条边任意两个节点间的平均距离;按照从大到小的顺序对平均距离进行排序,得到距离序列;依序计算距离序列中两两平均距离之间的比值,若比值大于第一预设阈值,则检测出距离序列中两两平均距离中排序在后的边为密集边;若面信息所指示的面为平面,且平面的非密集边长度与密集边长度之比小于第二预设阈值,则确定平面为第一密集面。
其中,密集边m:边上顺序两两节点间的平均距离与其他边对应的平均距离相差第一预设阈值(如,2)以上时,此边称为密集边。表示非密集边,面上的密集边集合М={m1,m2,…,mt},t表示密集边数量;密集面Τ:含有密集边的曲面,或者 <第二预设阈值(如1.5)的平面(L(m)表示边的长度),这样的面被称为密集面。
在本发明的上述实施例中,对第一密集面的网格数据进行密集边处理,得到第二密集面可以包括:对第一密集面的密集边进行稀疏处理得到处理后的第四密集面,其中,对第一密集面的密集边进行稀疏处理包括:获取第一密集面的密集边的映射点数量o和第一密集面的密集边的节点数量k;删除密集边中下标非为l·n-l+1的节点,得到第四密集面,l=0,1,2…,n=k/o;获取第四密集面的密集边点集合ω={μ1,μ2,…,μp},依次从密集边点集合中取μi、μi+1以及第一密集面的密集边的密集边的映射点集合φ中的节点ζi(i=1,2,3…),构造第三单元,得到第二密集面,其中,i<p。
其中,密集边点μ:密集边上的节点,ω={μ1,μ2,…,μk},k表示密集边上节点数目;密集边稀疏将ω若干个节点删除,使得边上的节点稀疏化,包含有两种方式:其一,若是辐射狭长单元重构,设y=o,x=k,x/y=n。只保留下标为l·n-l+1(l=0,1,2…)的点,其他节点删除;其二,若是整个面所有密集边同时稀疏,则删除所有下标为偶数的节点;辐射狭长单元重构Ψ:辐射狭长单元是指在边界上,由于密集边的存在,导致边界单元为狭长单元,且呈现由密集边映射点向密集边辐射状。Ψ实现的是,消除边界上呈辐射状的局部狭长单元。具体方法:调用函数f,得到新的ω={μ1,μ2,…,μp}(p表示密集边新的节点数),依次取μi,μi+1以及集合Φ={ζ1,ζ2,…,ζo}中的节点ζi(i=1,2,3…),构造新的单元,其中i<p。;密集边映射点ζ:依次取密集边上的两个节点,这两个节点所在的某一特定边上的三角形单元有第三个节点n,则称此n点为密集边映射点,Φ={ζ1,ζ2,…,ζo},o表示ζ数量;延拓f:按照逆时针顺序求出节点所邻接的非已经存在的同一面上的所有单元数据,Ψ={χ1,χ2,…,χs},s表示得到的单元数,χ表示单元数据信息。
在上述实施例中,利用密集边处理算法,对曲面上的密集边m进行判断,改善辐射狭长单元质量。具体地,当一条边连接的分别是平面和曲面时,其上的节点分布会有两种情况:Type I,此边是密集边,曲面的网格划分较为细致;平面内部网格单元较为均匀,但边界处单元有突变,由此,边界处易形成向外扩散状辐射狭长三角形单元。Type II,此边是非密集边,但由于邻边是密集边,使得内部节点单元分布密集,靠近此边处单元分布稀疏,即有向内扩散状辐射狭长三角形单元,如图3所示的Type I和Type II,以及密集边m和非密集边
通过本发明的上述实施例,依次取密集边上的两个节点,这两个节点所在的某一特定边上的三角形单元有第三个节点n,则称此n点为密集边映射点,Φ={ζ1,ζ2,…,ζo}。将含有密集边的曲面,或者非密集边长度和密集边长度之比小于1.5的平面称为密集面Τ。
然后对第一密集面上的密集边进行密集边的稀疏处理得到第四密集面,即:将密集边若干个节点删除,使得边上的节点稀疏化。其中包含有两种方式:其一,若是辐射狭长单元重构,设y=o,x=k,x/y=n,只保留下标为l·n-l+1(l=0,1,2…)的点,其他节点删除;其二,若是整个面所有密集边同时稀疏,则删除所有下标为偶数的节点。
可选地,在上述实施例中,可以获取第四密集面上的各个单元的邻接单元,得到新的密集边点集合ω={μ1,μ2,…,μp},依次取μi,μi+1以及集合Φ中的节点ζi(i=1,2,3…),构造新的单元,其中i<p。
下面结合附图4详细介绍本发明实施例,如图4所示,该方案可以通过如下步骤实现:
步骤S401:读取面的信息。
在本发明实施例中,从实体的第一个面开始循环。
步骤S402:计算每条边节点间的平均长度,并将之按照从大到小的顺序排列。
步骤S403:依次计算两两平均长度之间的比值,判断比值是否大于第一预设阈值。
若比值大于第一预设阈值(如2),则排序在后的平均长度对应的边为密集边;若所有的比值均不大于第一预设阈值,则执行步骤S404:判断出此面M集合为空。
步骤S405:将密集边m的信息添加至向量M中。
其中,М={m1,m2,…,mt}。
步骤S406:判断此面是否为曲面。
若是,则执行步骤S407;若否,执行步骤S408。
步骤S407:获取此面所有边的信息,将所有节点依次添加到向量中,构造出多边形P。
通过该步骤可以将面上原来的单元添加到向量E中。
步骤S409:根据构造的多边形信息,重新剖分网格单元,并将得到的单元与节点信息加入系统中。
步骤S408:判断非密集边长度与密集边长度之间的比值是否小于第二预设阈值。
具体地,判断非密集边的长度i与密集边的长度j之间的比值k是否小于第二预设阈值(如1.5)。
若否,则执行步骤S407;若是,则执行步骤S410。
步骤S410:循环查找密集边M的节点,查找{ζ1,ζ2,…,ζo},存入向量Q。
步骤S411:设置密集边M的节点数为p,密集边映射点数量为q,p/q=y;将M上第i个节点与第i+y-1个节点和{ζ1,ζ2,…,ζo}上的第l个节点构成第l个单元。
具体地,设置密集边M的节点数为p,密集边映射点数量为q,p/q=y;将M上第i(i从零开始)个节点与第i+y-1个节点和{ζ1,ζ2,…,ζo}上的第l(l从零开始)个节点构成第l个单元。
步骤S412:m=i+y-1,n=l+1,判断n是否大于等于q。
若是,执行步骤S413;若否,执行步骤S414。
步骤S413:将M上第i个节点与第p个节点和{ζ1,ζ2,…,ζo}上的第q个节点构成第m个单元(即上述实施例中的第三单元)。
步骤S414:i=m;l=n。
步骤S415:此面处理完毕,指向下一个面。
根据本发明的上述实施例,对第一单元和第二单元的区域进行重构操作,得到第三密集面可以包括:获取与第二单元邻接的第四单元;若第四单元为尖锐单元,则将第四单元记录为第一单元,直至第四单元不为尖锐单元;获取第一单元、第二单元和第四单元构成的图形的最外层节点的节点数据;调用多边形网格剖析算法对节点数据所包围的多边形区域进行网格重构处理,得到第三密集面。
通过上述实施例,可以检查网格单元数据,重构面上尖锐单元集中区域。具体地,对网格数据进行密集边处理后得到分布比较均匀的网格单元数据以及节点数据,统称为二级数据。二级数据较原始数据有很大改进,但可能包含有密集边处理算法未涉及并处理的尖锐单元,如果这些单元分布比较集中,我们通过构造局部多边形区域,并进行局部节点重新计算布置,从而消除尖锐单元。
需要将进一步地说明的是,在于尖锐单元局部区域的搜索和确定。此区域的选择有要注意两点:(1)保证所有集中区域单元都包含;(2)尖锐单元集中区域和外部区域形成隔离层,以防重置节点位置时对外部区域产生影响。
当前单元与目标单元在同一面上,称为为共面邻接单元α;否则为异面邻接单元β。S={α1,α2,…i,β1,β2,…βj}。S(x)表示节点x邻接单元数;α(x)表示节点共面邻接单元数;β(x)表示节点异面邻接单元数。对于为尖锐单元的第一单元的三个节点,按照逆时针顺序求出节点所邻接的非已经存在的同一面上的所有单元数据,Ψ={χ1,χ2,…,χs},s表示得到的单元数,χ表示单元数据信息。分别判定这些单元是否为尖锐单元,如果是则继续对此单元节点的邻接单元进行判定,直至所有邻接单元均不是尖锐单元(如图5所示),将最终得到的所有单元最外面的节点存入PG_Vertex,并对此节点数据集所包围的区域重新进行离散网格单元操作。
下面结合图6详细介绍本发明上述实施例,如图6所示,该实施例可以通过如下步骤实现:
步骤S601:扫描到第二密集面的第一单元是尖锐单元。
步骤S602:判断第一单元是否具有为尖锐单元的第二单元。
若是,则执行图2中的步骤S208,针对每个面上的单个尖锐单元η,对不同类型的单个尖锐单元调用不同方法进行逐个位姿调整操作;若否,则执行步骤S603。
步骤S603:沿着每一个尖锐单元向外层延拓。
其中,延拓f:按照逆时针顺序求出节点所邻接的非已经存在的同一面上的所有单元数据,Ψ={χ1,χ2,…,χs},s表示得到的单元数,χ表示单元数据信息。
步骤S604:检查所得到的外层单元,查看是否有尖锐单元η。
若有,则执行步骤S603;若无,则执行步骤S605。
步骤S605:将得到图形最外层节点存入向量PG_vertex1。
步骤S606:沿着向量中节点调用f。
步骤S607:检查此层中是否有尖锐单元η。
若是,则执行步骤S608;若否,则执行步骤S611。
步骤S608:沿着η方向调用f。
步骤S609:将新得到的外层单元的外部节点插入PG_vertex1。
步骤S610:判断调用f得到的单元中是否有η。
若是,则执行步骤S608;若否,则执行步骤S611。
步骤S611:将向量PG_vertex1中的节点两两相连,得到所需多边形结构。
步骤S612:在此多边形内重新划分网格,得到新的单元网格和节点数据。
步骤S613:判断下一个单元为空。
若是,则结束;若否,则执行步骤S601。
具体地,由η节点调用f,得Ψ={χ1,χ2,…,χs}。可选地,由得到的η1或η2节点调用f,得到新的Ψ集合。循环迭代,直到新的Ψ集合中没有η1或η2存在,将此时Ψ的外层节点加入向量PG_Vertex1向量中。(如图5中在L1线条上的节点,在图5中的1至40的单元均判断为尖锐单元,L1和L2围成的区域即为上述的第一单元、第二单元和第四单元构成的图形,L3为终止线,且图5中还示出了插入PG_vertex1的示意节点)。
在上述实施例中,沿着PG_Vertex1中的节点,调用f,得到的节点插入PG_vertex1中,直至无法检索到尖锐单元,然后用PG_vertex的数据构造多边形,删除多边形内部单元及节点数据,调用多边形网格剖分算法得到新的数据。
在本发明的上述实施例中,按照第一单元的类型对第一单元进行位姿调整操作,得到第三密集面可以包括:判断第一单元中内角角度小于预设角度值的内角个数;若内角个数为1,则判断出第一单元为狭长三角形单元,判断狭长三角形单元的三个顶点是否均在第二密集面的边界上,其中,三个顶点包括第一节点、第二节点和第三节点,其中,第一节点的角度小于预设角度值。若狭长三角形单元的三个顶点未均在第二密集面的边界上,且第二节点和第三节点均具有四个邻接单元,比较第二节点和第三节点对应狭长三角形单元的第一角度和第二角度,若第一角度大于第二角度,则获取四个邻接单元的五个节点,删除五个节点中的第三节点,按照逆序生成第五单元和第六单元,其中,第五单元的顶点包括第一节点、第二节点和五个节点中的第四节点,第六单元的顶点包括第二节点、第四节点和五个节点中的第五节点。若狭长三角形单元的三个顶点未均在第二密集面的边界上,且第二节点或第三节点具有四个邻接单元,获取四个邻接单元的五个节点,删除五个节点中具有四个邻接单元的第三节点,按照逆序生成第五单元和第六单元,其中,第五单元的顶点包括第一节点、第二节点和五个节点中的第四节点,第六单元的顶点包括第二节点、第四节点和五个节点中的第五节点;若狭长三角形单元的三个顶点均在第二密集面的边界上,则获取第二节点与第三节点的共同的共面邻接单元,获取共面邻接单元的第四节点,按照逆序生成第五单元和第六单元,其中,共面邻接单元的顶点包括:第二节点、第三节点和第四节点,第五单元为共面邻接单元,第六单元的顶点包括:第一节点、第二节点和第四节点。若内角个数为2,则判断出第一单元为扁平三角形单元,获取扁平三角形单元的第一节点、第二节点和第三节点,其中,第一节点和第二节点的的角度小于预设角度值。判断第一节点和第二节点是否均在第二密集面的边界上。若第一节点和第二节点不同时在第二密集面的边界上,则获取第一节点与第三节点的共同的共面邻接单元,获取共面邻接单元的第四节点,按照逆序生成第五单元和第六单元,其中,共面邻接单元的顶点包括:第一节点、第三节点和第四节点,第五单元为共面邻接单元,第六单元的顶点包括:第二节点、第三节点和第四节点。若第一节点和第二节点同时在第二密集面的边界上,则计算第三节点的共面邻接单元的数量;若共面邻接单元的数量为1,则获取共面邻接单元的第四节点,按照逆序生成第五单元和第六单元,其中,共面邻接单元的顶点包括:第一节点、第三节点和第四节点,第五单元为共面邻接单元,第六单元的顶点包括:第二节点、第三节点和第四节点。若共面邻接单元的数量为3,则获取三个共面邻接单元的四个节点,将三个共面邻接单元的并集作为第五单元,其中,三个共面邻接单元的四个节点包括:第一节点、第二节点、第三节点和第四节点,第五单元的顶点包括第一节点、第二节点和第四节点。若共面邻接单元的数量为4,则获取四个共面邻接单元的四个节点,其中,四个节点包括:四个共面邻接单元的并集组成的图形的四个顶点,四个顶点包括:第一节点、第二节点、第四节点和第五节点。比较第四节点的第一角度与第五节点的第二角度。从第一角度与第二角度之间大的角度对应的节点引出对角线,重新划分四个共面邻接单元的并集组成的图形,得到第五单元和第六单元。
通过本发明上述实施例,可以针对每个曲面上的单个尖锐单元η调用单个尖锐单元进行逐个位姿调整操作。
当检测完所有尖锐单元集中区域后,可能仍有若干孤立分布的尖锐单元存在,这时就需要调用单个尖锐单元的优化算法。对单个单元的优化主要方法分为两种:i.单元的合并。也就是将若干个和此尖锐单元邻接的单元与此单元合并为少量几个非尖锐单元。ii.改变对角线方向。即找到尖锐单元的某一个邻接单元,并与之构成四边形,改变对角线方向,从而构成两个新的单元。为了保证优化之后的单元节点编号为逆时针,同时考虑到在同一面上进行优化时,可能触碰到边界的问题,此步骤将尖锐单元类型划分为六类,SE_1~SE_6(如图8所示),针对节点位置、邻接单元特点及内角大小分别采取不同处理方法。这里需要注意,如果每次优化过程都经过一次预判断,如果更改后的结构比原单元结构质量差(新结构最小内角比原结构最小内角小),那么将不会更改原结构,直接指向下一尖锐单元。
下面结合图7和图8详细介绍本发明。如图7和图8所示,该方法可以通过如下步骤实现:
步骤S701:判断第一单元的类型是否为狭长三角形单元。
若第一单元为狭长三角形单元η1,则执行步骤S702;若第一单元为扁平三角形单元η2,则执行步骤S703。
狭长三角形单元的三个顶点包括第一节点S、第二节点P1和第三节点P2,其中,第一节点S的角度小于预设角度值;η1的节点逆序排列:S,P1,P2。
扁平三角形单元的三个顶点包括第一节点S1、第二节点S2和第三节点P,其中,第一节点S1和第二节点S2的角度小于预设角度值,η2的节点逆序排列:S1,S2,P。
在本发明实施例中的扁平三角形单元的节点与狭长三角形单元的节点的对应关系为:S1=P2,S2=S,P=P1。
步骤S702:判断η1的三个节点是否都在边界上。
若是,则执行步骤S703;若否,则执行步骤S704。
步骤S703:判断P1(或P2)和S在边界上。
若是,则执行步骤S705:寻找共面邻接单元;若否,则执行步骤S706和步骤S707。
具体地,判断S(P1)=4或S(P2)=4,也即,判断第二节点和第三节点是否具有四个共面邻接单元,若S(P1)=4且S(P2)=4,则比较T[P1]和T[P2]的大小,保留角度大的角顶点,如图8所示的SE_1、SE_2,若T[P1]大,则执行步骤S706;若T[P2]大则执行步骤S707。
可选地,若,S(P1)=4或S(P2)=4,则邻接四个单元的节点将被删除,同时保证单元节点逆序。
步骤S704:使用第一方法进行位姿调整。
具体地,第一方法为:GNE E1:S2,P,NP0;GNE E2:NP0,P,S1。
其中的E1和E2分别为新的单元,对应上述实施例为第五单元和第六单元。
步骤S706:使用第二方法进行位姿调整。
具体地,第二方法为:GNE E1:S,NP0,P2;GNE E2:NP0,NP1,P2;DOE E3;DOE E4;DON P1。其中,NP0为第四节点,NP1为第五节点。
步骤S707:使用第三方法进行位姿调整。
具体地,GNE E1:S,P1,NP0,GNE E2:NP0,P1,NP1;DOE E3,DOE E4;DON P2。
步骤S708:判断S1和S2是否均在边界上。
若是,则执行步骤S710;若否,则执行步骤S704。
步骤S710:获取节点的同面的邻接单元。
步骤S711:计算P节点的共面邻接单元数。
其中,共面邻接单元数α(S)={α1,α2,…αi}。
若共面邻接单元数为1(i=1),则执行步骤S704;若共面邻接单元数为3(i=3),则执行步骤S711;若共面邻接单元数为4(i=4),则执行步骤S712。
步骤S711:使用第四方法进行位姿调整。
具体地,第四方法为:GNE E1:NP0,S1,S2;DOE E2,DOE E3;DON P。
步骤S712:判断T[NP0]是否大于T[NP1]。
若是,执行步骤S713;若否执行步骤S714。
步骤S713:使用第五方法进行位姿调整。
具体地,第五方法为:GNE E1:NP0,S1,NP1;GNE E2:NP1,S1,S2;DOEE3,DOE E4;DON P。
步骤S714:使用第六方法进行位姿调整。
具体地,第六方法为:GNE E1:NP1,NP0,S2;GNE E2:NP0,S1,S2;DOEE3;DOE E4;DON P。
在上述实施例中,若i=1,单元E=α(P1)∩α(P2),E和η重新构造新的单元。如图8的SE_3所示;若i=3,新单元E=α1∪α2∪α3,如图8的SE_4所示;若i=4,四边形Y=α1∪α2∪α3∪α4,判断T[NP0]和T[NP1]大小,从大角度对应的顶点引出一条对角线,划分新单元,如图8的SE_5、SE_6所示。
在本发明上述实施例中,生成新单元之前,必须比较新生成的单元质量(单元最小角度与原单元最小角度比较);上述的节点x对应的角度表示为T[x];GNE用于表示利用三个节点按照逆序生成新的单元;DOE用于表示删除单元;DON用于表示删除节点。
如图9所示的椭圆和圆形标记中的尖锐单元的质量,经过本发明的处理有了明显的提高表1中示出了边界网格单元质量调整方法对比数据。
表1
本发明实施例还提供了一种三维模型的边界面网格单元的处理装置。需要说明的是,本发明实施例的三维模型的边界面网格单元的处理装置可以用于执行本发明实施例所提供的三维模型的边界面网格单元的处理方法,本发明实施例的三维模型的边界面网格单元的处理方法也可以通过本发明实施例所提供的三维模型的边界面网格单元的处理装置来执行。
如图10所示,该装置可以包括:查找模块10、密集边处理模块30、第一判断模块50、位姿调整模块70以及重构处理模块90。
其中,查找模块用于查找边界网格单元数据中的密集边,并基于密集边确定第一密集面;密集边处理模块用于对第一密集面的网格数据进行密集边处理,得到第二密集面;第一判断模块用于判断第二密集面上的为尖锐单元的第一单元是否具有与其邻接的为尖锐单元的第二单元,其中,尖锐单元为至少有一个内角的角度小于预设角度值的三角形单元;位姿调整模块用于若第二密集面上的为尖锐单元的第一单元不具有与其邻接的为尖锐单元的第二单元,按照第一单元的类型对第一单元进行位姿调整操作,得到第三密集面;重构处理模块,用于若第二密集面上的为尖锐单元的第一单元具有与其邻接的为尖锐单元的第二单元,对第一单元和第二单元的区域进行重构操作,得到第三密集面。
采用本发明实施例,对三维模型的边界网格单元数据进行处理,并且在处理过程中,先确定密集面,对密集面进行密集边处理,然后判断第二密集面上的为尖锐单元的第一单元是否具有与其邻接的为尖锐单元的第二单元,也即判断第二密集面上的尖锐单元是否为独立的,若第二密集面上的尖锐单元可以连成一个区域,则对该区域执行重构操作;若第二密集面上的尖锐单元为单个的单元,则针对其的类型对其进行位姿操作。通过上述实施例,可以在尽量保留原始拓扑信息、不牺牲优化效率的前提下,将边界离散网格单元质量较差单元(密集面的尖锐单元)进行特征化区分,针对不同类型采用不同的高效优化方法,完成全部网格单元的质量调整任务,从而通过局部光顺的手段得到高质量的网格单元。通过本发明实施例,解决了现有技术中得到高质量的三维模型中网格的方法耗时长、效率低的问题,实现了快速高效地调整边界网格单元的质量的效果。
其中,上述实施例中的尖锐单元η:指三角形单元内角中有至少有一个角度小于预设角度值(如20度)。可选地,尖锐三角形单元分为两类:狭长三角形单元η1和扁平三角形单元η2,狭长三角形单元有一个内角的角度小于预设角度值,扁平三角形单元有两个内角的角度小于预设角度值。
在上述实施例中,优化过程迭代次数少,优化效率较高,给出了非常灵活的网格单元质量调整方案,解决了各类边界网格单元离散可能出现的问题。
根据本发明的上述实施例,查找模块可以包括:第一计算模块,用于计算网格单元数据的面信息中每条边任意两个节点间的平均距离;排序模块,用于按照从大到小的顺序对平均距离进行排序,得到距离序列;第一检测模块,用于依序计算距离序列中两两平均距离之间的比值,若比值大于第一预设阈值,则检测出距离序列中两两平均距离中排序在后的边为密集边;第一确定模块,用于若面信息所指示的面为平面,且平面的非密集边长度与密集边长度之比小于第二预设阈值,则确定平面为第一密集面。
在本发明的上述实施例中,密集边处理模块可以包括:稀疏处理模块,用于对第一密集面的密集边进行稀疏处理得到处理后的第四密集面,其中,对第一密集面的密集边进行稀疏处理包括:获取第一密集面的密集边的映射点数量o和第一密集面的密集边的节点数量k;删除密集边中下标非为l·n-l+1的节点,得到第四密集面,l=0,1,2…,n=k/o;单元构造模块,用于获取第四密集面的密集边点集合ω={μ1,μ2,…,μp},依次从密集边点集合中取μi、μi+1以及第一密集面的密集边的密集边的映射点集合φ中的节点ζi(i=1,2,3…),构造第三单元,得到第二密集面,其中,i<p。
在上述实施例中,利用密集边处理算法,对曲面上的密集边m进行判断,改善辐射狭长单元质量。具体地,当一条边连接的分别是平面和曲面时,其上的节点分布会有两种情况:Type I,此边是密集边,曲面的网格划分较为细致;平面内部网格单元较为均匀,但边界处单元有突变,由此,边界处易形成向外扩散状辐射狭长三角形单元。Type II,此边是非密集边,但由于邻边是密集边,使得内部节点单元分布密集,靠近此边处单元分布稀疏,即有向内扩散状辐射狭长三角形单元,如图3所示的Type I和Type II,以及密集边m和非密集边
通过本发明的上述实施例,依次取密集边上的两个节点,这两个节点所在的某一特定边上的三角形单元有第三个节点n,则称此n点为密集边映射点,Φ={ζ1,ζ2,…,ζo}。将含有密集边的曲面,或者非密集边长度和密集边长度之比小于1.5的平面称为密集面Τ。
然后对第一密集面上的密集边进行密集边的稀疏处理得到第四密集面,即:将密集边若干个节点删除,使得边上的节点稀疏化。其中包含有两种方式:其一,若是辐射狭长单元重构,设y=o,x=k,x/y=n,只保留下标为l·n-l+1(l=0,1,2…)的点,其他节点删除;其二,若是整个面所有密集边同时稀疏,则删除所有下标为偶数的节点。
可选地,在上述实施例中,可以获取第四密集面上的各个单元的邻接单元,得到新的密集边点集合ω={μ1,μ2,…,μp},依次取μi,μi+1以及集合Φ中的节点ζi(i=1,2,3…),构造新的单元,其中i<p。
根据本发明的上述实施例,重构处理模块可以包括:第一获取模块,用于获取与第二单元邻接的第四单元;记录模块,用于若第四单元为尖锐单元,则将第四单元记录为第一单元,直至第四单元不为尖锐单元;第二获取模块,用于获取第一单元、第二单元和第四单元构成的图形的最外层节点的节点数据;重构子模块,用于调用多边形网格剖析算法对节点数据所包围的多边形区域进行网格重构处理,得到第三密集面。
通过上述实施例,可以检查网格单元数据,重构面上尖锐单元集中区域。具体地,对网格数据进行密集边处理后得到分布比较均匀的网格单元数据以及节点数据,统称为二级数据。二级数据较原始数据有很大改进,但可能包含有密集边处理算法未涉及并处理的尖锐单元,如果这些单元分布比较集中,我们通过构造局部多边形区域,并进行局部节点重新计算布置,从而消除尖锐单元。
根据本发明的上述实施例,位姿调整模块可以包括:第二判断模块,用于判断第一单元中内角角度小于预设角度值的内角个数;第三判断模块,用于若内角个数为1,则判断出第一单元为狭长三角形单元,判断狭长三角形单元的三个顶点是否均在第二密集面的边界上,其中,三个顶点包括第一节点、第二节点和第三节点,其中,第一节点的角度小于预设角度值。第一单元处理模块,用于若狭长三角形单元的三个顶点未均在第二密集面的边界上,且第二节点和第三节点均具有四个邻接单元,比较第二节点和第三节点对应狭长三角形单元的第一角度和第二角度;若第一角度大于第二角度,则获取四个邻接单元的五个节点,删除五个节点中的第三节点,按照逆序生成第五单元和第六单元,得到第三密集面,其中,第五单元的顶点包括第一节点、第二节点和五个节点中的第四节点,第六单元的顶点包括第二节点、第四节点和五个节点中的第五节点,五个节点包括第一节点、第二节点、第三节点、第四节点和第五节点。二单元处理模块,用于若狭长三角形单元的三个顶点未均在第二密集面的边界上,且第二节点或第三节点具有四个邻接单元,获取四个邻接单元的五个节点,删除五个节点中具有四个邻接单元的第三节点,按照逆序生成第五单元和第六单元,得到第三密集面,其中,第五单元的顶点包括第一节点、第二节点和五个节点中的第四节点,第六单元的顶点包括第二节点、第四节点和五个节点中的第五节点,五个节点包括第一节点、第二节点、第三节点、第四节点和第五节点。第三单元处理模块,用于若狭长三角形单元的三个顶点均在第二密集面的边界上,则获取第二节点与第三节点的共同的共面邻接单元,获取共面邻接单元的第四节点,按照逆序生成第五单元和第六单元,得到第三密集面,其中,共面邻接单元的顶点包括:第二节点、第三节点和第四节点,第五单元为共面邻接单元,第六单元的顶点包括:第一节点、第二节点和第四节点。第四单元处理模块,用于若内角个数为2,则判断出第一单元为扁平三角形单元,获取扁平三角形单元的第一节点、第二节点和第三节点,其中,第一节点和第二节点的角度小于预设角度值。第四判断模块,用于判断第一节点和第二节点是否均在第二密集面的边界上。第五单元处理模块,用于若第一节点和第二节点不同时在第二密集面的边界上,则获取第一节点与第三节点的共同的共面邻接单元,获取共面邻接单元的第四节点,按照逆序生成第五单元和第六单元,得到第三密集面,其中,共面邻接单元的顶点包括:第一节点、第三节点和第四节点,第五单元为共面邻接单元,第六单元的顶点包括:第二节点、第三节点和第四节点。第二计算模块,用于若第一节点和第二节点同时在第二密集面的边界上,则计算第三节点的共面邻接单元的数量。第六单元处理模块,用于若共面邻接单元的数量为1,则获取共面邻接单元的第四节点,按照逆序生成第五单元和第六单元,得到第三密集面,其中,共面邻接单元的顶点包括:第一节点、第三节点和第四节点,第五单元为共面邻接单元,第六单元的顶点包括:第二节点、第三节点和第四节点。第七单元处理模块,用于若共面邻接单元的数量为3,则获取三个共面邻接单元的四个节点,将三个共面邻接单元的并集作为第五单元,得到第三密集面,其中,三个共面邻接单元的四个节点包括:第一节点、第二节点、第三节点和第四节点,第五单元的顶点包括第一节点、第二节点和第四节点。第八单元处理模块,用于若共面邻接单元的数量为4,则获取四个共面邻接单元的四个节点,其中,四个节点包括:四个共面邻接单元的并集组成的图形的四个顶点,四个顶点包括:第一节点、第二节点、第四节点和第五节点。比较模块,用于比较第四节点的第一角度与第五节点的第二角度。第九单元处理模块,用于从第一角度与第二角度之间大的角度对应的节点引出对角线,重新划分四个共面邻接单元的并集组成的图形,得到第五单元和第六单元,得到第三密集面。
通过本发明上述实施例,可以针对每个曲面上的单个尖锐单元η调用单个尖锐单元进行逐个位姿调整操作。
当检测完所有尖锐单元集中区域后,可能仍有若干孤立分布的尖锐单元存在,这时就需要调用单个尖锐单元的优化算法。对单个单元的优化主要方法分为两种:i.单元的合并。也就是将若干个和此尖锐单元邻接的单元与此单元合并为少量几个非尖锐单元。ii.改变对角线方向。即找到尖锐单元的某一个邻接单元,并与之构成四边形,改变对角线方向,从而构成两个新的单元。为了保证优化之后的单元节点编号为逆时针,同时考虑到在同一面上进行优化时,可能触碰到边界的问题,此步骤将尖锐单元类型划分为六类,SE_1~SE_6(如图8所示),针对节点位置、邻接单元特点及内角大小分别采取不同处理方法。这里需要注意,如果每次优化过程都经过一次预判断,如果更改后的结构比原单元结构质量差(新结构最小内角比原结构最小内角小),那么将不会更改原结构,直接指向下一尖锐单元。
本实施例中所提供的各个模块与方法实施例对应步骤所提供的使用方法相同、应用场景也可以相同。当然,需要注意的是,上述模块涉及的方案可以不限于上述实施例中的内容和场景,且上述模块可以运行在计算机终端或移动终端,可以通过软件或硬件实现。
从以上的描述中,可以看出,本发明实现了如下技术效果:
通过上述实施例,可以在尽量保留原始拓扑信息、不牺牲优化效率的前提下,将边界离散网格单元质量较差单元(密集面的尖锐单元)进行特征化区分,针对不同类型采用不同的高效优化方法,完成全部网格单元的质量调整任务,从而通过局部光顺的手段得到高质量的网格单元。通过本发明实施例,解决了现有技术中得到高质量的三维模型中网格的方法耗时长、效率低的问题,实现了快速高效地调整边界网格单元的质量的效果。
显然,本领域的技术人员应该明白,上述的本发明的各模块或各步骤可以用通用的计算装置来实现,它们可以集中在单个的计算装置上,或者分布在多个计算装置所组成的网络上,可选地,它们可以用计算装置可执行的程序代码来实现,从而,可以将它们存储在存储装置中由计算装置来执行,或者将它们分别制作成各个集成电路模块,或者将它们中的多个模块或步骤制作成单个集成电路模块来实现。这样,本发明不限制于任何特定的硬件和软件结合。
在上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述的部分,可以参见其他实施例的相关描述。
以上所述仅为本发明的优选实施例而已,并不用于限制本发明,对于本领域的技术人员来说,本发明可以有各种更改和变化。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。

Claims (10)

1.一种三维模型的边界面网格单元的处理方法,其特征在于,包括:
查找边界网格单元数据中的密集边,并基于所述密集边确定第一密集面;
对所述第一密集面的网格数据进行密集边处理,得到第二密集面;
判断所述第二密集面上的为尖锐单元的第一单元是否具有与其邻接的为尖锐单元的第二单元,其中,所述尖锐单元为至少有一个内角的角度小于预设角度值的三角形单元;
若所述第二密集面上的为所述尖锐单元的第一单元不具有与其邻接的为所述尖锐单元的所述第二单元,按照所述第一单元的类型对所述第一单元进行位姿调整操作,得到第三密集面;
若所述第二密集面上的为所述尖锐单元的第一单元具有与其邻接的为所述尖锐单元的所述第二单元,对所述第一单元和所述第二单元的区域进行重构操作,得到所述第三密集面。
2.根据权利要求1所述的处理方法,其特征在于,查找边界网格单元数据中的密集边,并基于所述密集边确定第一密集面包括:
计算所述网格单元数据的面信息中每条边任意两个节点间的平均距离;
按照从大到小的顺序对所述平均距离进行排序,得到距离序列;
依序计算所述距离序列中两两平均距离之间的比值,若所述比值大于第一预设阈值,则检测出所述距离序列中两两平均距离中排序在后的边为所述密集边;
若所述面信息所指示的面为平面,且所述平面的非密集边长度与密集边长度之比小于第二预设阈值,则确定所述平面为所述第一密集面。
3.根据权利要求1或2所述的处理方法,其特征在于,对所述第一密集面的网格数据进行密集边处理,得到第二密集面包括:
对所述第一密集面的密集边进行稀疏处理得到处理后的第四密集面,其中,对所述第一密集面的密集边进行稀疏处理包括:获取所述第一密集面的密集边的映射点数量o和所述第一密集面的密集边的节点数量k;删除所述密集边中下标非为l·n-l+1的节点,得到所述第四密集面,所述l=0,1,2…,所述n=k/o;
获取所述第四密集面的密集边点集合ω={μ1,μ2,…,μp},依次从密集边点集合中取μi、μi+1以及所述第一密集面的密集边的密集边的映射点集合中的节点ζi(i=1,2,3…),构造第三单元,得到所述第二密集面,其中,i<p。
4.根据权利要求1所述的处理方法,其特征在于,对所述第一单元和所述第二单元的区域进行重构操作,得到所述第三密集面包括:
获取与所述第二单元邻接的第四单元;
若所述第i四单元为所述尖锐单元,则将所述第四单元记录为所述第一单元,直至所述第四单元不为所述尖锐单元;
获取所述第一单元、所述第二单元和所述第四单元构成的图形的最外层节点的节点数据;
调用多边形网格剖析算法对所述节点数据所包围的多边形区域进行网格重构处理,得到所述第三密集面。
5.根据权利要求1所述的处理方法,其特征在于,按照所述第一单元的类型对所述第一单元进行位姿调整操作,得到第三密集面包括:
判断所述第一单元中内角角度小于所述预设角度值的内角个数;
若所述内角个数为1,则判断出所述第一单元为狭长三角形单元,判断所述狭长三角形单元的三个顶点是否均在所述第二密集面的边界上,其中,所述三个顶点包括第一节点、第二节点和第三节点,其中,所述第一节点的角度小于所述预设角度值;
若所述狭长三角形单元的三个顶点未均在所述第二密集面的边界上,且所述第二节点和所述第三节点均具有四个邻接单元,比较所述第二节点和第三节点对应所述狭长三角形单元的第一角度和第二角度;若所述第一角度大于所述第二角度,则获取所述四个邻接单元的五个节点,删除所述五个节点中的所述第三节点,按照逆序生成第五单元和第六单元,得到所述第三密集面,其中,所述第五单元的顶点包括所述第一节点、所述第二节点和所述五个节点中的第四节点,所述第六单元的顶点包括所述第二节点、所述第四节点和所述五个节点中的第五节点,所述五个节点包括所述第一节点、所述第二节点、所述第三节点、所述第四节点和所述第五节点;
若所述狭长三角形单元的三个顶点未均在所述第二密集面的边界上,且所述第二节点或所述第三节点具有四个邻接单元,获取所述四个邻接单元的五个节点,删除所述五个节点中具有所述四个邻接单元的所述第三节点,按照逆序生成第五单元和第六单元,得到所述第三密集面,其中,所述第五单元的顶点包括所述第一节点、所述第二节点和所述五个节点中的第四节点,所述第六单元的顶点包括所述第二节点、所述第四节点和所述五个节点中的第五节点,所述五个节点包括所述第一节点、所述第二节点、所述第三节点、所述第四节点和所述第五节点;
若所述狭长三角形单元的三个顶点均在所述第二密集面的边界上,则获取所述第二节点与所述第三节点的共同的共面邻接单元,获取所述共面邻接单元的第四节点,按照逆序生成所述第五单元和所述第六单元,得到所述第三密集面,其中,所述共面邻接单元的顶点包括:所述第二节点、所述第三节点和所述第四节点,所述第五单元为所述共面邻接单元,所述第六单元的顶点包括:所述第一节点、所述第二节点和所述第四节点;
若所述内角个数为2,则判断出所述第一单元为扁平三角形单元,获取所述扁平三角形单元的第一节点、第二节点和第三节点,其中,所述第一节点和所述第二节点的角度小于所述预设角度值;
判断所述第一节点和所述第二节点是否均在所述第二密集面的边界上;
若所述第一节点和所述第二节点不同时在所述第二密集面的边界上,则获取所述第一节点与所述第三节点的共同的共面邻接单元,获取所述共面邻接单元的第四节点,按照逆序生成所述第五单元和所述第六单元,得到所述第三密集面,其中,所述共面邻接单元的顶点包括:所述第一节点、所述第三节点和所述第四节点,所述第五单元为所述共面邻接单元,所述第六单元的顶点包括:所述第二节点、所述第三节点和所述第四节点;
若所述第一节点和所述第二节点同时在所述第二密集面的边界上,则计算所述第三节点的共面邻接单元的数量;
若所述共面邻接单元的数量为1,则获取所述共面邻接单元的第四节点,按照逆序生成所述第五单元和所述第六单元,得到所述第三密集面,其中,所述共面邻接单元的顶点包括:所述第一节点、所述第三节点和所述第四节点,所述第五单元为所述共面邻接单元,所述第六单元的顶点包括:所述第二节点、所述第三节点和所述第四节点;
若所述共面邻接单元的数量为3,则获取三个共面邻接单元的四个节点,将所述三个共面邻接单元的并集作为所述第五单元,得到所述第三密集面,其中,所述三个共面邻接单元的四个节点包括:所述第一节点、所述第二节点、所述第三节点和第四节点,第五单元的顶点包括所述第一节点、所述第二节点和所述第四节点;
若所述共面邻接单元的数量为4,则获取四个共面邻接单元的四个节点,其中,所述四个节点包括:所述四个共面邻接单元的并集组成的图形的四个顶点,所述四个顶点包括:所述第一节点、所述第二节点、第四节点和第五节点;
比较所述第四节点的第一角度与所述第五节点的第二角度;
从所述第一角度与所述第二角度之间大的角度对应的节点引出对角线,重新划分所述四个共面邻接单元的并集组成的图形,得到所述第五单元和所述第六单元,得到所述第三密集面。
6.一种三维模型的边界面网格单元的处理装置,其特征在于,包括:
查找模块,用于查找边界网格单元数据中的密集边,并基于所述密集边确定第一密集面;
密集边处理模块,用于对所述第一密集面的网格数据进行密集边处理,得到第二密集面;
第一判断模块,用于判断所述第二密集面上的为尖锐单元的第一单元是否具有与其邻接的为尖锐单元的第二单元,其中,所述尖锐单元为至少有一个内角的角度小于预设角度值的三角形单元;
位姿调整模块,用于若所述第二密集面上的为所述尖锐单元的第一单元不具有与其邻接的为所述尖锐单元的所述第二单元,按照所述第一单元的类型对所述第一单元进行位姿调整操作,得到第三密集面;
重构处理模块,用于若所述第二密集面上的为所述尖锐单元的第一单元具有与其邻接的为所述尖锐单元的所述第二单元,对所述第一单元和所述第二单元的区域进行重构操作,得到所述第三密集面。
7.根据权利要求6所述的处理装置,其特征在于,所述查找模块包括:
第一计算模块,用于计算所述网格单元数据的面信息中每条边任意两个节点间的平均距离;
排序模块,用于按照从大到小的顺序对所述平均距离进行排序,得到距离序列;
第一检测模块,用于依序计算所述距离序列中两两平均距离之间的比值,若所述比值大于第一预设阈值,则检测出所述距离序列中两两平均距离中排序在后的边为所述密集边;
第一确定模块,用于若所述面信息所指示的面为平面,且所述平面的非密集边长度与密集边长度之比小于第二预设阈值,则确定所述平面为所述第一密集面。
8.根据权利要求6或7所述的处理装置,其特征在于,所述密集边处理模块包括:
稀疏处理模块,用于对所述第一密集面的密集边进行稀疏处理得到处理后的第四密集面,其中,对所述第一密集面的密集边进行稀疏处理包括:获取所述第一密集面的密集边的映射点数量o和所述第一密集面的密集边的节点数量k;删除所述密集边中下标非为l·n-l+1的节点,得到所述第四密集面,所述l=0,1,2…,所述n=k/o;
单元构造模块,用于获取所述第四密集面的密集边点集合ω={μ1,μ2,…,μp},依次从密集边点集合中取μi、μi+1以及所述第一密集面的密集边的密集边的映射点集合中的节点ζi(i=1,2,3…),构造第三单元,得到所述第二密集面,其中,i<p。
9.根据权利要求6所述的处理装置,其特征在于,所述重构处理模块包括:
第一获取模块,用于获取与所述第二单元邻接的第四单元;
记录模块,用于若所述第四单元为所述尖锐单元,则将所述第四单元记录为所述第一单元,直至所述第四单元不为所述尖锐单元;
第二获取模块,用于获取所述第一单元、所述第二单元和所述第四单元构成的图形的最外层节点的节点数据;
重构子模块,用于调用多边形网格剖析算法对所述节点数据所包围的多边形区域进行网格重构处理,得到所述第三密集面。
10.根据权利要求6所述的处理装置,其特征在于,所述位姿调整模块包括:
第二判断模块,用于判断所述第一单元中内角角度小于所述预设角度值的内角个数;
第三判断模块,用于若所述内角个数为1,则判断出所述第一单元为狭长三角形单元,判断所述狭长三角形单元的三个顶点是否均在所述第二密集面的边界上,其中,所述三个顶点包括第一节点、第二节点和第三节点,其中,所述第一节点的角度小于所述预设角度值;
第一单元处理模块,用于若所述狭长三角形单元的三个顶点未均在所述第二密集面的边界上,且所述第二节点和所述第三节点均具有四个邻接单元,比较所述第二节点和第三节点对应所述狭长三角形单元的第一角度和第二角度;若所述第一角度大于所述第二角度,则获取所述四个邻接单元的五个节点,删除所述五个节点中的所述第三节点,按照逆序生成第五单元和第六单元,得到所述第三密集面,其中,所述第五单元的顶点包括所述第一节点、所述第二节点和所述五个节点中的第四节点,所述第六单元的顶点包括所述第二节点、所述第四节点和所述五个节点中的第五节点,所述五个节点包括所述第一节点、所述第二节点、所述第三节点、所述第四节点和所述第五节点;
第二单元处理模块,用于若所述狭长三角形单元的三个顶点未均在所述第二密集面的边界上,且所述第二节点或所述第三节点具有四个邻接单元,获取所述四个邻接单元的五个节点,删除所述五个节点中具有所述四个邻接单元的所述第三节点,按照逆序生成第五单元和第六单元,得到所述第三密集面,其中,所述第五单元的顶点包括所述第一节点、所述第二节点和所述五个节点中的第四节点,所述第六单元的顶点包括所述第二节点、所述第四节点和所述五个节点中的第五节点,所述五个节点包括所述第一节点、所述第二节点、所述第三节点、所述第四节点和所述第五节点;
第三单元处理模块,用于若所述狭长三角形单元的三个顶点均在所述第二密集面的边界上,则获取所述第二节点与所述第三节点的共同的共面邻接单元,获取所述共面邻接单元的第四节点,按照逆序生成所述第五单元和所述第六单元,得到所述第三密集面,其中,所述共面邻接单元的顶点包括:所述第二节点、所述第三节点和所述第四节点,所述第五单元为所述共面邻接单元,所述第六单元的顶点包括:所述第一节点、所述第二节点和所述第四节点;
第四单元处理模块,用于若所述内角个数为2,则判断出所述第一单元为扁平三角形单元,获取所述扁平三角形单元的第一节点、第二节点和第三节点,其中,所述第一节点和所述第二节点的角度小于所述预设角度值;
第四判断模块,用于判断所述第一节点和所述第二节点是否均在所述第二密集面的边界上;
第五单元处理模块,用于若所述第一节点和所述第二节点不同时在所述第二密集面的边界上,则获取所述第一节点与所述第三节点的共同的共面邻接单元,获取所述共面邻接单元的第四节点,按照逆序生成所述第五单元和所述第六单元,得到所述第三密集面,其中,所述共面邻接单元的顶点包括:所述第一节点、所述第三节点和所述第四节点,所述第五单元为所述共面邻接单元,所述第六单元的顶点包括:所述第二节点、所述第三节点和所述第四节点;
第二计算模块,用于若所述第一节点和所述第二节点同时在所述第二密集面的边界上,则计算所述第三节点的共面邻接单元的数量;
第六单元处理模块,用于若所述共面邻接单元的数量为1,则获取所述共面邻接单元的第四节点,按照逆序生成所述第五单元和所述第六单元,得到所述第三密集面,其中,所述共面邻接单元的顶点包括:所述第一节点、所述第三节点和所述第四节点,所述第五单元为所述共面邻接单元,所述第六单元的顶点包括:所述第二节点、所述第三节点和所述第四节点;
第七单元处理模块,用于若所述共面邻接单元的数量为3,则获取三个共面邻接单元的四个节点,将所述三个共面邻接单元的并集作为所述第五单元,得到所述第三密集面,其中,所述三个共面邻接单元的四个节点包括:所述第一节点、所述第二节点、所述第三节点和第四节点,第五单元的顶点包括所述第一节点、所述第二节点和所述第四节点;
第八单元处理模块,用于若所述共面邻接单元的数量为4,则获取四个共面邻接单元的四个节点,其中,所述四个节点包括:所述四个共面邻接单元的并集组成的图形的四个顶点,所述四个顶点包括:所述第一节点、所述第二节点、第四节点和第五节点;
比较模块,用于比较所述第四节点的第一角度与所述第五节点的第二角度;
第九单元处理模块,用于从所述第一角度与所述第二角度之间大的角度对应的节点引出对角线,重新划分所述四个共面邻接单元的并集组成的图形,得到所述第五单元和所述第六单元,得到所述第三密集面。
CN201410815099.0A 2014-12-23 2014-12-23 三维模型的边界面网格单元的处理方法和装置 Active CN104574517B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201410815099.0A CN104574517B (zh) 2014-12-23 2014-12-23 三维模型的边界面网格单元的处理方法和装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201410815099.0A CN104574517B (zh) 2014-12-23 2014-12-23 三维模型的边界面网格单元的处理方法和装置

Publications (2)

Publication Number Publication Date
CN104574517A true CN104574517A (zh) 2015-04-29
CN104574517B CN104574517B (zh) 2017-10-27

Family

ID=53090478

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201410815099.0A Active CN104574517B (zh) 2014-12-23 2014-12-23 三维模型的边界面网格单元的处理方法和装置

Country Status (1)

Country Link
CN (1) CN104574517B (zh)

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105243238A (zh) * 2015-11-06 2016-01-13 中国电子科技集团公司第三十八研究所 一种一体化快速产品迭代成形装置及其方法
CN105869209A (zh) * 2016-03-29 2016-08-17 浙江大学 三维地质表面模型中的畸形三角形数据处理方法
CN108153927A (zh) * 2016-12-02 2018-06-12 成都天府新区光启未来技术研究院 结构网格的生成方法和装置
CN110807076A (zh) * 2019-09-12 2020-02-18 拉扎斯网络科技(上海)有限公司 单元调整方法、装置、服务器及存储介质
CN111223185A (zh) * 2019-12-30 2020-06-02 杭州数孪科技有限公司 三维模型的网格单元信息展示方法,其装置及电子设备
CN116306175A (zh) * 2023-05-17 2023-06-23 中国科学院、水利部成都山地灾害与环境研究所 一种流固耦合网格优化方法、系统及设备

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP0611076A2 (en) * 1993-02-12 1994-08-17 International Business Machines Corporation Method and system for producing mesh representations of objects
US20040054433A1 (en) * 2000-11-06 2004-03-18 Leif Kobbelt Method and system for approximately reproducing the surface of a workpiece
CN102289845A (zh) * 2011-08-30 2011-12-21 广东省电力设计研究院 一种三维模型绘制方法以及装置
CN102306396A (zh) * 2011-09-15 2012-01-04 山东大学 一种三维实体模型表面有限元网格自动生成方法

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP0611076A2 (en) * 1993-02-12 1994-08-17 International Business Machines Corporation Method and system for producing mesh representations of objects
US20040054433A1 (en) * 2000-11-06 2004-03-18 Leif Kobbelt Method and system for approximately reproducing the surface of a workpiece
CN102289845A (zh) * 2011-08-30 2011-12-21 广东省电力设计研究院 一种三维模型绘制方法以及装置
CN102306396A (zh) * 2011-09-15 2012-01-04 山东大学 一种三维实体模型表面有限元网格自动生成方法

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
MARIA SAVCHENKO 等: "An Approach to Improving Triangular Surface Mesh", 《JSME INTERNATIONAL JOURNAL SERIES C-MECHANICAL SYSTEMS MACHINE ELEMENTS AND MANUFACTURING》 *
魏一雄 等: "特征联动下的建模_分析集成系统研发", 《计算机辅助设计与图形学学报》 *

Cited By (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105243238A (zh) * 2015-11-06 2016-01-13 中国电子科技集团公司第三十八研究所 一种一体化快速产品迭代成形装置及其方法
CN105243238B (zh) * 2015-11-06 2018-06-29 中国电子科技集团公司第三十八研究所 一种一体化快速产品迭代成形装置及其方法
CN105869209A (zh) * 2016-03-29 2016-08-17 浙江大学 三维地质表面模型中的畸形三角形数据处理方法
CN108153927A (zh) * 2016-12-02 2018-06-12 成都天府新区光启未来技术研究院 结构网格的生成方法和装置
CN110807076A (zh) * 2019-09-12 2020-02-18 拉扎斯网络科技(上海)有限公司 单元调整方法、装置、服务器及存储介质
CN110807076B (zh) * 2019-09-12 2021-01-01 拉扎斯网络科技(上海)有限公司 单元调整方法、装置、服务器及存储介质
CN111223185A (zh) * 2019-12-30 2020-06-02 杭州数孪科技有限公司 三维模型的网格单元信息展示方法,其装置及电子设备
CN111223185B (zh) * 2019-12-30 2023-10-27 苏州数设科技有限公司 三维模型的网格单元信息展示方法,其装置及电子设备
CN116306175A (zh) * 2023-05-17 2023-06-23 中国科学院、水利部成都山地灾害与环境研究所 一种流固耦合网格优化方法、系统及设备
CN116306175B (zh) * 2023-05-17 2023-07-21 中国科学院、水利部成都山地灾害与环境研究所 一种流固耦合网格优化方法、系统及设备

Also Published As

Publication number Publication date
CN104574517B (zh) 2017-10-27

Similar Documents

Publication Publication Date Title
CN104574517A (zh) 三维模型的边界面网格单元的处理方法和装置
Dimitrov et al. Non‐uniform B‐spline surface fitting from unordered 3D point clouds for as‐built modeling
Minetto et al. An optimal algorithm for 3D triangle mesh slicing
Schloegel et al. Graph partitioning for high performance scientific simulations
De Floriani et al. Morse complexes for shape segmentation and homological analysis: discrete models and algorithms
Doraiswamy et al. Efficient algorithms for computing Reeb graphs
CN102306396B (zh) 一种三维实体模型表面有限元网格自动生成方法
CN106373184B (zh) 一种三维打印模型摆放所需支撑量快速估算方法
CN102663801A (zh) 一种提高三维模型渲染性能的方法
CN102074052A (zh) 基于样点拓扑近邻的散乱点云曲面拓扑重建方法
JP2005038219A (ja) 境界表現データからボリュームデータを生成する方法及びそのプログラム
Zhao et al. DSCarver: decompose-and-spiral-carve for subtractive manufacturing
CN104462163A (zh) 一种三维模型表征方法、检索方法及检索系统
CN106845536B (zh) 一种基于图像缩放的并行聚类方法
CN102890703A (zh) 一种网络异质多维标度方法
Kucuktunc et al. λ-diverse nearest neighbors browsing for multidimensional data
Morozov et al. Efficient delaunay tessellation through KD tree decomposition
CN102609982A (zh) 空间地质数据非结构化模式的拓扑发现方法
Shen et al. Design and Development of a 3D Cadastral System Prototype based on the LADM and 3D Topology
Cong Pin assignment with global routing for general cell designs
CN113610983A (zh) 一种离散点空间曲面三角网格自动剖分方法
De Cougny et al. Parallel three-dimensional mesh generation
Bannister et al. Windows into geometric events: Data structures for time-windowed querying of temporal point sets
CN105138750A (zh) 一种可扩展多线交叉机身线框模型构建方法
CN106294540B (zh) 基于p-stable局部敏感哈希检索数据样式的多点地质统计建模方法

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant