CN117437378B - 一种基于四边形的网格生成方法、***、设备和介质 - Google Patents
一种基于四边形的网格生成方法、***、设备和介质 Download PDFInfo
- Publication number
- CN117437378B CN117437378B CN202311756631.1A CN202311756631A CN117437378B CN 117437378 B CN117437378 B CN 117437378B CN 202311756631 A CN202311756631 A CN 202311756631A CN 117437378 B CN117437378 B CN 117437378B
- Authority
- CN
- China
- Prior art keywords
- geometric model
- point
- edge
- central axis
- grid
- 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.)
- Active
Links
- 238000000034 method Methods 0.000 title claims abstract description 125
- 238000013507 mapping Methods 0.000 claims abstract description 27
- 238000009499 grossing Methods 0.000 claims abstract description 17
- 230000000875 corresponding effect Effects 0.000 claims description 46
- 238000004590 computer program Methods 0.000 claims description 17
- 238000010276 construction Methods 0.000 claims description 13
- 230000008569 process Effects 0.000 claims description 11
- 230000002457 bidirectional effect Effects 0.000 claims description 8
- 239000013598 vector Substances 0.000 claims description 8
- 230000001276 controlling effect Effects 0.000 claims description 6
- 238000003860 storage Methods 0.000 claims description 6
- 238000002347 injection Methods 0.000 claims description 4
- 239000007924 injection Substances 0.000 claims description 4
- 230000002596 correlated effect Effects 0.000 claims description 3
- 125000004122 cyclic group Chemical group 0.000 claims description 3
- 238000010586 diagram Methods 0.000 description 30
- 238000004422 calculation algorithm Methods 0.000 description 16
- 230000007704 transition Effects 0.000 description 10
- 238000009826 distribution Methods 0.000 description 9
- 230000006870 function Effects 0.000 description 6
- 238000012545 processing Methods 0.000 description 6
- 238000004458 analytical method Methods 0.000 description 5
- 238000006243 chemical reaction Methods 0.000 description 5
- 238000011960 computer-aided design Methods 0.000 description 4
- 238000000605 extraction Methods 0.000 description 4
- 238000012986 modification Methods 0.000 description 4
- 230000004048 modification Effects 0.000 description 4
- 230000015556 catabolic process Effects 0.000 description 3
- 238000006731 degradation reaction Methods 0.000 description 3
- 238000000354 decomposition reaction Methods 0.000 description 2
- 238000011161 development Methods 0.000 description 2
- 230000000007 visual effect Effects 0.000 description 2
- 238000012935 Averaging Methods 0.000 description 1
- 101100272279 Beauveria bassiana Beas gene Proteins 0.000 description 1
- 101100391172 Dictyostelium discoideum forA gene Proteins 0.000 description 1
- 230000004075 alteration Effects 0.000 description 1
- 238000013459 approach Methods 0.000 description 1
- 238000004364 calculation method Methods 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 230000007850 degeneration Effects 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 238000002474 experimental method Methods 0.000 description 1
- 238000005755 formation reaction Methods 0.000 description 1
- 230000005484 gravity Effects 0.000 description 1
- 230000014759 maintenance of location Effects 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 238000005457 optimization Methods 0.000 description 1
- 238000005192 partition Methods 0.000 description 1
- 230000003094 perturbing effect Effects 0.000 description 1
- 238000011160 research Methods 0.000 description 1
- 238000005096 rolling process Methods 0.000 description 1
- 238000004088 simulation Methods 0.000 description 1
- 239000000243 solution Substances 0.000 description 1
- 238000012360 testing method Methods 0.000 description 1
- 230000001131 transforming effect Effects 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T17/00—Three dimensional [3D] modelling, e.g. data description of 3D objects
- G06T17/20—Finite element generation, e.g. wire-frame surface description, tesselation
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T19/00—Manipulating 3D models or images for computer graphics
- G06T19/20—Editing of 3D images, e.g. changing shapes or colours, aligning objects or positioning parts
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- Computer Graphics (AREA)
- Software Systems (AREA)
- General Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Geometry (AREA)
- Architecture (AREA)
- Computer Hardware Design (AREA)
- General Engineering & Computer Science (AREA)
- Image Generation (AREA)
Abstract
本发明涉及一种基于四边形的网格生成方法、***、设备和介质,其中,方法包括:步骤S1:获取几何模型,生成所述几何模型的中轴线;步骤S2:根据所述几何模型、中轴线构建点表和边表,根据所述点表和边表将几何模型划分成若干四边形;步骤S3:构造若干网格模板,选择几何模型中每一个四边形对应的网格模板,并将选择的网格模板映射到对应的四边形中,得到网格状的几何模型;步骤S4:对所述网格状的几何模型进行光滑处理。本发明的网格生成方法简单实用,易于大规模推广。
Description
技术领域
本发明涉及网格生成技术领域,尤其是指一种基于四边形的网格生成方法、***、设备和介质。
背景技术
网格生成在计算机图形学、计算机辅助设计(CAD)、有限元分析(FEA)和结构优化、物理模拟、游戏开发等领域具有广泛的应用。在这些领域中,网格通常被用来表示复杂的几何形状或空间,并且在许多计算任务中起到关键的作用。尤其在有限元分析中,网格生成是一个至关重要的步骤,更是有限元分析的前提。复杂结构网格剖分的耗时远远超过有限元分析的耗时。网格剖分的质量在一定程度上决定了有限元分析精度。因此,网格剖分方法的研究以及商业化网格软件的研发一直是领域热点。近年来,平面四边形网格剖分算法不断涌现,国内外学者提出了多种四边形网格生成方法,根据其规则性可分为非结构化和结构化两类。
非结构化方法包含转换法、前沿推进法和铺路法等。转换法通过拆分或合并三角面网格的三角形元素,生成等价的四边形元素,其中一种简单的方式是进行Catmull-Clark细分。此方法衍生出了很多的转换方法:通过识别最适合合并的三角形对,采用重心细分得到三角面网格,然后将三角形两两合并得到四边形网格。除此之外,M.Tarini等,J.Docam-po-Sánchez等人,都基于Catmull-Clark细分对转换法进行了改进。前沿推进法最早由Lo,S.H.提出,它的基本思想是从一个或多个起始网格边界点开始,逐步扩展前沿以生成整个网格. 铺路法和前沿推进法有些类似,它首先将区域划分为小块,再在每个小块上寻求边界点,最后以基本构建单元为步长不断向内部铺设从而生成网格。铺路法是由Blacker提出的,随后Cass在其基础上进行了改进和拓展,提出了针对曲面的铺路算法和技术来生成四边形网格。 除此之外,非结构化方法还有Q-Morph法、多子区域法等。
结构化方法包含场引导法、模板法和映射法等,场引导的核心思想是通过定义和利用场来引导网格生成过程。场可以是标量场、向量场或张量场, 用于描述区域的属性、特征或约束。根据场的分布和性质,算法通过移动网格节点或调整网格单元的位置来生成网。如Kowalski等提出了基于标架场的二维区域分解方法,通过边界矢量、标架场之间具有的映射关系,进行区域分解,该方法随后由Fogg利用快速行进法改进以获得更加光滑的标架场。 由李华等提出了模板法,在正方形亲单元上按照其四边指定网格密度, 构造可以实现网格密度过渡的全四边形单元,随后又对其改进并扩展到三维区域。将模版法应用于一般区域时,设计者首先要将需要生成网格的区域划分为一系列子区域或四边形大单元,每个子区域可能代表物体的一部分或特定的几何形状。根据设计对网格密度的要求和约束,选择适合的模板并将正方形亲单元连同其内部的网格映射填充每个子区域。最后,将相邻子区域的模板连接起来,确保网格在接缝处的连续性和拓扑正确性。映射法是研究最早且成熟的网格划分方式之一,又可分为保角映射法、基于偏微分方程法、代数插值法三种。它的基本原理是利用映射函数将源几何形状的网格映射到目标区域, 并通过变换和调整映射函数来控制生成网格的形状和分布。除此之外,结构化方法还有基于密集点云的生成方法等。
综合来看,转换法在大多数情况下的复杂程度过高,并且过度依赖输入, 生成的质量并不高。前沿推进法和铺路法的网格生成质量依赖于网格边界点,鲁棒性不强。场引导法可以在生成网格时考虑特定的要求和约束,从而获得更好的网格质量和拓扑结构,但算法过于复杂,不易实现,且存在效率低下、计算时间长等问题。
发明内容
为此,本发明所要解决的技术问题在于克服现有技术中网格构造方法过于复杂、效率低下的问题。
为解决上述技术问题,本发明提供了一种平面四边形网格生成方法,包括:
步骤S1:获取几何模型,生成所述几何模型的中轴线;
步骤S2:根据所述几何模型、中轴线构建点表和边表,根据所述点表和边表将几何模型划分成若干四边形;
步骤S3:构造若干网格模板,选择几何模型中每一个四边形对应的网格模板,并将选择的网格模板映射到对应的四边形中,得到网格状的几何模型;
步骤S4:对所述网格状的几何模型进行光滑处理。
在本发明的一个实施例中,所述步骤S1中获取几何模型,生成所述几何模型的中轴线,方法包括:
S11:获取几何模型,所述几何模型包括凸多边形和L形多边形,对于除L形多边形凸内角以外的几何模型的内角,设内角/>由两条边/>构成,从内角/>向几何模型内部射出角平分线/>;
S12:以内角的顶点/>为起点,并以/>为步长,在角平分线/>上找到一点/>,将作为圆心,向/>作内切圆;
S13:不断增长,当所述内切圆与几何模型的其它边相切时,则停止增长/>,并转S14;
S14:获取以为起点、/>为终点的线段,该线段对应边/>和/>所构造出一条中轴线;重复S11-S14直到几何模型的内角循环完毕,找出所有内角对应的中轴线;
S15:统计几何模型所有内角生成的中轴线的终点,设/>为不同位置的终点/>的数量,并判断几何模型是否还要继续构造内部中轴线,具体为:
S15.1:如果为1,表明所有的中轴线相交于一点,则无需再构造新的中轴线;
S15.2:如果为2,表明所有的中轴线相交于两点,则将这两点连接起来构成一段新中轴线,并且对于凸多边形,还需要找到该新中轴线所对应的两边/>,具体为:
取该新中轴线的起点,找出S11-14中以/>点为终点的所有中轴线,并找到每条中轴线所对应的/>;对于凸多边形,每两条边对应一个夹角,每一个夹角生成一条中轴线,因此该凸多边形的每条边都会被重复利用两次,则找出只被利用过一次的边,并将其作为该新中轴线所对应的/>;
S15.3:如果大于等于3且几何模型为凸多边形,则将内部的终点按逆时针顺序构造成多边形,再针对该多边形重复S11-S15,直到递归至内部终点数量/>为1或2,则完成中轴线的生成,并去除该构造的多边形;
S15.4:如果大于等于3且几何模型为L形多边形,将内部的终点按逆时针顺序构造成多边形后,如果该多边形的边存在于L形多边形外部,则删除该边;如果该多边形的边都存在于L形多边形内部,则删除距离L形多边形凸内角最近的边,则完成中轴线的生成。
在本发明的一个实施例中,所述步骤S2中根据所述几何模型、中轴线构建点表和边表,方法包括:
S211:逆时针循环几何模型的边,将每条边的起点、终点加入到点表中;将边本身单向加入到边表中;
S212:循环几何模型内部中轴线以外的中轴线,取每一个中轴线的终点向其所对应的/>做垂线,设垂足分别为/>;将/>加入点表中;将垂线分别双向加入到边表中,并删除对应的中轴线;由于垂足将几何模型的边截断,则更新边表中对应的边的起点和终点;
S213:判断S212中每一个中轴线的位置:如果该中轴线的起点为它对应的的交点,则表明该中轴线与几何模型有交点,并略过;反之,则表明该中轴线在几何模型内部,并将其双向加入到边表中;
S214:对于L形多边形,将其凸内角的两边分别对几何模型内部发出两条射线,各自垂直交于几何模型的另一边,形成两条垂线;更新在此过程中被截断的边在表中的起点和终点,并将两条垂线双向加入到边表中;
其中,点表中的点和边表中的边均不能重复。
在本发明的一个实施例中,所述步骤S2中根据所述点表和边表将几何模型划分成若干四边形,方法包括:
S221:选择边表中的单向边,并取该单向边上的一点,并选择以该点为起始点的一条边界线/>为初始边开始搜索;
S222:用的方向向量与以/>作为起始点的下一条边的方向向量,分别进行叉乘,选择叉乘结果中的最小值对应的边并记为/>,将/>作为四边形的第二条边,重复以上过程,找到第三条边/>和第四边 />,将其记录为第一个四边形;
S223:每一条边构成四边形后,将其在边表中标记为使用过;
S224:取上一个四边形的点作为下一个四边形的起始点/>,并搜索以该点为端点的所有边,找出其中在边表中未使用过的边,并从中选出与上一个大四边形的/>叉乘结果最小的值作为起始边,如果所有边都已经被标记为使用过,则取上一个四边形的点作为起始点,以此类推,直至点表中所有点都标记为使用过或边表中所有边都标记为使用过,则表明所有四边形均已生成。
在本发明的一个实施例中,所述步骤S2在构造完若干四边形之后,还包括:
若四边形中的最小内角的角度低于预设角度,通过扩展构成该最小内角的两条边,使该最小内角达到预设角度。
在本发明的一个实施例中,所述步骤S3中构造若干网格模板,选择几何模型中每一个四边形对应的网格模板,并将选择的网格模板映射到对应的四边形中,得到网格状的几何模型,方法包括:
在参数空间构造网格模板,并将构造好的网格模板通过全局曲面差值映射到物理空间中几何模型对应的四边形中,得到网格状的几何模型,其中,所述网格模板包括连接模板、角模板、边模板和内部加密模板;
所述连接模板通过线和线/>将参数空间的单位正方形划分为若干网格单元,设在参数空间的单位正方形4条边分别为/>,/>与/>相对,/>与相对,则连接模板在四边形四条边上的网格单元数量分别为:
;
所述角模板在参数空间的单位正方形的边和边/>上取两条线相交,相交内角为/>,并将相交顶点与边/>和边/>的交点相连形成/>线且/>,并且通过控制角/>改变角模板的形态;将角模板加入连接模板的线/>和/>,加入连接模板的角模板在四边形四条边上的网格单元数量分别为:
;
所述边模板在参数空间的单位正方形的边为基准作一矩形,矩形中平行于边的边的两顶点分别与边/>和边/>的交点相连、与边/>和边/>的交点相连,形成/>线且/>;将边模板加入连接模板的线/>和/>,加入连接模板的边模板在四边形四条边上的网格单元数量分别为:
;
所述内部加密模板在参数空间的单位正方形中心作一正方形,该正方形的四个顶点分别与参数空间的单位正方形的四个内角相连形成线且/>;将内部加密模板加入连接模板的线/>和/>,加入连接模板的内部加密模板在四边形四条边上的网格单元数量分别为:
。
在本发明的一个实施例中,所述步骤S4中对所述网格状的几何模型进行光滑处理,方法包括:
假设网格状的几何模型的一个目标点和其对应的一组邻近点/>,其中/>包括所有与目标点/>共网格单元的八个点,邻近点的坐标为/>,/>表示每个邻近点的索引,通过加权平均对邻近点进行光滑处理得到新坐标/>,公式为:
;
其中,是与邻近点/>相关的权重,使用高斯权重来计算:
;
其中,表示目标点/>和邻近点/>之间的距离,/>是控制光滑强度的参数;
对几何模型内部的每个点均进行光滑处理,直至所有点全部收敛,收敛条件为:
;
其中,表示收敛阈值,/>表示目标点/>的横纵坐标。
为解决上述技术问题,本发明提供了一种基于四边形的网格生成***,包括:
获取与生成模块:用于获取几何模型,生成所述几何模型的中轴线;
划分模块:用于根据所述几何模型、中轴线构建点表和边表,根据所述点表和边表将几何模型划分成若干四边形;
构造与映射模块:用于构造若干网格模板,选择几何模型中每一个四边形对应的网格模板,并将选择的网格模板映射到对应的四边形中,得到网格状的几何模型;
光滑模块:用于对所述网格状的几何模型进行光滑处理。
为解决上述技术问题,本发明提供了一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现上述基于四边形的网格生成方法的步骤。
为解决上述技术问题,本发明提供了一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时,实现上述基于四边形的网格生成方法的步骤。
本发明的上述技术方案相比现有技术具有以下优点:
本发明可以根据不同几何模型的几何特征,自适应地生成几何模型的中轴线,并通过中轴线生成大四边形,实现对几何模型进行区域划分,一定程度上解决了部分方法在划分区域时的局限性,也省去了部分方法生成三角形网格再进行合并转换这一步骤,而且通过构造不同种类网格模板,初步实现了网格的疏密可控;
本发明所提出的基于四边形的网格生成方法的网格质量较好, 同时该也展现出较好的性能和鲁棒性, 并且可以初步满足疏密过渡的需求。
附图说明
为了使本发明的内容更容易被清楚的理解,下面根据本发明的具体实施例并结合附图,对本发明作进一步详细的说明。
图1是本发明的方法流程图;
图2是本发明实施例中网格生成方法可视化视图;
图3是本发明实施例中不同几何模型生成的中轴线示意图;
图4是本发明实施例中提取角平分线并构建内切圆的示意图;
图5是本发明实施例中基于一内角生成的中轴线示意图;
图6是本发明实施例中基于三角形构建的中轴线示意图;
图7是本发明实施例中基于矩形构建的中轴线示意图;
图8是本发明实施例中如何寻找几何模型内部中轴线对应边示意图;
图9是本发明实施例中基于五边形构建的中轴线示意图;
图10是本发明实施例中对L形多边形中轴线进行调整示意图;
图11是本发明实施例中过短中轴线退化成点示意图;
图12是本发明实施例中不同几何模型的大四边形构造结果示意图;
图13是本发明实施例中构建几何模型点表与边表的初始状态示意图;
图14是本发明实施例中构建几何模型点表与边表的过程状态示意图;
图15是本发明实施例中根据中轴线位置更新边表数据示意图;
图16是本发明实施例中从L形多边形的凹角发射射线构建大四边形示意图;
图17是本发明实施例中选择边表中起始单向边示意图;
图18是本发明实施例中生成一个大四边形示意图;
图19是本发明实施例中寻找下一个大四边形起始边示意图;
图20是本发明实施例中基于几何模型构造大四边形构造顺序示意图;
图21是本发明实施例中大四边形最小角低于预设角度示意图;
图22是本发明实施例中大四边形最小角调整示意图;
图23是本发明实施例中L形多边形应用不同模板的网格生成示意图;
图24是本发明实施例中不同几何模型使用单一连接模板的映射结果示意图;
图25是本发明实施例中连接模板示意图;
图26是本发明实施例中连接模板取不同参数时的各种形态示意图;
图27是本发明实施例中角模板示意图;
图28是本发明实施例中角模板取不同参数时的各种形态示意图;
图29是本发明实施例中边模板示意图;
图30是本发明实施例中边模板取不同参数时的各种形态示意图;
图31是本发明实施例中内部加密模板示意图;
图32是本发明实施例中内部加密模板取不同参数时的各种形态示意图;
图33是本发明实施例中网格光顺结果示意图;
图34是本发明实施例中不同几何模型光顺结果示意图;
图35是本发明实施例中小房子模型算例网格单元最小角分布情况示意图;
图36是本发明实施例中三角形算例网格单元最小角分布示情况意图;
图37是本发明实施例中矩形算例网格单元最小角分布情况示意图;
图38是本发明实施例中五边形模型算例网格单元最小角分布情况示意图;
图39是本发明实施例中L形多边形算例网格单元最小角分布情况示意图。
具体实施方式
下面结合附图和具体实施例对本发明作进一步说明,以使本领域的技术人员可以更好地理解本发明并能予以实施,但所举实施例不作为对本发明的限定。
实施例一
参照图1所示,本发明涉及一种基于四边形的网格生成方法,包括:
步骤S1:获取几何模型,生成所述几何模型的中轴线,其中,所述几何模型包括凸多边形和L形多边形;
步骤S2:根据所述几何模型、中轴线构建点表和边表,根据所述点表和边表将几何模型划分成若干四边形(以下描述均采用大四边形);
步骤S3:构造若干网格模板,选择几何模型中每一个大四边形对应的网格模板,并将选择的网格模板映射到对应的大四边形中,得到网格状的几何模型;
步骤S4:对所述网格状的几何模型进行光滑处理。
本实施例的网格生成方法可视化视图请见图2,从左至右分别包括提取中轴线,构造大四边形,模板映射和光顺处理。
以下对本实施例进行详细介绍:
1 生成几何模型的中轴线
提取中轴线是构造几何模型大四边形的基础,本实施例提出了一种基于递归角平分线多边形中轴线提取方法:首先,利用几何模型每个(凹)内角(不包括L形多变形的凸内角),生成一段对应于该内角的中轴线。其次,判断这些中轴线是否交于一点,若不交于一点,继续生成其余中轴线,直至所有的中轴线构成连接线段,本实施例对于不同的凸多边形以及L形多边形(即凹多边形)可以生成较好的中轴线,详见图3。
以下是构造中轴线的具体步骤:
Step11:并行逆时针循环几何模型的内角(不包括L形多变形的凸内角),设/>由两条边构成,/>顺序无严格要求。从/>向几何模型内部射出角平分线/>。
Step12:以的顶点/>为起点,并以一个合适的值/>为步长,在/>上找到一点/>,将/>作为圆心,向/>作内切圆。图4给出了Step11、Step12的示意。
Step13:判断该内切圆除了,是否还与该几何模型的其它边有交点。如果没有,则适当地增长/>,并重复Step12、13,直至内切圆找到与几何模型的其他相切交点,转Step14。
Step14:记录以下数据:以为起点,/>为终点的线段,即边/>和/>所构造出一条中轴线;以及该中轴线所对应的/>。重复Step11-14直到内角循环完毕,找出所有内角对应的中轴线。图5给出至Step14的示意图,图5中的/>、/>为/>构造出的中轴线。
Step15:统计所有内角生成的中线的终点,设/>为不同位置的/>的数量,要考虑是否还要继续构造内部中线,具体为:
Step15.1:如果为1,这说明所有的中轴线相交于一点,则凸多边形的中轴线为Step11-14所提取的所有中轴线段的集合,以图6三角形举例,无需再构造新的中轴线。
Step15.2:如果为2,这说明所有的中轴线相交于两点,则将这两点连接起来构成一段中轴线,这段中轴线的起点和终点不需要特别注明。以图7矩形举例,需再构造一条新的中轴线,为图7中两个终点之间的连线。此外,对于凸多边形,还需要找到该新中线所对应的两边/>,以供记录(对于L形多边形则不考虑),具体为:
取该中线的起点,找出Step11-14中以/>点为终点的所有中轴线(以图8为例,即图中线段/>),通过这些中轴线,找到它们所对应的/>(图8中的边)。对于几何模型(即凸多边形),每两条边对应一个夹角,每一个夹角生成一条中轴线,由此可知,该几何模型的每条边都会被重复利用两次。因此,需要找出只被利用过一次的边,这条边即为该新生成的中线所对应的/>,将此/>记入表中(图8中边/>)。
Step15.3:如果大于等于3且几何模型为凸多边形,这说明所有的中轴线较为分散,需要将内部的终点按逆时针顺序构造成多边形,再针对该多边形重复Step11-15,直到递归至内部终点数量/>为1或者2即可,并且需要将内部终点构造的多边形删除,只保留中轴线即可,这样所得出的中轴线就可以满足生成大四边形的条件。
以图9中五边形为例,图9中内部的三角形为再次构造的多边形,内部三角形中的线段为再次生成的中轴线,但要注意再次构造的多边形的中线所对应的和/>也应该是原几何模型的边,即图9中原五边形的边,而不是再次构造的三角形的边。
Step15.4:如果大于等于3的凹多边形(L形多边形):将内部的终点按逆时针顺序构造成多边形后,将构造的多边形的边作为新的中轴线,并且还要判断构造的多边形的边是否还需要删除,具体地,如果存在在模型外的边,删掉它即可(请见图10中的(b)的L形多边形);如果该多边形的边都在模型内部,删掉距离凸内角最近的那条边(请见图10中的(a)的L形多边形)。这样即可得到L形多边形的中轴线。
在中轴线提取完毕后,如果出现过短(低于预设长度)的内部中轴线,还需要将其退化成点,以避免该中轴线段引导生成边长差异过大的、质量较差的大四边形。如图11所示,中轴线过短,将会引导生成两个过窄的大四边形,将其退化成/>中点/>后,生成的大四边形边长差异小,质量较高。
2基于寻路搜索的大四边形生成算法
在得到了几何模型的中轴线后,本实施例利用中轴线,通过边表、点表数据结构,提出了一种构造出大四边形的方法,实现了计算机对四边形结构的快速搜索:首先,将必要的边、点的信息加入到数据结构。其次,按照寻路思想,从边界出发,不停选择对于当前边的最“左”边,直至闭合为大四边形。最后,回退边,重复寻路过程,直至数据结构中的边全部使用过。图12给出了不同几何模型的大四边形构造结果。
2.1数据结构
首先对数据结构进行说明:
数据结构一,点表:记录几何模型的顶点,以及每个大四边形的顶点,每个顶点按照构造顺序记录其编号。
数据结构二,边表:记录每个边由哪两个编号的顶点构成(起点->终点),用于构造大四边形,边包括单向边和双向边,单向边指起点->终点,双向边指起点->终点以及终点->起点,->表示一点到另一点的指向符号。
边表与点表中的数据不允许重复,应保持唯一性。
2.2构造点表、边表
利用获取到的每段中轴线以及所对应的构造点表、边表,具体如下:
Step211:逆时针循环几何模型的边,将每条边的起点,终点/>加入到点表中,并记录序号。将边本身单向加入到边表中(例如/>)。见图13,构建点表与边表的初始状态,点表包括:/>;边表包括:。
Step212:循环几何模型内部中轴线以外的中轴线(即内角对应的中轴线):取每一个中轴线的终点向它所对应的/>做垂线,设垂足分别为/>。将/>加入点表中。将垂线分别双向加入到边表中(/>),并删除对应的中轴线。需要注意,在做垂线时,如果遇到重复垂线则需删除,不必重复添加到边表中。另外要注意,由于垂足将几何模型的边截断,需要更新边表中对应的边的起点和终点。见图14,构建一个大四边形(图13中/>)后,点表与边表的状态,包括加入边表的垂线,虚线为需要删除的中轴线。图14中点表包括:;边表包括:。
Step213:对于Step212中每一个中轴线,还需判断其位置:如果这条中轴线的起点为它对应的/>的交点,则说明这条中轴线与几何模型有交点,跳过;反之,则说明这条中轴线在几何模型内部,是内部中轴线,其本身也作为大四边形的一条边,所以还需将它本身双向加入到边表中(/>)。见图15,在处理中轴线/>时,不同于图14将虚线中轴线删除,还需要将其自身加入到边表中。
Step214:对于L形多边形,请参阅图16,还需要将其凸内角的两边(即形成凸内角的两条边),分别对几何模型内部发出一条射线,各自垂直交于几何模型的另一边,形成两条垂线。更新在此过程中被截断的边在表中的起点和终点,并将两条垂线双向加入到边表中。
2.3生成大四边形
边表和点表均更新完毕后,开始大四边形搜索算法,按广度优先搜索,以逆时针方向,生成大四边形:
Step221:选择边表中的一单向边的一点,并选择以该点为起始点的一条边界线为初始边开始搜索(以小房子模型为例,图17中的线段/>)。
Step222:用的方向向量与以/>作为起始点的下一条边的方向向量,分别进行叉乘,选择结果中的最小值,即相对于本边最“左”的那条边作为大四边形的第二条边(),然后重复以上过程,找到第三条边/>和第四边/>,直到第四条边的/>回到了点/>。将其记录为第一个大四边形(图18中/>构成了一个大四边形)。
Step223:每一条边构成大四边形后,将其在边表中标记为使用过。
Step224:回退点,取上一个大四边形(图18)的点作为下一个大四边形的起始点(图19中/>),并搜索以该点为端点的所有边,找出其中在边表中未使用过的边,并搜索以该点为端点的所有边,找出其中在边表中未使用过的边,并从中选出与上一个大四边形的叉乘结果最小的值作为起始边(选出最“左”的作为新的起始边),图19中线段为新的起始边,如果所有边都已经被标记为使用过,则取上一个大四边形(图18)的点/>作为起始点,以此类推构建大四边形,这样做的目的是避免重复构造相同的大四边形。
Step225:循环Step221-224,直至点表中所有点或边表中所有边都标记为使用过,则说明所有大四边形均已生成。
图20给出了小房子模型按照图17中起始边界线构造的大四边形顺序(一共包括7个大四边形)。
为避免最终生成的部分网格的最小角过小、质量过差,在构造大四边形后,还需要对最小角过小的大四边形进行调整,直至大四边形质量总体符合要求。如图21中,低于预设角度,需调整/>两点,让/>分别在几何模型边界上扰动,使得/>增大的同时不会过度降低其余大四边形的质量。图22给出部分模型经过调整后的大四边形对比,(a)为调整之前四边形,(b)为调整之后四边形,不难发现调整后大四边形最小角情况得到改善。
3 基于模板映射的网格单元生成算法
非均匀有理B样条(NURBS)是计算机辅助设计(CAD)中的标准建模方法,在参数空间到物理空间的映射过程中,可见参数划分也被映射成了物理空间中的曲边网格。类比这种方法,首先遍历上述所生成的每个大四边形,根据每个大四边形的四个点进行全局曲面插值,生成B样条曲面;然后在其所对应的参数空间内构造网格模板;最后根据疏密过渡要求,选择合适的网格模板,并对每个大四边形,计算网格模板到几何模型的映射,得到网格剖分。
为了实现疏密过渡可控,本实施例提出了四种模板:连接模板、角模板、边模板、内部加密模板。通过灵活使用这四种模板分别对几何模型的各个大四边形进行映射。可以初步的实现疏密过渡的要求。图23给出了L形多边形的例子(应用不同网格模板实现疏密可控)。对于疏密要求不高的几何模型。只使用连接模板即可。图24给出了不同几何模型只用连接模板的映射结果。
这些模板在参数空间中的点的具***置,会随着疏密过渡的要求而发生变化,不应被详细讨论;映射的方向也会随着要求而发生改变。所以,本实施例只重点着眼于模板为实现疏密过,而应该具有的形态:
1.连接模板:连接模板在参数空间的U方向和V方向通过线和/>将大四边形划分为若干单元。该模板通过调整线/>和/>的数量实现U、V方向上的疏密过渡。也可以用于处理其余两种模板所在的大四边形之间的接缝问题。其结构简单明了,具有一定的灵活性和普遍性。假设参数空间的单元正方形(边长为1)4条边分别为:/>,与/>相对,/>与/>相对,则该模板使得大四边形四条边上的网格单元数量分别为:
。
图25给出该模板在参数空间上的示意。图26举例出该模板不同参数时的各种形态,其中,(a)表示;(b)表示/>;(c)表示/>,退化成大四边形本身。需要注意的是,线/>和/>不一定互相垂直,线/>和/>可以倾斜,使得相邻大四边形正确相连,避免接缝。
2.角模板:在参数空间的单元正方形的边和边/>上取两条线相交,相交内角为/>,并将相交顶点与边/>和边/>的交点相连形成/>线且/>。该模板通过调整线/>的数量,可以实现两个相邻方向上的疏密过渡,并且可以通过控制角/>在一定程度上改变模板的形态,以改进网格映射的质量;同时通过加入连接模板并调整线/>和/>的数量使得其能与相邻大四边形正确相连,避免接缝。则加入连接模板的角模板在大四边形四条边上的网格单元数量为:
。
图27给出该模板在参数空间上的示意。图28举例出该模板不同参数时的各种形态,其中,(a)表示,/>,/>;(b)表示/>,/>,退化成连接模板;(c)表示/>,/>,/>。需要注意的是,/>可以弯折使得相邻大四边形正确相连,避免接缝。
3.边模板:边模板在参数空间的单元正方形的边为基准作一矩形,并且与边平行的矩形的边(该矩形的边不与边/>重合)的两顶点各自与边/>和边/>的交点相连、与边/>和边/>的交点相连,形成/>线且/>。该模板通过调整线/>的数量, 可以实现单一方向上的疏密过渡,不影响大四边形其余的三条边;同时也可以通过加入连接模板并调整线/>和/>的数量使得其能与相邻大四边形正确相连,避免接缝。则加入连接模板的边模板在大四边形四条边上的网格单元数量为:
。
图29给出该模板在参数空间上的示意。图30举例出该模板不同参数时的各种形态,其中,(a)表示,/>;(b)表示/>,/>,退化成连接模板;(c)表示/>,/>。
4.内部加密模板:内部加密模板在参数空间的单元正方形中心作一正方形,该正方形的四个顶点分别与参数空间的单元正方形的四个内角相连形成线且/>。该模板通过调整/>的数量,可以在不影响相邻大四边形的情况下,对内部进行快速加密;同样,也可以通过加入连接模板并调整线/>和/>的数量使得其能与相邻大四边形正确相连,避免接缝。则加入连接模板的内部加密模板在大四边形四条边上的网格单元数量为:
。
图31给出该模板在参数空间上的示意。图32举例出该模板不同参数时的各种形态,其中,(a)表示,/>;(b)表示/>,/>,退化成连接模板;(c)表示/>,/>。
需要注意的是,本实施例可以将连接模板、角模板、边模板、内部加密模板分别映射到几何模型的大四边形中,也可以将角模板、边模板、内部加密模板分别与连接模板相结合以后再映射到几何模型的大四边形中。
4基于高斯权重的非线性网格光顺算法
在映射完成后,可以通过网格光顺进一步提升网格单元的质量。本实施例提出了一种基于高斯权重的非线性网格光顺算法,对网格单元的顶点进行重新分布,减少角和棱的锐利度,使得网格表面在视觉上更加平滑。该方法只注意于疏密过渡区域,而对均匀网格区域不敏感,可以在保证疏密过渡顺滑的同时,最大限度地减少对高质量的均匀网格的影响。图33给出了图23中网格的光顺结果,图34给出了图24中网格的光顺结果。
网格单元光顺算法的具体如下:
假设有一个目标点和一组与/>共网格单元的八个邻近点/>,其中/>包含所有与目标点/>相邻的点。邻近点的坐标为/>,/>表示每个邻近点的索引。光滑后的新坐标可以通过加权平均来计算:
;
其中,是与邻近点/>相关的权重,使用高斯权重来计算:
;
其中,表示目标点/>和邻近点/>之间的距离。/>是控制光滑强度的参数。
使用光顺算法对几何模型内部的每个点迭代地处理,直至点全部收敛,收敛条件为:
;
其中,表示收敛阈值,/>表示目标点/>的横纵坐标。如果不满足收敛条件,则继续迭代,并且在下一次迭代时,以前一次光滑处理得到的新坐标作为目标点。本实施例通过调整/>,/>两个参数,可以得到质量较好的光顺网格单元。这里给出经多次实验得到的默认参数:。取这些值时,光顺后网格单元的质量较优。
5算例测试
本实施例通过开源软件Gmsh对图24中的几何模型进行了网格划分,采用单一连接模板以及默认光顺参数,结果如图34所示。然后,将生成的网格与Gmsh中的Frontal-Delaunay for Quads方法和Quasi-Structured Quad方法在奇点数、网格单元最小角最小值、网格单元最小角平均值、网格单元最小角分布等方面进行了比较。同一几何模型算例重复生成网格十次,以取得网格平均生成时间。最后,综合考虑这些指标来评估网格的质量以及网格生成效率。
在Gmsh中运行的结果各个相关指标的统计结果列于表1-表3和图35-图39中。
表1 本实施例方法相关算例数据统计
表2 Frontal-Delaunay for Quads相关算例数据统计
表3 Quasi-Structured Quad相关算例数据统计
通过对比运行结果和指标,可以得出本实施例算法生成的网格质量更优:本实施例生成的网格具有接近90度的最小角分布,网格的最小角的最小值和平均值较大,奇点的数量较少,网格质量较高;并且本实施例算法生成网格的时间短,速度快,效率高:本实施例算法的网格平均生成时间不到Quasi-Structured Quad方法的一半,较Frontal-Delaunayfor Quads方法略快。
在处理三角形几何模型时,Frontal-Delaunay for Quads方法无法生成全四边形网格,Quasi-Structured Quad方法则运行出错无法生成网格,而本实施例算法则可以快速生成高质量网格;在处理五边形几何模型时,Quasi-Structured Quad方法出现偶尔无法运行、网格生成结果偶尔不一致的现象,而本实施例算法每次均可运行,多次生成结果一致,鲁棒性强。
综上,通过对比实验结果和指标,可以得出本实施例所提出的方法生成的网格质量更优,同时该方法也展现出较好的性能和鲁棒性,并且可以初步满足疏密过渡的需求。
实施例二
本实施例提供一种基于四边形的网格生成***,包括:
获取与生成模块:用于获取几何模型,生成所述几何模型的中轴线;
划分模块:用于根据所述几何模型、中轴线构建点表和边表,根据所述点表和边表将几何模型划分成若干四边形;
构造与映射模块:用于构造若干网格模板,选择几何模型中每一个四边形对应的网格模板,并将选择的网格模板映射到对应的四边形中,得到网格状的几何模型;
光滑模块:用于对所述网格状的几何模型进行光滑处理。
实施例三
本实施例提供一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现实施例一所述基于四边形的网格生成方法的步骤。
实施例四
本实施例提供一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时,实现实施例一所述基于四边形的网格生成方法的步骤。
本领域内的技术人员应明白,本申请的实施例可提供为方法、***、或计算机程序产品。因此,本申请可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本申请可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。本申请实施例中的方案可以采用各种计算机语言实现,例如,面向对象的程序设计语言Java和直译式脚本语言JavaScript等。
本申请是参照根据本申请实施例的方法、设备(***)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
尽管已描述了本申请的优选实施例,但本领域内的技术人员一旦得知了基本创造性概念,则可对这些实施例作出另外的变更和修改。所以,所附权利要求意欲解释为包括优选实施例以及落入本申请范围的所有变更和修改。
显然,上述实施例仅仅是为清楚地说明所作的举例,并非对实施方式的限定。对于所属领域的普通技术人员来说,在上述说明的基础上还可以做出其它不同形式变化或变动。这里无需也无法对所有的实施方式予以穷举。而由此所引申出的显而易见的变化或变动仍处于本发明创造的保护范围之中。
Claims (9)
1.一种基于四边形的网格生成方法,其特征在于:包括:
步骤S1:获取几何模型,生成所述几何模型的中轴线;
所述步骤S1中获取几何模型,生成所述几何模型的中轴线,方法包括:
S11:获取几何模型,所述几何模型包括凸多边形和L形多边形,对于除L形多边形凸内角以外的几何模型的内角,设内角/>由两条边/>构成,从内角/>向几何模型内部射出角平分线/>;
S12:以内角的顶点/>为起点,并以/>为步长,在角平分线/>上找到一点/>,将/>作为圆心,向/>作内切圆;
S13:不断增长,当所述内切圆与几何模型的其它边相切时,则停止增长/>,并转S14;
S14:获取以为起点、/>为终点的线段,该线段对应边/>和/>所构造出一条中轴线;重复S11-S14直到几何模型的内角循环完毕,找出所有内角对应的中轴线;
S15:统计几何模型所有内角生成的中轴线的终点,设/>为不同位置的终点/>的数量,并判断几何模型是否还要继续构造内部中轴线,具体为:
S15.1:如果为1,表明所有的中轴线相交于一点,则无需再构造新的中轴线;
S15.2:如果为2,表明所有的中轴线相交于两点,则将这两点连接起来构成一段新中轴线,并且对于凸多边形,还需要找到该新中轴线所对应的两边/>,具体为:
取该新中轴线的起点,找出S11-14中以/>点为终点的所有中轴线,并找到每条中轴线所对应的/>;对于凸多边形,每两条边对应一个夹角,每一个夹角生成一条中轴线,因此该凸多边形的每条边都会被重复利用两次,则找出只被利用过一次的边,并将其作为该新中轴线所对应的/>;
S15.3:如果大于等于3且几何模型为凸多边形,则将内部的终点按逆时针顺序构造成多边形,再针对该多边形重复S11-S15,直到递归至内部终点数量/>为1或2,则完成中轴线的生成,并去除该构造的多边形;
S15.4:如果大于等于3且几何模型为L形多边形,将内部的终点按逆时针顺序构造成多边形后,如果该多边形的边存在于L形多边形外部,则删除该边;如果该多边形的边都存在于L形多边形内部,则删除距离L形多边形凸内角最近的边,则完成中轴线的生成;
步骤S2:根据所述几何模型、中轴线构建点表和边表,根据所述点表和边表将几何模型划分成若干四边形,其中,所述点表用于记录几何模型的顶点以及每个四边形的顶点,每个顶点按照构造顺序记录其编号;所述边表用于记录每个边由哪两个编号的顶点构成,边包括单向边和双向边,所述单向边指起点->终点,所述双向边指起点->终点以及终点->起点,->表示一点到另一点的指向符号;
步骤S3:构造若干网格模板,选择几何模型中每一个四边形对应的网格模板,并将选择的网格模板映射到对应的四边形中,得到网格状的几何模型;
步骤S4:对所述网格状的几何模型进行光滑处理。
2.根据权利要求1所述的基于四边形的网格生成方法,其特征在于:所述步骤S2中根据所述几何模型、中轴线构建点表和边表,方法包括:
S211:逆时针循环几何模型的边,将每条边的起点、终点加入到点表中;将边本身单向加入到边表中;
S212:循环几何模型内部中轴线以外的中轴线,取每一个中轴线的终点向其所对应的/>做垂线,设垂足分别为/>;将/>加入点表中;将垂线分别双向加入到边表中,并删除对应的中轴线;由于垂足将几何模型的边截断,则更新边表中对应的边的起点和终点;
S213:判断S212中每一个中轴线的位置:如果该中轴线的起点为它对应的/>的交点,则表明该中轴线与几何模型有交点,并略过;反之,则表明该中轴线在几何模型内部,并将其双向加入到边表中;
S214:对于L形多边形,将其凸内角的两边分别对几何模型内部发出两条射线,各自垂直交于几何模型的另一边,形成两条垂线;更新在此过程中被截断的边在表中的起点和终点,并将两条垂线双向加入到边表中;
其中,点表中的点和边表中的边均不能重复。
3.根据权利要求2所述的基于四边形的网格生成方法,其特征在于:所述步骤S2中根据所述点表和边表将几何模型划分成若干四边形,方法包括:
S221:选择边表中的单向边,并取该单向边上的一点,并选择以该点为起始点的一条边界线/>为初始边开始搜索;
S222:用的方向向量与以/>作为起始点的下一条边的方向向量,分别进行叉乘,选择叉乘结果中的最小值对应的边并记为/>,将/>作为四边形的第二条边,重复以上过程,找到第三条边/>和第四边 />,将其记录为第一个四边形;
S223:每一条边构成四边形后,将其在边表中标记为使用过;
S224:取上一个四边形的点作为下一个四边形的起始点/>,并搜索以该点为端点的所有边,找出其中在边表中未使用过的边,并从中选出与上一个大四边形的/>叉乘结果最小的值作为起始边,如果所有边都已经被标记为使用过,则取上一个四边形的点/>作为起始点,以此类推,直至点表中所有点都标记为使用过或边表中所有边都标记为使用过,则表明所有四边形均已生成。
4.根据权利要求1所述的基于四边形的网格生成方法,其特征在于:所述步骤S2在构造完若干四边形之后,还包括:
若四边形中的最小内角的角度低于预设角度,通过扩展构成该最小内角的两条边,使该最小内角达到预设角度。
5.根据权利要求1所述的基于四边形的网格生成方法,其特征在于:所述步骤S3中构造若干网格模板,选择几何模型中每一个四边形对应的网格模板,并将选择的网格模板映射到对应的四边形中,得到网格状的几何模型,方法包括:
在参数空间构造网格模板,并将构造好的网格模板通过全局曲面差值映射到物理空间中几何模型对应的四边形中,得到网格状的几何模型,其中,所述网格模板包括连接模板、角模板、边模板和内部加密模板;
所述连接模板通过线和线/>将参数空间的单位正方形划分为若干网格单元,设在参数空间的单位正方形4条边分别为/>,/>与/>相对,/>与/>相对,则连接模板在四边形四条边上的网格单元数量分别为:
;
所述角模板在参数空间的单位正方形的边和边/>上取两条线相交,相交内角为/>,并将相交顶点与边/>和边/>的交点相连形成/>线且/>,并且通过控制角/>改变角模板的形态;将角模板加入连接模板的线/>和/>,加入连接模板的角模板在四边形四条边上的网格单元数量分别为:
;
所述边模板在参数空间的单位正方形的边为基准作一矩形,矩形中平行于边/>的边的两顶点分别与边/>和边/>的交点相连、与边/>和边/>的交点相连,形成/>线且/>;将边模板加入连接模板的线/>和/>,加入连接模板的边模板在四边形四条边上的网格单元数量分别为:
;
所述内部加密模板在参数空间的单位正方形中心作一正方形,该正方形的四个顶点分别与参数空间的单位正方形的四个内角相连形成线且/>;将内部加密模板加入连接模板的线/>和/>,加入连接模板的内部加密模板在四边形四条边上的网格单元数量分别为:
。
6.根据权利要求1所述的基于四边形的网格生成方法,其特征在于:所述步骤S4中对所述网格状的几何模型进行光滑处理,方法包括:
假设网格状的几何模型的一个目标点和其对应的一组邻近点/>,其中/>包括所有与目标点/>共网格单元的八个点,邻近点的坐标为/>,/>表示每个邻近点的索引,通过加权平均对邻近点进行光滑处理得到新坐标/>,公式为:
;
其中,是与邻近点/>相关的权重,使用高斯权重来计算:
;
其中,表示目标点/>和邻近点/>之间的距离,/>是控制光滑强度的参数;
对几何模型内部的每个点均进行光滑处理,直至所有点全部收敛,收敛条件为:
;
其中,表示收敛阈值,/>表示目标点/>的横纵坐标。
7.一种基于四边形的网格生成***,其特征在于:包括:
获取与生成模块:用于获取几何模型,生成所述几何模型的中轴线;
所述获取与生成模块中获取几何模型,生成所述几何模型的中轴线,包括:
S11:获取几何模型,所述几何模型包括凸多边形和L形多边形,对于除L形多边形凸内角以外的几何模型的内角,设内角/>由两条边/>构成,从内角/>向几何模型内部射出角平分线/>;
S12:以内角的顶点/>为起点,并以/>为步长,在角平分线/>上找到一点/>,将/>作为圆心,向/>作内切圆;
S13:不断增长,当所述内切圆与几何模型的其它边相切时,则停止增长/>,并转S14;
S14:获取以为起点、/>为终点的线段,该线段对应边/>和/>所构造出一条中轴线;重复S11-S14直到几何模型的内角循环完毕,找出所有内角对应的中轴线;
S15:统计几何模型所有内角生成的中轴线的终点,设/>为不同位置的终点/>的数量,并判断几何模型是否还要继续构造内部中轴线,具体为:
S15.1:如果为1,表明所有的中轴线相交于一点,则无需再构造新的中轴线;
S15.2:如果为2,表明所有的中轴线相交于两点,则将这两点连接起来构成一段新中轴线,并且对于凸多边形,还需要找到该新中轴线所对应的两边/>,具体为:
取该新中轴线的起点,找出S11-14中以/>点为终点的所有中轴线,并找到每条中轴线所对应的/>;对于凸多边形,每两条边对应一个夹角,每一个夹角生成一条中轴线,因此该凸多边形的每条边都会被重复利用两次,则找出只被利用过一次的边,并将其作为该新中轴线所对应的/>;
S15.3:如果大于等于3且几何模型为凸多边形,则将内部的终点按逆时针顺序构造成多边形,再针对该多边形重复S11-S15,直到递归至内部终点数量/>为1或2,则完成中轴线的生成,并去除该构造的多边形;
S15.4:如果大于等于3且几何模型为L形多边形,将内部的终点按逆时针顺序构造成多边形后,如果该多边形的边存在于L形多边形外部,则删除该边;如果该多边形的边都存在于L形多边形内部,则删除距离L形多边形凸内角最近的边,则完成中轴线的生成;
划分模块:用于根据所述几何模型、中轴线构建点表和边表,根据所述点表和边表将几何模型划分成若干四边形,其中,所述点表用于记录几何模型的顶点以及每个四边形的顶点,每个顶点按照构造顺序记录其编号;所述边表用于记录每个边由哪两个编号的顶点构成,边包括单向边和双向边,所述单向边指起点->终点,所述双向边指起点->终点以及终点->起点,->表示一点到另一点的指向符号;
构造与映射模块:用于构造若干网格模板,选择几何模型中每一个四边形对应的网格模板,并将选择的网格模板映射到对应的四边形中,得到网格状的几何模型;
光滑模块:用于对所述网格状的几何模型进行光滑处理。
8.一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,其特征在于:所述处理器执行所述计算机程序时实现如权利要求1至6中任一项所述基于四边形的网格生成方法的步骤。
9.一种计算机可读存储介质,其上存储有计算机程序,其特征在于:所述计算机程序被处理器执行时,实现如权利要求1至6中任一项所述基于四边形的网格生成方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311756631.1A CN117437378B (zh) | 2023-12-20 | 2023-12-20 | 一种基于四边形的网格生成方法、***、设备和介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311756631.1A CN117437378B (zh) | 2023-12-20 | 2023-12-20 | 一种基于四边形的网格生成方法、***、设备和介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN117437378A CN117437378A (zh) | 2024-01-23 |
CN117437378B true CN117437378B (zh) | 2024-02-23 |
Family
ID=89553830
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202311756631.1A Active CN117437378B (zh) | 2023-12-20 | 2023-12-20 | 一种基于四边形的网格生成方法、***、设备和介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN117437378B (zh) |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101303774A (zh) * | 2008-06-12 | 2008-11-12 | 大连工业大学 | 基于三维实体模型的四边形有限元网格生成方法 |
CN101877022A (zh) * | 2010-05-21 | 2010-11-03 | 西安电子科技大学 | 基于三角矢量基函数矩量法的载体天线结构网格划分方法 |
CN102129715A (zh) * | 2011-03-24 | 2011-07-20 | 山东大学 | 具有任意内部特征约束的几何模型的四边形网格生成方法 |
CN102222134A (zh) * | 2011-05-20 | 2011-10-19 | 山东大学 | 适用于锻造过程有限元分析的网格密度自动生成方法 |
US9824493B1 (en) * | 2014-05-20 | 2017-11-21 | Ansys, Inc. | Systems and methods for quadrilateral mesh generation |
WO2022162114A1 (fr) * | 2021-01-30 | 2022-08-04 | Canopee Structures | Procédé de fabrication d'une structure tridimensionnelle déployable à partir d'un maillage alignable, et structure tridimensionnelle obtenue via un tel procédé |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116113992A (zh) * | 2020-08-31 | 2023-05-12 | 西门子工业软件有限公司 | 网格生成 |
-
2023
- 2023-12-20 CN CN202311756631.1A patent/CN117437378B/zh active Active
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101303774A (zh) * | 2008-06-12 | 2008-11-12 | 大连工业大学 | 基于三维实体模型的四边形有限元网格生成方法 |
CN101877022A (zh) * | 2010-05-21 | 2010-11-03 | 西安电子科技大学 | 基于三角矢量基函数矩量法的载体天线结构网格划分方法 |
CN102129715A (zh) * | 2011-03-24 | 2011-07-20 | 山东大学 | 具有任意内部特征约束的几何模型的四边形网格生成方法 |
CN102222134A (zh) * | 2011-05-20 | 2011-10-19 | 山东大学 | 适用于锻造过程有限元分析的网格密度自动生成方法 |
US9824493B1 (en) * | 2014-05-20 | 2017-11-21 | Ansys, Inc. | Systems and methods for quadrilateral mesh generation |
WO2022162114A1 (fr) * | 2021-01-30 | 2022-08-04 | Canopee Structures | Procédé de fabrication d'une structure tridimensionnelle déployable à partir d'un maillage alignable, et structure tridimensionnelle obtenue via un tel procédé |
Non-Patent Citations (3)
Title |
---|
STL格式文件的四边形网格剖分与网格光顺;陈涛;李光耀;;中国机械工程;20090310(05);全文 * |
基于多对多六面体扫掠算法的研究;房芳;陈文亮;;中国制造业信息化;20061001(19);全文 * |
边界简化与多目标优化相结合的高质量四边形网格生成;徐岗;舒来新;朱亚光;潘德燃;许金兰;吴卿;;中国图象图形学报;20180116(01);全文 * |
Also Published As
Publication number | Publication date |
---|---|
CN117437378A (zh) | 2024-01-23 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
Chougrani et al. | Lattice structure lightweight triangulation for additive manufacturing | |
CN104361632B (zh) | 一种基于Hermite径向基函数的三角网格补洞方法 | |
Loseille et al. | Unique cavity-based operator and hierarchical domain partitioning for fast parallel generation of anisotropic meshes | |
KR102040988B1 (ko) | 복수의 3d 곡선들로부터의 표면 생성 | |
JP2013507679A (ja) | 三次元物体モデルの3dプリントが可能な方法及びシステム | |
CN110033519A (zh) | 基于隐式函数的三维建模方法、装置、***及存储介质 | |
TW201946033A (zh) | 依據填充分率體素資料進行多材料網格生成之系統及方法 | |
CN109584357A (zh) | 基于多轮廓线的三维建模方法、装置、***及存储介质 | |
CN113781667A (zh) | 三维结构简化重建方法、装置、计算机设备和存储介质 | |
CN108171793B (zh) | 一种探查层叠区域三角网格的方法 | |
CN115758938B (zh) | 面向粘性边界流场数值模拟的附面层网格生成方法 | |
US10083264B1 (en) | Systems and methods for implicit surface modeling | |
CN116310048A (zh) | 一种基于曲率细分计算光线跟踪与nurbs曲面交点的方法 | |
CN106649992B (zh) | 舰船与尾迹的网格模型的融合与优化方法 | |
CN113792458B (zh) | 一种有限元三角形网格的优化方法及装置 | |
CN117437378B (zh) | 一种基于四边形的网格生成方法、***、设备和介质 | |
Amiri et al. | Connectivity maps for subdivision surfaces | |
Guo et al. | Adaptive surface mesh remeshing based on a sphere packing method and a node insertion/deletion method | |
Shang et al. | Effective re-parameterization and GA based knot structure optimization for high quality T-spline surface fitting | |
CN106097446A (zh) | 一种基于大规模地震数据的三维地质曲面重建方法 | |
CN112819108B (zh) | 一种多源异构模型的切片融合方法、***及存储介质 | |
Weier et al. | Generating and rendering large scale tiled plant populations | |
Mocanu et al. | A complete framework for 3D mesh morphing | |
CN112967396A (zh) | 基于镜向反射的3d模型球面保面积参数化方法及*** | |
CN116113992A (zh) | 网格生成 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |