CN103020356B - 一种非封闭图形的三角剖分算法 - Google Patents
一种非封闭图形的三角剖分算法 Download PDFInfo
- Publication number
- CN103020356B CN103020356B CN201210538304.4A CN201210538304A CN103020356B CN 103020356 B CN103020356 B CN 103020356B CN 201210538304 A CN201210538304 A CN 201210538304A CN 103020356 B CN103020356 B CN 103020356B
- Authority
- CN
- China
- Prior art keywords
- triangulation
- close
- virtual point
- cavity
- point
- 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.)
- Expired - Fee Related
Links
Landscapes
- Image Generation (AREA)
Abstract
本发明公开了一种非封闭图形的三角剖分算法,包括以下步骤:S1:在非封闭图形的空腔域内引入至少一个虚拟点;S2:将虚拟点视为普通散点参与三角剖分;S3:将以虚拟点为顶点的所有三角形删除,形成空腔,实现对非封闭图形的三角剖分。本发明通过在非封闭图形的空腔域内引入适当的虚拟点后再进行三角剖分,而后将以虚拟点为顶点的所有三角形进行删除形成空腔的方法,有效解决了非封闭图形的三角剖分难题,通过在空腔域内引入虚拟点,简化了传统的逻辑判断思路,提高了程序的执行效率和图形的绘制精度。本算法易于在实现的同时,对图形的绘制精度高,能取得良好的显示效果。
Description
技术领域
本发明属于计算机辅助设计领域,特别涉及一种针对平面上非封闭图形的一种三角剖分算法。
背景技术
三角剖分是计算机辅助设计中的一个重要课题,它在有限元分析、信息可视化等领域有着重要的应用。对科学计算及工程分析产生的不规则复杂数据场进行模拟时,三角剖分网格比矩形剖分网格具备更强的适应能力。
Delaunay三角剖分具有最小内角最大的性质,能尽可能避免病态三角形的出现,有效地提高逼近精度,使网格的整体质量保持最优。逐点插入法作为Delaunay三角剖分的一种重要算法,思路简单而易于编程实现,能有效实现对封闭图形的剖分。但当点集范围是非凸区域或存在空腔时,该算法将产生非法三角形而难以满足剖分要求。
针对传统Delaunay剖分并不支持非封闭图形的问题,不少学者开始对Delaunay算法进行改进,通过引进约束边的方式对图形的边界进行判别。这种改进算法虽能实现对非封闭图形的剖分,但由于需要反复对约束边界进行判断和调整,占用的内存较大且算法的时间复杂度差,降低了程序的执行效率,从而影响图形的绘制和显示。
因此急需一种效率高且精度好的三角剖分算法。
发明内容
有鉴于此,本发明所要解决的技术问题是提供一种效率高且精度好的三角剖分算法,该算法克服了难以对非封闭图形进行三角剖分的不足。
本发明的目的是这样实现的:
本发明提供的一种非封闭图形的三角剖分算法,包括以下步骤:
S1:在非封闭图形的空腔域内引入至少一个虚拟点;
S2:将虚拟点视为普通散点参与三角剖分;
S3:将以虚拟点为顶点的所有三角形删除,形成空腔,实现对非封闭图形的三角剖分。
进一步,所述步骤S1中所述空腔域内为非封闭图形的空腔域内。
进一步,所述步骤S2中的虚拟点与空腔的边界应保持预设距离。
进一步,所述三角剖分采用Delaunay算法三角剖分。
进一步,所述三角剖分中的虚拟点分别与空腔边界上的普通散点连接形成线段,并构建用于存放包括顶点编号和顶点坐标的顶点信息的三角形链表。
本发明的优点在于:本发明通过在非封闭图形的空腔域内引入适当的虚拟点后再进行三角剖分,而后将以虚拟点为顶点的所有三角形进行删除形成空腔的方法,有效解决了非封闭图形的三角剖分难题,通过在空腔域内引入虚拟点,简化了传统的逻辑判断思路,提高了程序的执行效率和图形的绘制精度。本算法易于在实现的同时,对图形的绘制精度高,能取得良好的显示效果。
附图说明
为了使本发明的目的、技术方案和优点更加清楚,下面将结合附图对本发明作进一步的详细描述,其中:
图1为空腔内部引入虚拟点集;
图2为算法1产生的三角剖分;
图3为空腔清空后的三角剖分。
具体实施方式
以下将结合附图,对本发明的优选实施例进行详细的描述;应当理解,优选实施例仅为了说明本发明,而不是为了限制本发明的保护范围。
实施例1
图1为空腔内部引入虚拟点集,图2为算法1产生的三角剖分,图3为空腔清空后的三角剖分,如图所示:本发明提供的一种非封闭图形的三角剖分算法,包括以下步骤:
S1:在非封闭图形的空腔域内引入至少一个虚拟点;虚拟点可以设置多个,两个,三个四个等,对于多个虚拟点分别采用本发明提供的使用方法。
S2:将虚拟点视为普通散点参与三角剖分;在进行三角剖分时为保证虚拟点的加入仅对空腔域内部的三角剖分造成影响,将虚拟点与空腔的边界应保持预设距离。虚拟点与空腔的边界之间的距离可以根据精度的要求进行确定,所述三角剖分采用Delaunay算法三角剖分。所述三角剖分中的虚拟点分别与空腔边界上的普通散点连接形成线段,并构建用于存放包括顶点编号和顶点坐标的顶点信息的三角形链表。
S3:将以虚拟点为顶点的所有三角形删除,形成空腔,实现对非封闭图形的三角剖分。
实施例2
下面详细说明实现对非封闭图形的三角剖分的具体过程:
在本发明中,通过三个简单的步骤来实现对图像中的非封闭图形的进行三角剖分并输出处理完毕后的图像。首先在图形的空腔域内适当引入若干个虚拟点,再将虚拟点视为普通散点参与Delaunay三角剖分,完成全部区域的剖分后,最后删除以虚拟点为顶点的所有三角形,从而完成对非封闭图形的三角剖分。
在引入算法前,先提出相应点集的定义:
定义1:假设平面域上有M个离散点,则定义平面点集P={}为这M个散点的集合。
定义2:假设在剖分过程中引入了N个虚拟的散点,则定义虚拟点集Q={}为这N个虚拟散点的集合。
定义3:将平面点集P和虚拟点集Q的并集W=P∪Q={}称为散点总集W。
整个三角剖分的过程可分为以下三步(图中以圆形空腔形状为例):
第一步:根据几何图形的特点,在空腔内部适当引入若干虚拟点,并将虚拟点集Q加入平面点集P中,形成散点总集W。为保证虚拟点的加入仅对空腔域内部的三角剖分造成影响,虚拟点与空腔的边界应保持一定距离。如图1所示,剖面线部分为待剖分的区域,实线为该区域的实际边界,点为插入的虚拟点,其余点为平面散点。
第二步:采用以下算法步骤对包含虚拟点在内的散点总集W进行Delaunay三角剖分,使虚拟点集Q与空腔边界点连接形成线段(如图2所示):
A1.构建一个超级三角形,将平面点集W中的所有散点包含其中,并将该超级三角形的顶点信息(顶点编号、顶点坐标等)放入三角形链表。
A2.将平面点集W中的散点依次插入,在三角形链表中找出其外接圆包含插入点的三角形(称为该点的影响三角形),删除影响三角形及其公共边,将插入点同影响三角形的全部顶点连接起来并更新三角形链表,从而完成一个点在Delaunay三角形链表中的插入。
A3.循环执行A2步,直到所有散点插入完毕。
第三步:遍历三角形链表中所有三角形的顶点,并将以虚拟点为顶点的三角形删除,以清除空腔区域的三角形,完成对非封闭图形的三角剖分(如图3)。
以上所述仅为本发明的优选实施例,并不用于限制本发明,显然,本领域的技术人员可以对本发明进行各种改动和变型而不脱离本发明的精神和范围。这样,倘若本发明的这些修改和变型属于本发明权利要求及其等同技术的范围之内,则本发明也意图包含这些改动和变型在内。
Claims (3)
1.一种非封闭图形的三角剖分算法,其特征在于:包括以下步骤:
S1:在非封闭图形的空腔域内引入至少一个虚拟点;
S2:将虚拟点视为普通散点参与三角剖分;
S3:将以虚拟点为顶点的所有三角形删除,形成空腔,实现对非封闭图形的三角剖分;所述步骤S2中的虚拟点与空腔的边界应保持预设距离。
2.根据权利要求1所述的非封闭图形的三角剖分算法,其特征在于:所述三角剖分采用Delaunay算法三角剖分。
3.根据权利要求1或2所述的非封闭图形的三角剖分算法,其特征在于:所述三角剖分中的虚拟点分别与空腔边界上的普通散点连接形成线段,并构建用于存放包括顶点编号和顶点坐标的顶点信息的三角形链表。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201210538304.4A CN103020356B (zh) | 2012-12-13 | 2012-12-13 | 一种非封闭图形的三角剖分算法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201210538304.4A CN103020356B (zh) | 2012-12-13 | 2012-12-13 | 一种非封闭图形的三角剖分算法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN103020356A CN103020356A (zh) | 2013-04-03 |
CN103020356B true CN103020356B (zh) | 2016-01-06 |
Family
ID=47968958
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201210538304.4A Expired - Fee Related CN103020356B (zh) | 2012-12-13 | 2012-12-13 | 一种非封闭图形的三角剖分算法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN103020356B (zh) |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107689080A (zh) * | 2017-08-21 | 2018-02-13 | 西安华景动力科技有限公司 | 基于三角剖分算法的sph粒子封闭曲面可视化方法 |
CN109754449B (zh) * | 2018-11-22 | 2020-04-03 | 清华大学 | 一种二维网格图形的三角化确定方法 |
CN114820869B (zh) * | 2022-05-11 | 2024-05-03 | 中南大学 | 一种非完全的散点图去重叠方法 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101377857A (zh) * | 2008-07-30 | 2009-03-04 | 电子科技大学 | 一种基于八叉树空间划分和顶点删除的三维模型简化方法 |
CN102243680A (zh) * | 2011-07-21 | 2011-11-16 | 中国科学技术大学 | 一种网格划分方法及系统 |
-
2012
- 2012-12-13 CN CN201210538304.4A patent/CN103020356B/zh not_active Expired - Fee Related
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101377857A (zh) * | 2008-07-30 | 2009-03-04 | 电子科技大学 | 一种基于八叉树空间划分和顶点删除的三维模型简化方法 |
CN102243680A (zh) * | 2011-07-21 | 2011-11-16 | 中国科学技术大学 | 一种网格划分方法及系统 |
Non-Patent Citations (2)
Title |
---|
Delaunay三角网格的一种快速生成法;邬吉明;《数值计算与计算机应用》;20011231(第4期);正文第2-3节 * |
动态增删点的二维Delaunay三角剖分;王中辉等;《兰州交通大学学报》;20101231;第29卷(第6期);全文 * |
Also Published As
Publication number | Publication date |
---|---|
CN103020356A (zh) | 2013-04-03 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN112669463B (zh) | 三维点云的曲面重建方法、计算机设备和计算机可读存储介质 | |
CN104268934A (zh) | 一种由点云直接重建三维曲面的方法 | |
US20090015586A1 (en) | Method and system for modeling variable-node finite elements and application to nonmatching meshes | |
CN106919763A (zh) | 一种产品结构尺寸优化方法 | |
CN103020356B (zh) | 一种非封闭图形的三角剖分算法 | |
CN110188423A (zh) | 一种基于有限元网格划分的线性工程结构快速bim建模方法 | |
CN102880509A (zh) | 基于cuda的格网数字高程模型邻域分析的系统和方法 | |
CN105844067A (zh) | 一种船体曲板焊接变坡口自动加工数据的获取方法 | |
CN108389263B (zh) | 面向边界元方法求解计算的iges面网格快速生成方法 | |
CN104361625A (zh) | 一种基于射线原理的带边界保留的云数据精简算法 | |
CN106682294B (zh) | 一种动态可重构fpga的布局方法 | |
CN114969860A (zh) | 一种六面体非结构网格自动生成方法 | |
CN102254093B (zh) | 基于泰森多边形的连通域统计相关算法 | |
CN111583410A (zh) | 一种衣片网格模型自动生成方法 | |
Schlei | Volume-enclosing surface extraction | |
CN107633555B (zh) | 基于空间扫描的曲面集相互切割方法及系统 | |
CN103246793B (zh) | 一种基于abaqus分析结果绘制轮胎接地云图的方法 | |
CN103020402B (zh) | 建模方法和装置 | |
CN111199086A (zh) | 三维几何离散化处理系统 | |
CN104794747A (zh) | 一种基于射线原理的三维点云数据精简算法 | |
CN111179420B (zh) | 一种三维城市模型优化方法及系统 | |
CN108763767A (zh) | 面向vr引擎的大数据量igs工业模型polygon转换方法 | |
CN112258654A (zh) | 模型抽壳方法、终端设备及计算机可读存储介质 | |
CN106651979A (zh) | 基于投影的空间曲面四边形网格剖分方法 | |
CN102999944B (zh) | 一种边界分区的浮雕模型建模方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20160106 Termination date: 20161213 |
|
CF01 | Termination of patent right due to non-payment of annual fee |