CN116977598B - 三角网格数值仿真平滑化的方法 - Google Patents
三角网格数值仿真平滑化的方法 Download PDFInfo
- Publication number
- CN116977598B CN116977598B CN202311228534.5A CN202311228534A CN116977598B CN 116977598 B CN116977598 B CN 116977598B CN 202311228534 A CN202311228534 A CN 202311228534A CN 116977598 B CN116977598 B CN 116977598B
- Authority
- CN
- China
- Prior art keywords
- triangle
- vertex
- triangular
- dimensional
- triangles
- 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 46
- 238000009499 grossing Methods 0.000 title claims abstract description 30
- 238000004088 simulation Methods 0.000 title claims description 29
- 230000005484 gravity Effects 0.000 claims abstract description 28
- 238000006243 chemical reaction Methods 0.000 claims abstract description 22
- 239000013598 vector Substances 0.000 claims description 12
- 230000008569 process Effects 0.000 claims description 9
- 238000010586 diagram Methods 0.000 description 12
- 238000012545 processing Methods 0.000 description 5
- 230000000295 complement effect Effects 0.000 description 3
- 230000000153 supplemental effect Effects 0.000 description 3
- 230000009286 beneficial effect Effects 0.000 description 2
- 230000008859 change Effects 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 238000012805 post-processing Methods 0.000 description 2
- 230000009466 transformation Effects 0.000 description 2
- 238000010276 construction Methods 0.000 description 1
- 230000008030 elimination Effects 0.000 description 1
- 238000003379 elimination reaction Methods 0.000 description 1
- 238000013507 mapping Methods 0.000 description 1
- 230000007704 transition Effects 0.000 description 1
- 238000012795 verification Methods 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
- G06T17/205—Re-meshing
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F30/00—Computer-aided design [CAD]
- G06F30/20—Design optimisation, verification or simulation
- G06F30/23—Design optimisation, verification or simulation using finite element methods [FEM] or finite difference methods [FDM]
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2111/00—Details relating to CAD techniques
- G06F2111/10—Numerical modelling
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Geometry (AREA)
- General Physics & Mathematics (AREA)
- Computer Graphics (AREA)
- Software Systems (AREA)
- Computer Hardware Design (AREA)
- Evolutionary Computation (AREA)
- General Engineering & Computer Science (AREA)
- Image Generation (AREA)
Abstract
本发明提供了一种三角网格数值仿真平滑化的方法,包括:步骤1,将三维结构转化为二维的第一三角网格。步骤2,构建第一三角网格的拓扑。步骤3,根据所构建的拓扑检测出每个顶点相邻的所有三角形,根据拓扑中的信息数据计算与每个顶点相邻的所有三角形的平均值,将计算所得的平均值分配给相应的顶点,得到第二三角网格。步骤4,通过递归地方式执行预设的网格转换算法,在第二三角网格中插入每个三角形的重心作为新增的顶点,并利用新增的顶点和第二三角网格中的顶点重新剖分三角形,以形成第三三角网格。步骤5,将第三三角网格栅格化。经过本发明一实施例的三角网格数值仿真平滑化的方法处理后的结果显示更符合求解的实际场景。
Description
技术领域
本发明涉及计算机图形处理领域,具体涉及一种三角网格数值仿真平滑化的方法。
背景技术
在工业数值仿真领域进行数值仿真的流程中,除了对仿真关键数值的检查,通常还需要直观的显示出数值的分布和变化。数值显示的合理性和准确性在结果检验中十分重要,特别在比较精细的模型中的显示(例如过孔)中的数值变化的准确性会比较敏感。
在有限元算法中, Node(节点)作为解算的基本单位,多个Node(节点)构成一个Element(单元),单元其本身附带一些属性。此处的节点即为本申请中的顶点。在有限元分析中,整个物体被划分为多个单元,通过对每个单元进行离散化和适当地处理,可以近似地描述物体的行为,并进行数值求解。在后处理中,用户需要看到单元的某个属性,但在数据显示中经常会遇到两个问题:
1) 如图2所示,单元在单位区域内的属性是固定数值的,所以在正常显示中数据不平滑,无法合理的显示出数据变化的情况。
2) 传统的针对单元数值的数据平滑算法将单元上的数据传播到节点上,随后直接采用三角形重心插值法来产生平滑过度,但在这个传播过程中会使得数据极大值极小值失真,导致用户看到的数据不符合原始数据。
发明内容
本发明的目的在于解决现有后处理结果视图在对单元数值平滑过程中产生的数据失真问题。
为了实现上述目的,本发明提出了一种三角网格数值仿真平滑化的方法,包括:
步骤1,将三维结构转化为二维的第一三角网格;
步骤2,构建第一三角网格的拓扑,所述拓扑包括第一三角网格中所有顶点、边和三角形的信息数据,所述信息数据包括:所有顶点、边和三角形的属性值,所有顶、边和三角形之间的邻接关系;
步骤3,根据所构建的拓扑检测出每个顶点相邻的所有三角形,根据拓扑中的信息数据计算与每个顶点相邻的所有三角形的平均值,将计算所得的平均值分配给相应的顶点,得到第二三角网格;
步骤4,通过递归地方式执行预设的网格转换算法,在第二三角网格中插入每个三角形的重心作为新增的顶点,并利用新增的顶点和第二三角网格中的顶点重新剖分三角形,以形成第三三角网格;
步骤5,将第三三角网格栅格化。
在一个实施例中,所述步骤1包括:
步骤11,将三维结构分割成若干个离散的三维单元;
步骤12,创建一个二维参考平面;
步骤13,将所创建的二维参考平面与每个三维单元相交,得到若干个由三维单元和二维参考平面的交点围合而成的多边形,多边形的数量与三维单元的数量相等;
步骤14,将每个多边形剖分为若干个三角形以形成子三角网格,所有子三角网格形成所述第一三角网格。
在一个实施例中,记二维参考平面的法向量为 n,在二维参考平面上定义一对互相垂直单位向量 a 和 b;
所述步骤13中,一个三维单元与二维参考平面相交以得到一个多边形的步骤,包括:
将三维单元的每条边和二维参考平面投影到na平面和nb平面上,在na平面上,找到三维单元的每条边与二维参考平面的第一交点的集合A,在nb平面上,找到三维单元的每条边与二维参考平面的第二交点的集合B;
将集合 A 和集合 B 中所有的第一交点和第二交点投影回二维参考平面,并按照极角排序连接,以形成一个多边形。
在一个实施例中,所述步骤14包括:若多边形有三条边,则直接作为一个子三角网格,若多边形有至少四条边,则将多边形剖分成多个三角形以构建一个子三角网格。
在一个实施例中,所述步骤14中,若多边形有四条边,则沿最短对角线将多边形切分为两个三角形。
在一个实施例中,所述步骤1中:
若三维单元为三棱柱,二维参考平面平行于三棱柱的顶部或底部,三棱柱顶部或底部的三角形作为一个子三角网格;
若三维单元为六面体,二维参考平面平行于六面体的顶部或底部,将六面体顶部或底部的四边形沿最短的对角线切分为两个三角形作为一个子三角网格;
若三维单元为四面体,则记二维参考平面的法向量为 n,在二维参考平面上定义一对互相垂直单位向量 a 和 b,将三维单元的每条边和二维参考平面投影到na平面和nb平面上,在na平面上,找到三维模型的每条边与二维参考平面的第一交点的集合A,在nb平面上,找到三维模型的每条边与二维参考平面的第二交点的集合B,将集合 A 和集合 B 中所有的第一交点和第二交点投影回二维参考平面,并按照极角排序连接,以形成一个多边形,若多边形为三角形,则作为一个子三角网格,若多边形为四边形,则沿最短对角线将四边形剖分成两个三角形作为一个子三角网格。
在一个实施例中,所述步骤2中构建第一三角网格的拓扑,包括:
构建顶点表,插入第一三角网格中所有顶点;
构建面表,插入第一三角网格中所有三角形,并在顶点表中创建一个引用,所述引用将每个顶点与每个顶点相邻的所有三角形关联;
构建边表,插入第一三角网格中所有边,并将每条边与每条边相邻的所有三角形的关联。
在一个实施例中,所述在顶点表中创建一个引用包括:为每个顶点添加一个指针或索引。
在一个实施例中,所述步骤4中预设的网格转换算法包括:
步骤41,读取当前三角形为第一三角形,第一三角形包括三个顶点和三条边,第一三角形的三个顶点为第一顶点、第二顶点和第三顶点,其中第一顶点和第二顶点之间的为第一边,第二顶点和第三顶点之间的为第二边,第一顶点和第三顶点之间的为第三边,读取与第一边相邻的第二三角形,与第二边相邻的第三三角形及与第三边相邻的第四三角形;
步骤42,插入补充结构:所述补充结构包括四个顶点和九条边,所述四个顶点分别为:第一三角形、第二三角形、第三三角形和第四三角形的重心,所述九条边包括:第一三角形的重心分别与第一顶点、第二顶点和第三顶点连接而成的三条边,第二三角形的重心分别与第一顶点和第二顶点连接而成的两条边,第三三角形的重心分别与第二顶点和第三顶点连接而成的两条边,以及第四三角形的重心分别与第一顶点和第三顶点连接而成的两条边;
步骤43,消除三角形的公共边:所述公共边为第一三角形的三条边;
步骤44,将步骤43中产生的六个四边形分别剖分成两个三角形:先将第一三角形的重心所相邻的三个四边形分别剖分成两个三角形,再返回步骤42通过递归的方式对剩余三个四边形进行处理。
在一个实施例中,所述步骤44后,还包括:
步骤45,对未读取过的三角形循环步骤41和步骤44,以递归地方式执行网格转换算法,直至对每个三角形执行完网格转换算法,以将第二三角网格转换为第三三角网格。
在一个实施例中,步骤44中四边形剖分成两个三角形的方法为:
沿四边形最短对角线将四边形剖分成两个三角形;
或计算角线顶点值差异因子,沿最大差异因子对角线将四边形剖分成两个三角形。
在一个实施例中,所述步骤4包括:
步骤41,读取当前三角形为第一三角形,第一三角形包括:第一顶点、第二顶点、第三顶点、第一顶点和第二顶点连接而成的第一边、第二顶点和第三顶点连接而成的第二边、第一顶点和第三顶点连接而成的第三边,读取与第一三角形的第一边相邻的第二三角形;
步骤42,插入补充结构:将第一三角形及第二三角形的重心分别作为第四顶点和第五顶点插入第二三角网格中,第一顶点和第四顶点连接、第四顶点和第二顶点连接、第二顶点和第五顶点连接、第五顶点和第一顶点连接分别作为第四边、第五边、第六边和第七边插入第二三角网格中;
步骤43,连接第四顶点和第五顶点作为第八边,获得由第四边、第七边和第八边围成的第三三角形,第五边、第六边和第八边围成的第四三角形;
步骤44,存储第三三角形和第四三角形;
步骤45,返回步骤41,通过递归的方式将当前三角形相邻的三角形作为当前三角形,循环步骤41和步骤44,直至对每个三角形执行完网格转化算法,以将第二三角网格转换为第三三角网格。
在一个实施例中,所述步骤5中,栅格化为将第三三角网格处理成能被显示设备绘制的图像。
本发明一实施例的三角网格数值仿真平滑化的方法的有益效果在于:如图2和图13所示,经过本发明一实施例的三角网格数值仿真平滑化的方法的处理后,结果显示更符合求解的实际场景,有效地解决了结果显示合理化、准确化的两个难题。
附图说明
图1为本发明一实施例的三角网格数值仿真平滑化的方法的流程示意图;
图2为求解得到的原始数据的示意图;
图3为本发明一实施例中将三棱柱类型的单元二维化的示意图;
图4为本发明一实施例中将六面体类型的单元二维化的示意图;
图5为本发明一实施例中将四面体类型的单元二维化的示意图;
图6为本发明一实施例的三角网格数值仿真平滑化的方法中构建面表的示意图;
图7为本发明一实施例的三角网格数值仿真平滑化的方法中构建边表的示意图;
图8为本发明一实施例的网格转换算法中插入补充结构的四个顶点的位置示意图;
图9为本发明一实施例的网格转换算法中插入补充结构的九条边的位置示意图;
图10为本发明一实施例的网格转换算法中消除三角形的公共边的示意图;
图11为本发明一实施例的网格转换算法中对消除三角形的公共边后得到的四边形剖分成三角形的示意图;
图12(a)和图12(b)为利用本发明一实施例的优化后的网格转换算法的重新剖分三角形的示意图;
图13为利用本发明一实施例的三角网格数值仿真平滑化的方法处理后的结果示意图。
具体实施方式
为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解的是,此处所描述的具体实施例仅用以解释发明,并不用于限定发明。
如图1所示,本发明提供了一种三角网格数值仿真平滑化的方法,包括:
步骤1,将三维结构转化为二维的第一三角网格。
步骤2,构建第一三角网格的拓扑。拓扑包括第一三角网格中所有顶点、边和三角形的信息数据。其中,信息数据包括:所有顶点、边和三角形的属性值,所有顶、边和三角形之间的邻接关系。在一个实施例中,属性值包括坐标和其他属性值。其中,其他属性值包括颜色、法线、纹理坐标等。
步骤3,根据所构建的拓扑检测出每个顶点相邻的所有三角形,根据拓扑中的信息数据计算与每个顶点相邻的所有三角形的平均值,将计算所得的平均值分配给相应的顶点,得到第二三角网格。
步骤4,通过递归地方式执行预设的网格转换算法,在第二三角网格中插入每个三角形的重心作为新增的顶点,并利用新增的顶点和第二三角网格中的顶点重新剖分三角形,以形成第三三角网格。
步骤5,将第三三角网格栅格化。
进一步,步骤1包括:
步骤11,将三维结构分割成若干个离散的三维单元。
步骤12,创建一个二维参考平面。
步骤13,将所创建的二维参考平面与每个三维单元相交,得到若干个由三维单元和二维参考平面的交点围合而成的多边形,多边形的数量与三维单元的数量相等。
步骤14,将每个多边形剖分为若干个三角形以形成子三角网格,所有子三角网格形成所述第一三角网格。
再进一步,记二维参考平面的法向量为 n,在二维参考平面上定义一对互相垂直单位向量 a 和 b。可将多面体的各边和切面投影于na和nb平面,将问题降维为二维的几何相交问题。步骤13中,一个三维单元与二维参考平面相交以得到一个多边形的步骤,包括:
将三维单元的每条边和二维参考平面投影到na平面和nb平面上,在na平面上,找到三维单元的每条边与二维参考平面的第一交点的集合A,在nb平面上,找到三维单元的每条边与二维参考平面的第二交点的集合B;
将集合 A 和集合 B 中所有的第一交点和第二交点投影回二维参考平面,并按照极角排序连接,以形成一个多边形。
再进一步,步骤14包括:若多边形有三条边,则直接作为一个子三角网格,若多边形有至少四条边,则将多边形剖分成多个三角形以构建一个子三角网格。本实施例优选,步骤14中,若多边形有四条边,则沿最短对角线将多边形切分为两个三角形。
在一个实施例中,步骤1中:
若三维单元为三棱柱,二维参考平面平行于三棱柱的顶部或底部,三棱柱顶部或底部的三角形作为一个子三角网格,参见图3;
若三维单元为六面体,二维参考平面平行于六面体的顶部或底部,将六面体顶部或底部的四边形沿最短的对角线切分为两个三角形作为一个子三角网格,参见图4;
若三维单元为四面体,则记二维参考平面的法向量为 n,在二维参考平面上定义一对互相垂直单位向量 a 和 b。将三维单元的每条边和二维参考平面投影到na平面和nb平面上,在na平面上,找到三维模型的每条边与二维参考平面的第一交点的集合A,在nb平面上,找到三维模型的每条边与二维参考平面的第二交点的集合B,将集合 A 和集合 B 中所有的第一交点和第二交点投影回二维参考平面,并按照极角排序连接,以形成一个多边形,若多边形为三角形,则作为一个子三角网格,若多边形为四边形,则沿最短对角线将四边形剖分成两个三角形作为一个子三角网格,参见图5。
进一步,顶点表、面表和边表中的信息数据用于描述第一三角网格的拓扑。具体地,步骤2中构建第一三角网格的拓扑,包括:
构建顶点表,插入第一三角网格中所有顶点;
构建面表,插入第一三角网格中所有三角形,并在顶点表中创建一个引用,所述引用将每个顶点与每个顶点相邻的所有三角形关联,参见图6;
构建边表,插入第一三角网格中所有边,并将每条边与每条边相邻的所有三角形的关联。一个三角网格有三个边,每个边都被两个三角网格公用,这一步需要构建边和面的联系,使边表关系成为一副有向有环图,参见图7。
再进一步,在顶点表中创建一个引用包括:为每个顶点添加一个指针或索引。通过所创建的引用,能读取每个顶点所关联的三角形。
进一步,步骤4中预设的网格转换算法包括:
步骤41,读取当前三角形为第一三角形,第一三角形包括三个顶点和三条边,第一三角形的三个顶点为第一顶点、第二顶点和第三顶点。其中第一顶点和第二顶点之间的为第一边,第二顶点和第三顶点之间的为第二边,第一顶点和第三顶点之间的为第三边。读取与第一边相邻的第二三角形,与第二边相邻的第三三角形及与第三边相邻的第四三角形。
步骤42,插入补充结构:补充结构包括四个顶点和九条边。其中,四个顶点分别为:第一三角形、第二三角形、第三三角形和第四三角形的重心,九条边包括:第一三角形的重心分别与第一顶点、第二顶点和第三顶点连接而成的三条边,第二三角形的重心分别与第一顶点和第二顶点连接而成的两条边,第三三角形的重心分别与第二顶点和第三顶点连接而成的两条边,以及第四三角形的重心分别与第一顶点和第三顶点连接而成的两条边。
步骤43,消除三角形的公共边:公共边为第一三角形的三条边。
步骤44,将步骤43中产生的六个四边形分别剖分成两个三角形:先将第一三角形的重心所相邻的三个四边形分别剖分成两个三角形,返回步骤42通过递归的方式对剩余三个四边形进行处理。
再进一步,步骤44后还包括:
步骤45,对未读取过的三角形循环步骤41和步骤44,以递归地方式执行网格转换算法,直至对每个三角形执行完网格转换算法,以将第二三角网格转换为第三三角网格。
再进一步,步骤44中四边形剖分成两个三角形的方法为:
沿四边形最短对角线将四边形剖分成两个三角形;
或计算角线顶点值差异因子,沿最大差异因子对角线将四边形剖分成两个三角形。
在一个实施例中,如图8-11所示,步骤4中预设的网格转换算法包括:
步骤41,读取当前三角形为第一三角形c,第一三角形c包括三个顶点和三条边,第一三角形c的三个顶点为第一顶点p1、第二顶点p2和第三顶点p3,其中第一顶点p1和第二顶点p2之间的为第一边p1p2,第二顶点p2和第三顶点p3之间的为第二边p2p3,第一顶点p1和第三顶点p3之间的为第三边p1p3,读取与第一边p1p2相邻的第二三角形n1,与第二边p2p3相邻的第三三角形n2及与第三边p1p3相邻的第四三角形n3。
步骤42,插入补充结构:补充结构包括四个顶点和九条边,参见图8和图9。针对每一个三角形c与其相邻的三个三角形n1、n2、n3,需要插入四个顶点和九条边作为补充结构以支持后续的操作。需要插入的四个顶点均是第一三角形c、第二三角形n1、第三三角形n2、第四三角形n3的重心,记为_c、_n1、_n2、_n3。插入的九条边为_c p1、_c p2、_c p3、_n1p1、_n1 p2、_n2 p2、_n2 p3、_n3 p3、_n3 p1。
步骤43,消除三角形的公共边:第一边p1p2、第二边p2p3、第三边p1p3,参见图10。针对三角形c与其相邻的三个三角形n1、n2、n3及其上一个步骤产生的补充结构,需要进行消除公共边的操作。即删除p1 p2、p2 p3、p3 p1这三条边,此时本来的三个三角形c、n1、n2、n3将会变成六个四边形。
步骤44,通过网格质量评估切分内四边形。需要对上一步产生的六个四边形中的p1 _n1 p2 _c、p2 _n2 p3 _c、p3 _n3 p1 _c三个四边形做切分,得到六个三角形,参见图11。四边形的切分依据一般是按照最短对角线切分,也可以加入角线顶点值差异因子作为切分依据。剩余的三个四边形作为下一次递归的起始点,递归执行步骤42。
步骤44后还包括:
步骤45,将未读取过的三角形作为当前三角形循环步骤41和步骤44,以递归地方式执行网格转换算法,直至对每个三角形执行完网格转换算法,以将第二三角网格转换为第三三角网格。
进一步,在实际的程序当中,为了简化代码量以及加快代码速度,并不会持续维护一个真正的边表,且上文所述的步骤4中的过程将会糅合在一起以深度优先同步推进。此时,步骤4包括:
步骤41,读取当前三角形为第一三角形,第一三角形包括:第一顶点、第二顶点、第三顶点、第一顶点和第二顶点连接而成的第一边、第二顶点和第三顶点连接而成的第二边、第一顶点和第三顶点连接而成的第三边,读取与第一三角形的第一边相邻的第二三角形;
步骤42,插入补充结构:将第一三角形及第二三角形的重心分别作为第四顶点和第五顶点插入第二三角网格中,第一顶点和第四顶点连接、第四顶点和第二顶点连接、第二顶点和第五顶点连接、第五顶点和第一顶点连接分别作为第四边、第五边、第六边和第七边插入第二三角网格中;
步骤43,连接第四顶点和第五顶点作为第八边,获得由第四边、第七边和第八边围成的第三三角形,第五边、第六边和第八边围成的第四三角形;
步骤44,存储第三三角形和第四三角形;
步骤45,返回步骤41,通过递归的方式将当前三角形相邻的三角形作为当前三角形,循环步骤41和步骤44,直至对每个三角形执行完网格转化算法,以将第二三角网格转换为第三三角网格。
在一个实施例中,如图12(a)和图12(b)所示,步骤4包括:从abd这个三角形开始,首先读取三角形abd,选取三角形abd的第一边bd,边bd的邻接面是三角形dbc。如图13所示,此时直接计算出新的三角形efd和三角形feb存入一个列表中(点e即为三角形abd的重心,点f即为三角形dbc的重心)。此时从三角形dbc开始执行步骤4,从三角形dbc中选取一条没有被计算过的边递归下去,直到所有三角形的所有边都被计算完,则步骤4完成。
进一步,步骤5中的栅格化为将三角网格处理成能被显示设备绘制的图像。本实施例中,利用栅格化程序将处理好的二维三角网格处理成能够被显示设备绘制的图像,进行绘制。
“栅格化” 指的是将二维三角网格(由一系列相邻的三角形组成的结构)转换成能够在显示设备(比如计算机屏幕)上绘制的栅格化图像的过程。
具体来说,栅格化是将三角形等图形对象映射到屏幕上的像素,以创建出可视化的图像。在二维三角网格栅格化中,每个三角形被分解为一系列像素,然后为这些像素指定颜色值,从而在屏幕上显示出图形的几何形状和特征。
栅格化是计算机图形学中的关键步骤,使得三维场景和二维图形能够在屏幕上以像素为单位进行显示。
本发明一实施例的三角网格数值仿真平滑化的方法的有益效果在于:如图2和图13所示,经过本发明一实施例的三角网格数值仿真平滑化的方法的处理后,结果显示更符合求解的实际场景,有效地解决了结果显示合理化、准确化的两个难题。
以上所述实施例仅是对本发明的进一步说明,并非对本发明做其他形式的限制,本发明还可有其它多种实施例。在不背离本发明精神及其实质的情况下,熟悉本领域的技术人员可根据本发明作出各种相应的修改和变化,但这些相应的修改和变化都应落入本发明的保护范围。
Claims (13)
1.一种三角网格数值仿真平滑化的方法,其特征在于,包括:
步骤1,将三维结构转化为二维的第一三角网格;
步骤2,构建第一三角网格的拓扑,所述拓扑包括第一三角网格中所有顶点、边和三角形的信息数据,所述信息数据包括:所有顶点、边和三角形的属性值,所有顶、边和三角形之间的邻接关系;
步骤3,根据所构建的拓扑检测出每个顶点相邻的所有三角形,根据拓扑中的信息数据计算与每个顶点相邻的所有三角形的平均值,将计算所得的平均值分配给相应的顶点,得到第二三角网格;
步骤4,通过递归地方式执行预设的网格转换算法,在第二三角网格中插入每个三角形的重心作为新增的顶点,并利用新增的顶点和第二三角网格中的顶点重新剖分三角形,以形成第三三角网格;
步骤5,将第三三角网格栅格化。
2.根据权利要求1所述的三角网格数值仿真平滑化的方法,其特征在于,所述步骤1包括:
步骤11,将三维结构分割成若干个离散的三维单元;
步骤12,创建一个二维参考平面;
步骤13,将所创建的二维参考平面与每个三维单元相交,得到若干个由三维单元和二维参考平面的交点围合而成的多边形,多边形的数量与三维单元的数量相等;
步骤14,将每个多边形剖分为若干个三角形以形成子三角网格,所有子三角网格形成所述第一三角网格。
3.根据权利要求2所述的三角网格数值仿真平滑化的方法,其特征在于,记二维参考平面的法向量为 n,在二维参考平面上定义一对互相垂直单位向量 a 和 b;
所述步骤13中,一个三维单元与二维参考平面相交以得到一个多边形的步骤,包括:
将三维单元的每条边和二维参考平面投影到na平面和nb平面上,在na平面上,找到三维单元的每条边与二维参考平面的第一交点的集合A,在nb平面上,找到三维单元的每条边与二维参考平面的第二交点的集合B;
将集合 A 和集合 B 中所有的第一交点和第二交点投影回二维参考平面,并按照极角排序连接,以形成一个多边形。
4.根据权利要求2所述的三角网格数值仿真平滑化的方法,其特征在于,所述步骤14包括:若多边形有三条边,则直接作为一个子三角网格,若多边形有至少四条边,则将多边形剖分成多个三角形以构建一个子三角网格。
5.根据权利要求4所述的三角网格数值仿真平滑化的方法,其特征在于,所述步骤14中,若多边形有四条边,则沿最短对角线将多边形切分为两个三角形。
6.根据权利要求2所述的三角网格数值仿真平滑化的方法,其特征在于,所述步骤1中:
若三维单元为三棱柱,二维参考平面平行于三棱柱的顶部或底部,三棱柱顶部或底部的三角形作为一个子三角网格;
若三维单元为六面体,二维参考平面平行于六面体的顶部或底部,将六面体顶部或底部的四边形沿最短的对角线切分为两个三角形作为一个子三角网格;
若三维单元为四面体,则记二维参考平面的法向量为 n,在二维参考平面上定义一对互相垂直单位向量 a 和 b,将三维单元的每条边和二维参考平面投影到na平面和nb平面上,在na平面上,找到三维模型的每条边与二维参考平面的第一交点的集合A,在nb平面上,找到三维模型的每条边与二维参考平面的第二交点的集合B,将集合 A 和集合 B 中所有的第一交点和第二交点投影回二维参考平面,并按照极角排序连接,以形成一个多边形,若多边形为三角形,则作为一个子三角网格,若多边形为四边形,则沿最短对角线将四边形剖分成两个三角形作为一个子三角网格。
7.根据权利要求1所述的三角网格数值仿真平滑化的方法,其特征在于,所述步骤2中构建第一三角网格的拓扑,包括:
构建顶点表,插入第一三角网格中所有顶点;
构建面表,插入第一三角网格中所有三角形,并在顶点表中创建一个引用,所述引用将每个顶点与每个顶点相邻的所有三角形关联;
构建边表,插入第一三角网格中所有边,并将每条边与每条边相邻的所有三角形的关联。
8.根据权利要求7所述的三角网格数值仿真平滑化的方法,其特征在于,所述在顶点表中创建一个引用包括:为每个顶点添加一个指针或索引。
9.根据权利要求1所述的三角网格数值仿真平滑化的方法,其特征在于,所述步骤4中预设的网格转换算法包括:
步骤41,读取当前三角形为第一三角形,第一三角形包括三个顶点和三条边,第一三角形的三个顶点为第一顶点、第二顶点和第三顶点,其中第一顶点和第二顶点之间的为第一边,第二顶点和第三顶点之间的为第二边,第一顶点和第三顶点之间的为第三边,读取与第一边相邻的第二三角形,与第二边相邻的第三三角形及与第三边相邻的第四三角形;
步骤42,插入补充结构:所述补充结构包括四个顶点和九条边,所述四个顶点分别为:第一三角形、第二三角形、第三三角形和第四三角形的重心,所述九条边包括:第一三角形的重心分别与第一顶点、第二顶点和第三顶点连接而成的三条边,第二三角形的重心分别与第一顶点和第二顶点连接而成的两条边,第三三角形的重心分别与第二顶点和第三顶点连接而成的两条边,以及第四三角形的重心分别与第一顶点和第三顶点连接而成的两条边;
步骤43,消除三角形的公共边:所述公共边为第一三角形的三条边;
步骤44,将步骤43中产生的六个四边形分别剖分成两个三角形:先将第一三角形的重心所相邻的三个四边形分别剖分成两个三角形,再返回步骤42通过递归的方式对剩余三个四边形进行处理。
10.根据权利要求9所述的三角网格数值仿真平滑化的方法,其特征在于,所述步骤44后,还包括:
步骤45,对未读取过的三角形循环步骤41和步骤44,以递归地方式执行网格转换算法,直至对每个三角形执行完网格转换算法,以将第二三角网格转换为第三三角网格。
11.根据权利要求9所述的三角网格数值仿真平滑化的方法,其特征在于,步骤44中四边形剖分成两个三角形的方法为:
沿四边形最短对角线将四边形剖分成两个三角形;
或计算角线顶点值差异因子,沿最大差异因子对角线将四边形剖分成两个三角形。
12.根据权利要求1所述的三角网格数值仿真平滑化的方法,其特征在于,所述步骤4包括:
步骤41,读取当前三角形为第一三角形,第一三角形包括:第一顶点、第二顶点、第三顶点、第一顶点和第二顶点连接而成的第一边、第二顶点和第三顶点连接而成的第二边、第一顶点和第三顶点连接而成的第三边,读取与第一三角形的第一边相邻的第二三角形;
步骤42,插入补充结构:将第一三角形及第二三角形的重心分别作为第四顶点和第五顶点插入第二三角网格中,第一顶点和第四顶点连接、第四顶点和第二顶点连接、第二顶点和第五顶点连接、第五顶点和第一顶点连接分别作为第四边、第五边、第六边和第七边插入第二三角网格中;
步骤43,连接第四顶点和第五顶点作为第八边,获得由第四边、第七边和第八边围成的第三三角形,第五边、第六边和第八边围成的第四三角形;
步骤44,存储第三三角形和第四三角形;
步骤45,返回步骤41,通过递归的方式将当前三角形相邻的三角形作为当前三角形,循环步骤41和步骤44,直至对每个三角形执行完网格转化算法,以将第二三角网格转换为第三三角网格。
13.根据权利要求1所述的三角网格数值仿真平滑化的方法,其特征在于,所述步骤5中,栅格化为将第三三角网格处理成能被显示设备绘制的图像。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311228534.5A CN116977598B (zh) | 2023-09-22 | 2023-09-22 | 三角网格数值仿真平滑化的方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311228534.5A CN116977598B (zh) | 2023-09-22 | 2023-09-22 | 三角网格数值仿真平滑化的方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN116977598A CN116977598A (zh) | 2023-10-31 |
CN116977598B true CN116977598B (zh) | 2023-12-15 |
Family
ID=88475310
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202311228534.5A Active CN116977598B (zh) | 2023-09-22 | 2023-09-22 | 三角网格数值仿真平滑化的方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN116977598B (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117726774B (zh) * | 2024-02-07 | 2024-04-30 | 芯瑞微(上海)电子科技有限公司 | 基于线产生算法的三角形光栅化方法、装置以及相关设备 |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5333248A (en) * | 1992-07-15 | 1994-07-26 | International Business Machines Corporation | Method and system for the smooth contouring of triangulated surfaces |
EP1791091A2 (en) * | 2005-11-29 | 2007-05-30 | Siemens Medical Solutions USA, Inc. | Method and apparatus for non-shrinking mesh smoothing using local fitting |
CN109410336A (zh) * | 2018-09-30 | 2019-03-01 | 深圳市华讯方舟太赫兹科技有限公司 | 网格细分方法、图像处理设备及具有存储功能的装置 |
CN114429535A (zh) * | 2021-12-31 | 2022-05-03 | 中原动力智能机器人有限公司 | 一种三角网格曲面的光滑裁剪方法及装置 |
CN115409950A (zh) * | 2022-10-09 | 2022-11-29 | 卡本(深圳)医疗器械有限公司 | 一种面绘制三角网格的优化方法 |
WO2023109567A1 (zh) * | 2021-12-13 | 2023-06-22 | 深圳先进技术研究院 | 基于对偶图神经网络对三角网格进行去噪的方法 |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6943789B2 (en) * | 2001-03-16 | 2005-09-13 | Mitsubishi Electric Research Labs, Inc | Conversion of adaptively sampled distance fields to triangles |
CN111325847B (zh) * | 2020-02-14 | 2024-03-15 | 格兰菲智能科技有限公司 | 图形处理装置 |
-
2023
- 2023-09-22 CN CN202311228534.5A patent/CN116977598B/zh active Active
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5333248A (en) * | 1992-07-15 | 1994-07-26 | International Business Machines Corporation | Method and system for the smooth contouring of triangulated surfaces |
EP1791091A2 (en) * | 2005-11-29 | 2007-05-30 | Siemens Medical Solutions USA, Inc. | Method and apparatus for non-shrinking mesh smoothing using local fitting |
CN109410336A (zh) * | 2018-09-30 | 2019-03-01 | 深圳市华讯方舟太赫兹科技有限公司 | 网格细分方法、图像处理设备及具有存储功能的装置 |
WO2023109567A1 (zh) * | 2021-12-13 | 2023-06-22 | 深圳先进技术研究院 | 基于对偶图神经网络对三角网格进行去噪的方法 |
CN114429535A (zh) * | 2021-12-31 | 2022-05-03 | 中原动力智能机器人有限公司 | 一种三角网格曲面的光滑裁剪方法及装置 |
CN115409950A (zh) * | 2022-10-09 | 2022-11-29 | 卡本(深圳)医疗器械有限公司 | 一种面绘制三角网格的优化方法 |
Non-Patent Citations (1)
Title |
---|
基于拉普拉斯算子的三角网格模型的平滑与压缩算法;王卉;黄玉清;;计算机系统应用(第12期);全文 * |
Also Published As
Publication number | Publication date |
---|---|
CN116977598A (zh) | 2023-10-31 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
EP4120199A1 (en) | Image rendering method and apparatus, and electronic device and storage medium | |
JP4385524B2 (ja) | ポリゴンデータの生成方法及び、これを用いた画像表示装置 | |
JP6159807B2 (ja) | 3次元シーンをレンダリングするためのコンピュータグラフィックス方法 | |
US11436800B2 (en) | Interactive system and method providing real-time virtual reality visualization of simulation data | |
Michikawa et al. | Multiresolution interpolation meshes | |
CN113593051B (zh) | 一种实景可视化方法及大坝可视化方法及计算机设备 | |
CN101231761B (zh) | 一种保持外观特征的网格模型简化方法 | |
JPH0769971B2 (ja) | 3次元図形処理方法 | |
CN105718643A (zh) | 一种基于最优化视角的船舶生产设计审图器实现方法 | |
CN116977598B (zh) | 三角网格数值仿真平滑化的方法 | |
US11488347B2 (en) | Method for instant rendering of voxels | |
CN115984511B (zh) | 一种基于cad的平行六面体体积平均共形网格剖分方法 | |
JP4165695B2 (ja) | 非多様体の陰関数表現方法のコンピュータプログラム | |
KR101919085B1 (ko) | 3차원 메쉬 데이터 간소화 방법 및 장치 | |
JP5372241B2 (ja) | 画像表示装置 | |
JP2837584B2 (ja) | 地形データの作成方法 | |
US11869123B2 (en) | Anti-aliasing two-dimensional vector graphics using a compressed vertex buffer | |
CN110570504B (zh) | 闭合符号绘制方法、装置、电子设备及存储介质 | |
CN114170385A (zh) | 实时生成模型剖面带洞网格的方法、装置、介质和设备 | |
TWI617178B (zh) | 用以表現出三維景象之電腦圖形方法、系統及軟體產品 | |
JP2000067270A (ja) | 形状デ―タの近似化方法及び情報処理装置並びに媒体 | |
CN115033972A (zh) | 一种建筑主体结构批量单体化方法、系统及可读存储介质 | |
CN113838202B (zh) | 地图中三维模型的处理方法、装置、设备及存储介质 | |
Venkatesh et al. | 3D-visualization of power system data using triangulation and subdivision techniques | |
León et al. | Volume octree with an implicitly defined dual grid |
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 | ||
EE01 | Entry into force of recordation of patent licensing contract |
Application publication date: 20231031 Assignee: SHENZHEN ZHONGKE SYSTEM INTEGRATION TECHNOLOGY Co.,Ltd. Assignor: Xinruiwei (Shanghai) Electronic Technology Co.,Ltd. Contract record no.: X2024980012883 Denomination of invention: Method for smoothing numerical simulation of triangular mesh Granted publication date: 20231215 License type: Common License Record date: 20240823 |
|
EE01 | Entry into force of recordation of patent licensing contract |