基于GIS的高质量约束Delaunay三角网格剖分
cass高程内插方法

cass高程内插方法Cass高程内插方法Cass高程内插方法是一种用于数字高程模型(DEM)数据处理的插值方法。
它基于三角剖分和插值算法,可以在不同的高程点之间生成连续的高程表面。
Cass高程内插方法在地理信息系统(GIS)、地质学、地形分析以及环境模型等领域得到了广泛的应用。
一、Cass高程内插方法的原理Cass高程内插方法的原理主要包括三个方面:数据采样、三角剖分和插值计算。
1. 数据采样:首先,需要收集一定数量的高程数据点作为输入。
这些高程数据点可以通过测量、遥感技术或其他采集手段获取。
数据采样的密度和精度直接影响到Cass高程内插方法的效果。
2. 三角剖分:在数据采样完成后,需要对数据点进行三角剖分。
三角剖分是将数据点之间连接成三角形的过程。
Cass高程内插方法使用Delaunay三角剖分算法,将数据点之间形成无重叠且不相交的三角形网格。
3. 插值计算:在三角剖分完成后,需要进行插值计算,以生成连续的高程表面。
Cass高程内插方法使用了改进的反距离权重插值算法。
该算法根据目标点与周围数据点之间的距离和权重关系,计算目标点的高程值。
通过对所有目标点进行插值计算,最终得到了完整的高程表面。
二、Cass高程内插方法的优势Cass高程内插方法相比于其他插值方法具有以下优势:1. 高精度:Cass高程内插方法能够通过充分利用周围数据点的高程信息,实现高精度的高程插值。
它能够准确地还原地形的细节和变化。
2. 完整性:Cass高程内插方法能够生成连续的高程表面,填补数据点之间的空白区域。
这有助于在地理建模和分析中获取完整的地形信息。
3. 灵活性:Cass高程内插方法可以处理不规则分布的高程数据点。
对于在山区或河流等地形复杂的地区,Cass高程内插方法仍然能够生成准确的高程表面。
4. 高效性:Cass高程内插方法的计算速度较快,能够处理大规模的高程数据。
这在处理大范围的地理区域或进行实时分析时非常重要。
有限元分析中的二维Delaunay三角网格剖分

有限元分析中的二维Delaunay三角网格剖分摘要本文从有限元分析出发,引出三角网格剖分的概念。
随后着重介绍了二维平面点集的Delaunay三角剖分。
给出了一些重要的Delaunay三角形的定理和性质,也体现出了Delaunay三角剖分的优点。
接着重点分析了构造二维Delaunay三角形的空洞算法,并用程序完成了它。
最后又分析了算法中的不足,并给出论文改进的方法。
关键词:Delaunay三角形,V oronoi图,网格剖分III1 第一章绪论1.1网格剖分的背景有限元分析是数学的一个分支。
其思想是将复杂的问题简单化,然后进行处理。
处理办法是将整个研究对象分成一些有限的单元,然后对每个小单元做相应的处理,最后整合起来去逼近原来的整个对象。
所以我们可以看到,有限元分析中将单元剖分的越小,得到的近似值就会越逼近真实值。
但是往往我们需要处理的对象很复杂,需要的计算量也很大,人工很难完成。
在早起年代,这个问题也阻止了有限元分析的发展。
近年来,随着计算机的发展,带动了一些需要大量计算的科学领域的发展。
有限元分析就是其中一种,因为当计算机取代人力之后,其快速的计算能力作用愈发凸显,人们只需要控制相应的算法即可。
作为最常用的处理手段,被大大的发展了之后,有限元分析也被应用于诸多方面。
早期的有限元分析主要应用与航空航天和地质、地球物理方面,现在越来越多的在工程分析计算和计算流体力学中看见。
图 1.1图 1.2常见的有限元分析可以分为六大步骤:问题及求解域的定义、求解域的网格剖分、确定状态变量及控制方法、单元推导、总装求解和结果解释。
上述步骤又可被分为三大阶段:前置处理、计算求解和后置处理。
而在前置处理中网格剖分作为最重要又最复杂的一个步骤,其处理结果制约着有限元的最后逼近结果。
网格剖分有很多形式:二维的主要剖分形状有三角形、四边形,三维的有四面体、六面体。
在有限元分析中网格剖分有如下要求:1、节点合法性。
指每个单元的节点最多只能是其他单元的节点或边界点,而不能是内点。
一种改进的Delaunay 三角形化剖分方法

收稿日期:2000205221作者简介:徐明海(1964-),男(汉族),山东平度人,副教授,硕士,现从事稠油热采数值模拟及优化方面的研究。
文章编号:100025870(2001)022*******一种改进的Delaunay 三角形化剖分方法徐明海1, 张俨彬2, 陶文铨3,(1.石油大学储运工程系,山东东营257061;2.胜利石油学校,山东东营257061;3.西安交通大学,陕西西安710049) 摘要:提出了一种基于Bowyer 2Wats on 算法的平面区域Delaunay 三角化剖分的改进方法。
它结合了前沿推进法的内部结点生成技术和Delaunay 联点网格生成技术,使得每插入一点所破坏的单元尽可能地少。
采用适当的数据结构,使Delaunay 搜索过程限于局部,算法大为简化,易于编程,浮点计算量少,同时也避免了使用函数递归调用。
采用在基网格上定义网格步长的办法控制网格的疏密,使网格疏密易于控制。
几个算例表明,该算法是行之有效的。
关键词:非结构网格;三角形单元;Delaunay 剖分;数值模拟中图分类号:T K 121 文献标识码:A引 言非结构化网格是相对于结构化网格而言的,它具有分布灵活、适应复杂区域剖分及局部任意加密的优点。
非结构网格需要较多的前期处理工作,网格形成一般不能用手工操作,须采用计算机自动剖分。
三角形网格自动剖分以Delaunay 三角化和前沿推进法两类方法为基础。
为了提高自动剖分程度、减小剖分的手工工作量和运行机时,近20年内发展了许多剖分技巧。
Peraire [1]给出了基于两点的前沿推进网格生成的基本方法,Eymard [2]给出了基于三点的前沿推进法。
Joe [3,4]和Weatherill [5]给出了Delaunay 剖分的各种改进方法。
两类方法相比较,前沿推进法所用到的数据结构较为简单,但浮点运算工作量较大,容易因硬件舍入误差引起失效。
Delaunay 剖分的浮点运算主要集中在搜索插入新点所破坏三角形的过程中,相对而言,其浮点运算较少,但一般需要全域枚举或采用递归技术局部寻找被破坏的三角形。
【国家自然科学基金】_约束三角剖分_基金支持热词逐年推荐_【万方软件创新助手】_20140731

2012年 序号 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48
科研热词 delaunay三角剖分 约束三角剖分 高斯曲率 非均匀采样点集 隐式曲面 边界线 边界一致恢复 轮廓 表面重建 表面模型 虚拟手术系统 网格质量 网格生成 网格 缺陷检测 约束delaunay三角剖分 粒子系统 简约束 特征分布 棱柱三角形对 果实 构网 方向性点 拓扑近邻点 快速定位 影响域 平土零线 局部特征 实测巷道 孔洞 壳空间 均值漂移 土方计算 圆结构光 四面体 合成算法 台阶式 区域树 分层建模 三角网格化 三角网格 三角化 三角剖分 三维重构 voronoi图 loose rsample理论 grimshift delaunay四面体
推荐指数 3 2 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
2013年 序号 1 2 3 4 5 6 7 8 9 10 11 12 13
科研热词 推荐指数 连通子图 1 虚拟装配 1 约束三角剖分 1 约束delaunay四面体剖分 1 约束delaunay三角剖分 1 约束 1 碰撞检测 1 包围体 1 冗余面片 1 公差 1 体模型 1 三维地质建模 1 k-means聚类 1
推荐指数 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
2011年 序号 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25
基于重心Delaunay三角剖分的蓝噪声点采样算法

第30卷 第7期 计算机辅助设计与图形学学报Vol.30 No.7 2018年7月Journal of Computer-Aided Design & Computer GraphicsJul. 2018收稿日期: 2017-07-05; 修回日期: 2017-08-30. 基金项目: 国家自然科学基金(61472332); 福建省自然科学基金(2018J01104). 齐若同(1992—), 女, 硕士研究生, 主要研究方向为计算机图形学; 肖艳阳(1991—), 男, 博士研究生, 主要研究方向为计算机图形学; 曹 娟(1983—), 女, 博士, 副教授, 硕士生导师, CCF 会员, 主要研究方向为CAGD&CG; 陈中贵(1982—), 男, 博士, 副教授, 硕士生导师, CCF 会员, 论文通讯作者, 主要研究方向为计算机图形学、数字几何处理.基于重心Delaunay 三角剖分的蓝噪声点采样算法齐若同1,3), 肖艳阳1,3), 曹 娟2), 陈中贵1,3)*1) (福建省智慧城市感知与计算重点实验室(厦门大学) 厦门 361005) 2)(厦门大学数学科学学院 厦门 361005) 3)(厦门大学信息科学与技术学院 厦门 361005) (chenzhonggui@)摘 要: 为了生成带有高质量蓝噪声性质的采样分布, 提出一种基于重心Delaunay 三角剖分的点采样算法. 该算法将Delaunay 三角剖分与1-邻域三角片重心相结合, 迭代地将每个采样点移至其1-邻域三角片的重心处并更新采样点之间的拓扑连接关系; 重心通过给定的密度函数计算得出. 实验结果表明, 本文算法在运行效率与鲁棒性方面均有一定优势.关键词: 蓝噪声采样; Delaunay 三角剖分; 重心1-邻域三角化 中图法分类号: TP391.41 DOI: 10.3724/SP.J.1089.2018.16760Blue-Noise Point Sampling Based on Centroidal Delaunay TriangulationQi Ruotong 1,3), Xiao Yanyang 1,3), Cao Juan 2), and Chen Zhonggui 1,3)*1)(Fujian Key Laboratory of Sensing and Computing for Smart City, School of Information Science and Engineering, Xiamen University, Xiamen 361005)2) (School of Mathematical Sciences, Xiamen University, Xiamen 361005)3)(School of Information Science and Engineering, Xiamen University, Xiamen 361005)Abstract: We present an algorithm for generating point distributions with high-quality blue noise character-istics based on centroidal Delaunay triangulation. The method combines Delaunay triangulation with cen-troidal patch triangulation, and iteratively moves each vertex to the centroid of its 1-ring neighborhood and updates the topological connectivity between the sampling points. The centroid of a patch is calculated by using a given density function. The experimental results demonstrate the effectiveness and robustness of the proposed algorithm.Key words: blue-noise sampling; Delaunay triangulation; centroidal patch triangulation1 相关工作采样在计算科学中是一项重要技术, 计算机图形学从本质上来讲是一个采样的过程, 对于采样问题可以理解为关于如何生成一组带有某种分布特征的点集. 该技术是指在给定空间内的有界采样域的前提下, 将这些采样点放置于采样域内合理的位置, 使得形成的采样分布满足用户需要的一些特性.如何生成符合用户需求的采样模式是计算机图形学中的一项重要课题. 通常情况下, 希望采样点1206计算机辅助设计与图形学学报 第30卷均匀且随机地分布在采样区域内, 这种分布结构之所以表现出色, 原因是它们表现出了低差异性和随机性. 这与灵长类动物视网膜上的感光器的分布十分相似, 因此人类的眼睛也更倾向于拾取这些模式.Ulichney [1]将具有上述性质的采样称为“蓝噪声”采样, 本意是指具有最小低频分量和没有集中的能量尖峰的任何噪声, 也指采样点的均匀、非结构化分布, 这意味着没有由低频造成的结构混叠现象, 也没有间隔很小的局部点簇. 对应到频域中, 低频处接近于0, 而高频处接近白噪声, 如图1b [2]所示. 蓝噪声采样在各领域迅速普及, 可以被认为是广泛应用的最佳采样模式. 图2分别展示了一幅图像的随机采样(如图2a 所示)与蓝噪声采样(如图2b 所示)的点采样分布对应的视觉效果[3]. 蓝噪声采样在渲染、点画图、动态采样及网格生成等方面有重要的应用[4].a. 感光器的分布b. a 对应的光学变换图1 猴眼感光器的分布及其对应的光学变换a. 随机采样b. 蓝噪声采样图2 图像的随机采样和蓝噪声采样视觉效果对比本文提出一种基于重心Delaunay 三角剖分的蓝噪声点采样算法. 该算法结合Delaunay 三角剖分与1-邻域三角片重心的概念, 迭代更新采样点位置与采样点之间的拓扑关系, 最终得到高质量的具有蓝噪声性质的采样分布.用于计算机图形学中蓝噪声采样的一类经典技术是基于Poisson 圆盘分布[5], 该分布所包含的点在空间中均匀且随机地分布, 采样点之间以一个最小距离min d 约束, 从而使彼此离散. 当这些采样点被当做信号解释为辐射波长时, 它们的平均傅里叶功率谱产生蓝光, 证明了其具有前文所述的蓝噪声频谱性质.目前已经有很多这类生成算法, 最早的是1986年Cook [2]提出的“掷飞镖”算法. 该算法从一个空的采样点集合开始, 随机产生候选点x , 如果这个点与采样点集里的其他点i x 之间的距离大于给定的阈值r , 即Poisson 圆盘的半径, 则将该点加入到采样点集合中, 如此迭代下去, 直到满足一定的采样点数目; 但随着采样点的增加, 这种方法也许会出现多次连续选点失败的现象, 也就是多次选点都出现与集合中的点i x 之间的距离小于阈值r . 故McCool 等[6]通过适当收缩半径, 以允许添加更多采样点的方法来增大采样点的覆盖率. 然而这类方法难以操纵或改变所产生的样本分布, 并且运算代价较高, 采样点的个数也无法精确控制. 为此, 许多方法对其进行改进和加速. Dunbar 等[7]提出一种扇形结构来记录剩余的可接受的采样区域, 加速效果明显; 但该方法具有较强的偏向性, 采点随机性降低. Yan 等[8]基于正则三角剖分和Power 图系统地讨论了Poisson 圆盘之间的间隙, 并给出相应的算法.另一类比较经典的算法则是基于松弛算法的采样, 该类算法将采样点分布与某些拓扑结构相结合, 如Voronoi 图或其对偶Delaunay 三角剖分等, 进而将问题转化为关于采样点坐标的能量函数优化问题. 这类方法主要包含2个步骤: (1) 生成初始采样点集合; (2) 基于集合与拓扑的能量函数来优化点集中点的位置, 迭代直至收敛.Du 等[9]最先提出重心Voronoi 图(centroidal Voronoi tessellation, CVT)的概念, 所有采样点均位于各自V oronoi 区域的重心. 经典的Lloyd 算法[10]正是基于CVT 来实现的, 该算法也被称为CVT 算法, 其生成的采样点分布满足蓝噪声应有的均匀性; 但随着迭代次数的增加, 这样的点分布呈现出一定的规则性, 因为Voronoi 细胞是一种接近正六边形的栅格, 如图3所示, 这与蓝噪声采样应具有的随机性相悖. Reinert 等[11]提出将采样点投影到低维空间并与Lloyd 方法相结合, 有效地降低了规整性这一缺陷. 结合测地距离, 陈中贵等[12]提出了一种保持图像特征的CVT 算法, 由于特征附近的采样点无法越过边界, 避免了最终结果的规整性, 并呈现良好的均匀性.第7期齐若同, 等: 基于重心Delaunay三角剖分的蓝噪声点采样算法 1207图3 规则Voronoi划分基于容量约束的思想, Balzer等[13]提出容积约束的V oronoi划分(capacity-constrained V oronoi tes-sellation, CCVT)算法, 其中, 每个采样点仍位于其相应Voronoi区域质心位置, 且每个Voronoi区域的容量都尽量相等. 在二维空间中, 面积则是容量的一种最基本表现形式. 当给定某个密度函数时, 容量的概念则替换为每个V oronoi区域的密度积分. CCVT采样已被证明具有良好的蓝噪声性质, 但由于Voronoi区域的容量计算复杂, 该算法通过将采样区域离散为额外的采样点来近似计算每个区域的容量, 导致样本数比给定的采样点数n大出几个数量级, 非常影响算法效率. 后来, Li等[14]基于GPU实现一种快速CCVT算法(fast capacity con-strained Voronoi tessellation, FCCVT), 但其思想仍然采用离散化近似容积, 对于大数量级采样点的优化加速仍然受限.基于变分的思想, Chen等[15]将生成CCVT的过程转化为一个非线性优化问题, 在极小化其目标函数的过程中不断地更新点集. de Goes等[16]基于最优传输的连续约束最小化问题重构了CCVT算法, 并且采用Power图代替CCVT算法中的V oronoi 图, 最终得到了良好的蓝噪声采样效果.Xu等[17]提出基于容积约束的Delaunay三角方法(capacity-constrained Delaunay triangulation tes-sellation, CCDT), 将复杂的Voronoi区域替换为Delaunay三角剖分, 此时容量也就转化为每个Delaunay三角片的容量, 二维情况下即三角片的面积. 该方法很好的解决了运行效率问题, 但算法略微复杂. 陈中贵等[18]提出一种结合拓扑优化的最优Delaunay三角剖分(optimal Delaunay triangu-lation, ODT)方法[19], 有利于跳出ODT的局部最优解, 获得更好的顶点分布. Ahmed等[20]也提出一种基于Delaunay三角剖分的蓝噪声采样方法(简称为push-pull), 通过不断地移动1-邻域顶点(太近的推开, 太远的拉近), 同时优化对应的Voronoi细胞的容积来获取蓝噪声采样.相似地, 本文也采用松弛算法, 利用基于1-邻域三角化重心(centroidal patch triangulation, CPT)[21]的原理, 采用Delaunay三角剖分作为拓扑结构与采样点相结合的算法进行蓝噪声采样, 并将其命名为基于重心Delaunay三角剖分(centroidal Delau-nay triangulation, CDT)的蓝噪声采样算法; 同时结合OpenGL中的渲染功能, 实现一种原理简单、收敛速率快, 且具有一定鲁棒性的算法.2 本文算法2.1 CPT原理对于N空间中一组给定的采样点集, 表示为1{}n Ni iX x-=⊂ . 记T为采样点集X的三角剖分,对任意一点i x X∈, 所有与该采样点相邻的三角片构成的集合称为点i x的1-邻域区域, 用iΩ来表示, 如图4所示. 每个iΩ的重心会参照一个定义在凸域NΩ⊂ 上的密度函数()xρ表示,()0xρ>,()dix xΩρ<∞⎰. iΩ的重心定义为()d()diiix xcxΩΩρσρσ=⎰⎰(1)图4 采样点的1-邻域及其重心示意图若任意一点i x T∈都与该采样点区域的重心ic重合, 则对点集X的三角剖分T被称为重心1-邻域三角剖分. Chen等[22]采用CPT获得了高质量的曲面网格.2.2 算法描述Delaunay三角剖分有诸多优良性质, 如空圆特性、最大化最小角等, 在计算机图形学的多个领域中都有应用. 文献[19]中已经证明了当Ω为一个凸包, 对于一个固定数量的点集X, 其最优的连接关系, 也即加权插值误差最小时, 就是对该点集的Delaunay三角剖分. 故文献[21]中提出了基于1208计算机辅助设计与图形学学报 第30卷Delaunay 三角剖分的拓扑结构来生成CPT 的目标方程, 称之为重心Delaunay 三角剖分, 定义为()21(,)d inii F X T x x x Ωρσ==-∑⎰ (2)其中,T 为点集X 的Delaunay 三角剖分, (,)F X T 的最小值是通过最小化每个采样点x i 的1-邻域i Ω的能量值来实现的, 即i x 最优的位置*i x 满足()2*min d ii i i ix x x x x ΩΩρσ∈=-⎰ (3) 事实上,i Ω的重心i c 正是式(3)的解, 文献[21]中将该问题分解为2个子问题来求解, 并设计一个基于两步迭代的算法用来生成这个1-邻域i Ω的重心:(1) 更新拓扑结构, 即更新对点集X 的Delaunay 三角剖分.(2) 更新采样点位置, 逐一调整点集中的点i x , 使其与相应的1-邻域i ΩT ∈的重心i c 重合, 即*i i x c = (4)这一步骤与前文所提到的Lloyd 算法[10]很相似. Lloyd 算法将采样点的位置移至该点相应的Voronoi 区域重心, CDT 算法则是将采样点位置移至该点相应的1-邻域Delaunay 三角片的重心. 本文将CDT 算法应用于图像的蓝噪声采样中, 不仅展现了不错的视觉效果, 而且从与现有方法的对比来看, 在运算效率方面也有很大优势.初始化一个采样点集X , 然后迭代进行下面的步骤, 直到满足一定的停止条件. 算法步骤如下:输入. 采样点数n , 迭代次数N . 输出. 具有蓝噪声性质的采样分布.Step1. 适应性采样初始化, 建立初始采样点集. Step2. 更新拓扑关系, 对点集建立Delaunay 三角剖分.Step3. 计算重心, 计算采样点1-邻域Delaunay 三角片重心.Step4. 更新采样点几何位置, 将每个采样移至该点相应的1-邻域重心处.Step5. 若迭代次数超过给定值N , 算法结束; 否则, 转Step2.2.2.1 适应性采样初始化在计算机图形学的实际应用中, 人们期望采样点集的分布能够根据某个给定的密度函数()x φ来进行. 当该密度函数为一个常量时, 对应的采样为均匀采样. 对于这种采样, 本文通过随机算法在采样区域内随机地生成给定点数的采样点, 建立初始采样点集X , 此时的采样分布具有前文所述的白噪声性质. 当密度函数为非常量时, 对应为非均匀采样. 例如, 在图像点画风格处理技术中, 给定一幅灰度图, 以不同的分布密度()x φ拟合图像上对应的灰度, 从而使输出的采样分布在视觉上与初始图片十分相似. 具体过程如下: 先将输入的图片转化为灰度图, 将灰度归一化后作为相应的密度值; 再从(0,1)随机生成一个数m , 比较两者大小, 若后者比前者值大, 则保留该点. 这样最终的效果则是更多的点位于图像密度高的区域, 更少的点位于密度小的区域.然而, 均匀采样情况下仅采用随机化方法生成的初始采样点难免会有分布不均的局部点簇, 同样地, 非均匀采样情况中初始采点的方法也不能保证初始分布的连续性, 在某些局部仍然会出现分布不均的情况. 由于本文算法是基于局部优化来进行迭代操作, 当达到局部最优时, 会对满足蓝噪声性质中的均匀性产生一定的副作用. 本文的目标是尽可能将初始化做得更好, 故在初始采点之后还用到文献[16]中的带容积约束的Power 图生成方法, 使得初始点集分布在相同面积区域上的点的个数相同.2.2.2 建立Delaunay 三角剖分根据初始采样点集构建出初始的Delaunay 三角化结构, 本文采用的是计算几何算法库[23]中的标准Delaunay 三角剖分算法.可以看出, 式(3)只考虑了内部顶点的情况, 即有完整的1-邻域三角片的采样点. 由于该算法使用重心位置来更新采样点的位置, 根据重心的性质, 计算出的位置i c 一定会落在采样点相应的1-邻域内部i Ω. 如果边界点也按照该公式计算并更新边界上采样点的位置与相关的连接关系, 那么边界点就会逐渐向区域i Ω的内部移动, 导致该采样点集的Delaunay 三角剖分所覆盖的区域会随着迭代次数的增多而不断萎缩, 无法完整地剖分指定的区域, 会得到错误的结果. 为了避免边界萎缩效应, 需要更好的保持边界, 本文采用2种方法: (1) 周期采样. 图5所示为根据周期采样生成的结果; (2) 通过给定的一个凸多边形D 作为一个有界域, 采用一个系数λ与采样域的大小乘积计算出一个阈值, 当采样点与采样区域边界之间的距离小于该阈值时, 该采样点就会被映射到边界上, 其中, 系数λ根据采样点的数量而定. 根据大量的实验发现, 该值取0.1~0.2效果较好. 将投射到边界的点作为边界点集, 在之后的迭代中, 边界点与第7期齐若同, 等: 基于重心Delaunay三角剖分的蓝噪声点采样算法 1209a. 初始输入图片b.最终采样分布 c.Delaunay三角剖分过程 d.c中黑框区域的渲染效果图5 渲染优化的过程内部点的处理方式有所不同. 对于边界点, 本文算法限定其只能沿着边界移动, 并且其位置只受其边界上相邻点的影响; 计算出该点与其相邻点的位置平均值作为该边界点更新的位置, 随着迭代次数的增加, 边界点也逐渐表现为均匀的采样分布, 在后续输出最终的采样分布时, 再将限定在边界的采样点去掉即可. 本文大部分的实验结果都采用了第2种方法.2.2.3 采样点位置更新计算采样点位置有2个步骤:Step1. 依次计算采样点1-邻域中的所有三角片的重心;Step2. 根据三角片重心计算该采样点对应的1-邻域的重心.在均匀采样情况下, 结合前文所述的三角形与多边形重心计算方法, 可以快速、准确的计算出每一个邻域的重心, 从而快速迭代更新点的位置,该算法每一次迭代的时间复杂度为()O n, 其中n为采样点个数. 然而, 对于生成点画图等的非均匀采样, 每个采样点1-邻域范围的三角片重心及该区域重心的计算都要结合相应的密度函数, Step2的计算要依赖Step1的计算结果, 而Step1中三角片重心计算的关键在于如何快速地寻找到每个三角片中包含的像素点与该像素对应的灰度值. 本文需要精确地计算出每个三角片重心的位置, 不能仅仅通过三角片3个顶点的像素位置与其相应密度值来进行计算, 因为像素是离散化的, 故采用栅格化的方法遍历求得重心位置.2.3算法优化本文算法最初通过包围盒与Bresenham算法[24]相结合的方法来实现, 但是实验表明该步骤十分耗时, 进一步实验发现, 时间主要消耗在判断图像中像素点所属三角片这一步操作. 因此解决该步骤的运行效率将是提升算法效率的关键.本文采用一种更快的基于渲染着色的实现方法: 利用OpenGL中的着色器并行地将每个三角片渲染为不同的颜色, 并将每个三角片的索引值编码为该三角片相应的颜色值; 根据屏幕上每个像素点的颜色信息判断其所属的三角片, 达到快速分类像素的目的. 该方法的中间步骤如图5所示,为了视觉上看得更清晰, 图中并没有将区域内所有的三角片着色后的效果体现出来. 从图5d中可以清晰地看出每个着色三角形中包含的像素, 完成这一步操作之后, 再通过三角片内像素对应的密度, 即每个像素的灰度值, 来求解出每个三角片的重心, 进而求得每个采样点对应的1-邻域重心,提高算法效率. 另外, 本文将对多幅图片作为输入进行非均匀采样, 并对比了使用渲染着色方法与栅格化方法分别采样所用时间对比.如图6所示, 以图5a的图片作为输入, 对应采样点数为2048, 图6a所示为CDT算法分别从0迭代到100次所用时间对比, 可以看出, 渲染分类的方法用时明显比栅格化方法用时短, 且随着迭代次数的增多, 这种优势会越明显, 反映在图中则是渲染着色方法的斜率比栅格化方法的斜率小,且采样点数越多, 2种方法的斜率差越大. 图6b所示为2种方法迭代30次, 不同采样点数所用时间的对比, 可以看出, 采样点的数目对渲染着色方法的影响较小. 相同的迭代次数、不同采样点所用的时间相差较小, 反映在图中则是折线图斜率比较平缓. 实验结果表明, 在采样点为16k时,对应的时间仅为3.83s; 而栅格化方法受到采样点数目的影响较大, 相同迭代次数的条件下, 不同采样点数目对应的时间差很大, 采样点数为16k的时间已经达到23.54s. 此时, 渲染着色方法的优势就凸显出来了, 它更适用于大规模点集的采样分布, 实用性更强.另外, 前文中通过局部地调整每个采样点在其一领域中的位置, 容易使采样点陷入局部最优状态. 因为最终结果很大程度上依赖于初始的输入, 所以需要一个充分随机化的分布作为输入.1210计算机辅助设计与图形学学报 第30卷图6 渲染着色方法与栅格化方法所用的时间对比本文采用模拟退火算法(simulated annealing, SA)[25], 在局部稳定的情形下进行全局扰动, 从而适当地减小非均匀初始化带来的影响. 与其他全局优化方法一样, SA 算法通常在计算代价上是昂贵的, 它从初始状态开始, 然后重复移动到当前状态的随机选择的邻居. 通常, SA 算法需要在达到全局最小值之前测试数千个状态.本文对当前点集随机扰动后再进行局部优化, 当它达到一个比上一个局部最优更好的状态时才将它移动到对应位置; 否则, 设定概率随机接受. 本文称这一操作为“扰动优化”, 每个采样点的扰动位置可以由*T 12(cos 2,sin 2)[,]i i i x x l u v u v λ=+ππt t (5)指定. 其中, i l 是与点i x 相连接的所有边的长度平均值, u 和v 是2个范围在[0,1]的随机数, 1t 和2t 是i x 的切平面中的2个相互正交的单位向量.事实上, SA 算法的效率依赖于算法参数的选取, 但没有适当选择这些参数的一般规则, 它们取决于问题的性质. 特别地, λ是在本文中的SA 算法中唯一需要设置的参数, 体现了扰动的量级. 如果λ太小, 扰动优化后的结果将很可能与之前局部最小化的结果无异, 计算工作将被浪费; 如果λ太大, 则相当于随机初始化重新开始优化. 本文经过大量实验发现, λ取值0.2时, SA 算法在本文的所有试例中均能取得较好的效果.2.4 算法讨论本文提出的CDT 算法能够产生优质的蓝噪声采样效果. 式(2)所定义的目标函数是三角剖分中每个顶点到其1-邻域范围内点的加权距离之和. 如前所述, 极小化式(2)这个目标函数的解等价于该顶点位于其1-邻域范围的重心上, 因此CDT 能够产生这样的最优Delaunay 三角剖分,即顶点之间尽可能均匀, 但并不要求1-邻域的顶点个数, 规律性低, 非常适用于蓝噪声采样.基于Poisson 盘最大化采样有这样一个事实, 即当点集中每个点的Voronoi 细胞都能够被其Poisson 圆盘覆盖时,该点集即为最大化采样[8]. 因此, 对某个顶点来说, Voronoi 细胞的最远角点必须在其1-邻域范围内, 即顶点的1-邻域范围内没有细长的三角形. 由于CDT 采用Delaunay 三角剖分, 并且不断地将顶点移动到其1-邻域重心上, 能够驱使点集均匀化, 因此非边界附近的内部点都能满足上述条件; 同时边界上的点也会移动到相应的中心位置, 因此CDT 在边界上的点足够多时能产生最大化的Poisson 盘采样.3 实验结果及分析下面通过实验来说明本文算法快速生成优质蓝噪声采样分布的有效性. 本文算法由C++实现,在3.20 GHz 的Intel Xeon 处理器, 12 GB 的RAM 的PC 机上运行.3.1 频谱分析频谱分析是用于评估点分布质量的常用方法, 由Ulichney [1]首次用于抖动模式的研究, 随后对采样点的分布周期图作平均化处理来估计其功率谱. 周期图由该分布的傅里叶变换决定, 每一次采样分布都有一个相应的周期图, 通过对k 组采样分布的周期图取平均获取其功率谱.具有蓝噪声性质的采样周期图是径向对称的, 从功率谱可以推导出2个有用的一维统计数据: (1) 径向平均频谱. 该统计应该呈现出典型的蓝噪声性质, 以低频截止的尖锐过渡区域开始, 随后具有一系列逐渐衰减的结构性波峰, 最后是一个较为平坦的高频区域; (2) 各向异性. 用来衡量频谱的径向对称性. 该统计应该平稳地保持在较低值处,第7期齐若同, 等: 基于重心Delaunay三角剖分的蓝噪声点采样算法 1211以表明优异的对称性. 频谱分析方法被Lagae等[26]用来比较不同方法生成泊松分布的差别. 后来Schlmöer等[27]扩展了文献[26]的工作, 提出一种更精确地用于分析平面上采样分布的频谱分析方法.本文算法生成的均匀采样点分布与Poisson圆盘分布十分接近. 故在二维平面上, 采用Schlmöer 等[27]提供的频谱分析工具(PSA)进行频谱分析, 进而验证本文算法生成的采样分布的蓝噪声性质. 3.2均匀采样均匀采样即在采样区域内密度函数的值处处相等. 为了对比不同方法生成的采样分布, 本文在单位正方形内均匀采样, 并将采样点个数设定为1024. 对于初始输入, 采用10组不同的采样数据集, 之后再对10组采样结果作平均化处理. 另外, 分别将蓝噪声采样领域比较流行的几种算法与本文算法对比, 包括经典的CVT算法[10], CVT算法的改进算法CCVT算法[13], 采用Power图作为拓扑结构的BNOT算法[16], 采用带容积约束的Delaunay三角剖分作为拓扑结构的CCDT算法[17]和push-pull算法[20]. 图7所示为不同的算法所生成图7 算法结果和频谱分析对比示意图。
delaunay方法

delaunay方法
Delaunay方法,又称为Delaunay三角剖分,是前苏联数学家Delaunay在1934年提出的一种三角剖分方法。
该方法满足所谓的“最大-最小角”优化准则,即所有最小内角之和最大,从而使得划分的三角形不会出现某个内角过小的情况。
这种方法在二维情况下可以描述为:对于给定的平面点集,只存在着唯一的一种三角剖分方法,满足Delaunay三角剖分的条件,即任意一个三角形的外接圆内不包括其他结点。
Delaunay三角剖分方法在各种二维三角剖分中具有全局和局部最优性。
它可以应用于数值模拟的网格生成,尤其在复杂外形的非结构网格生成中有广泛应用。
此外,Delaunay 三角剖分方法还可以推广至多维问题,例如在三维情况下,四面体的外接球内不包含其他节点。
在具体实施过程中,三维情况下的Delaunay三角化可以包括以下步骤:在三维空间内定义一个大的凸壳区域以覆盖所有将要插入的点;根据网格步长分布要求在凸壳区域内引入一个新点;标记将被删除的四面体(其外接球包含新点的所有四面体);建立空洞边界(由被标记的四面体组成的凸壳的外边界);在剩余四面体中查找被标记四面体的邻居以
建立有效的空间连续性;利用空洞边界上每个三角形的三个顶点与新点组成新的四面体;建立空洞外原四面体和新生成的四面体的邻居关系。
Delaunay三角剖分的最优化网格节点生成算法研究

Delaunay三角剖分的最优化网格节点生成算法研究张晶飞;李射;崔向阳【摘要】针对任意域Delaunay三角剖分存在的局部网格质量不佳问题,提出了一种改进的Delaunay算法.利用边界三角形单元节点和重心的关系是否满足右手定则来判断初始三角形单元是否位于剖分域内的三角形重心法,并保留剖分域内的三角形单元;对待插入节点进行最优化处理以获得高质量网格,避免产生畸形单元;算例结果表明,所提方法可以适应复杂几何边界区域的划分,并可获得质量较高的三角形网格.【期刊名称】《电子设计工程》【年(卷),期】2019(027)009【总页数】7页(P10-16)【关键词】Delaunay三角剖分;任意域;有限元网格;节点【作者】张晶飞;李射;崔向阳【作者单位】湖南大学汽车车身先进设计制造国家重点实验室,湖南长沙410082;湖南大学汽车车身先进设计制造国家重点实验室,湖南长沙410082;湖南大学汽车车身先进设计制造国家重点实验室,湖南长沙410082【正文语种】中文【中图分类】TP391对任意平面而言,Delaunay三角化法[1-3](DT)、栅格法和推进波前法是目前最为流行的3种平面网格划分方法[4]。
其中Delaunay三角化是计算几何的重要研究内容之一[5],其拥有优异的特性及较完善的理论体系,在很多领域得到了广泛应用。
该方法也是最为流行的全自动网格生成方法之一,它的“最大-最小角”特性可以自动避免生成小内角长薄单元[6],因此特别适用于有限元网格剖分。
但是在实际应用中仍然存在一些问题亟待解决,比如产生域外三角形、确定新节点插入位置等问题。
许多学者对产生域外三角形的问题进行了研究并提出了解决方案,如L。
A.Piegl[7]的边界外法向法、凸分解法[8]、边界指示法[9]、矢量三角形法[10]和解决域法[11]。
凸分解法需要将凹域分解成多个凸域,但难以处理多联通域问题。
矢量三角形法可以解决简单的凹多边形,然而对于自相交多边形效果不佳。
三角网构造原理

VB环境下不规则三角网的算法设计与实现江剑霞1,刘少华1,2,(1北京建筑工程学院,北京100044;2江西省数字国土重点实验室江西抚州344000;)摘要:本文对不规则三角网生长算法实现的研究,利用了VB强大的可视化用户界面及其编程语言的灵活性及简单易懂特点,基于各行业对于DEM的需要,从而开发出一种利用VB6.0语言生成基于生长算法的不规则三角网,结合数据库强大的数据库存取,编辑,查询功能,共同实现离散点的管理和三角网的构成。
关键词:不规则三角网;Delaunay三角网;VB环境;算法Algorithm designing and realizing of TIN In VBJIANG Jian-xia1,LIU Shao-hua1,2(1BeiJing Institute of Civil Engineering And Architecture,BeiJing,100044;2Digital Land Key Lab of JiangXi Province,Fuzhou344000)Abstract:the paper discuss the algorithm of the TIN which takes advantage of VB’s powerfully visible interface of user and flexibility and knowing easily of compiling procedure.On the basis of demanding for DEM for all professions,the author uses the VB language to develop a kind of TIN based on the growth-algorithm,in combination with the powerful function of the data base’s data accessed,edited and inquired about,achieving the management of the dispersed points and the construction of TINKey words:TIN,Delaunay,VB,algorithm1引言地球表面高低起伏,呈现一种连续变化的曲面,这种曲面无法用平面地图来确切表示。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
第26卷 第5期2010年9月地理与地理信息科学Geog ra phy and Geo-Infor matio n Science V ol.26 N o.5September 2010收稿日期:2010-04-21; 修订日期:2010-06-10基金项目:国家自然科学基金重点项目(50839001);国家自然科学基金项目(50874021、50779006);辽宁省高等学校科研项目计划(L20100321) 作者简介:赵晓东(1969-),男,博士,教授,从事GIS 在采矿、岩土工程应用和水动模型耦合的研究。
E-mail:xdong.zhao@基于GIS 的高质量约束Delaunay 三角网格剖分赵晓东1,晏小宝1,沈永明2,王 亮2(1.大连大学院士创业园中日地层环境科学研究中心,辽宁大连116622;2.大连理工大学海岸和近海工程国家重点实验室,辽宁大连116023)摘要:在分析现有非结构化网格剖分算法的基础上,提出了一种GIS 支持下的改进分治算法实现约束Delaunay 三角网格剖分。
该方法利用了GIS 的空间拓扑关系对算法输入数据进行预处理,基于三角形的统一数据结构实现了网格细化,对输出剖分网格进行准确的拓扑和约束条件的检查,并基于推进阵面算法思想,结合空间邻近拓扑关系实现了三角剖分节点和网格的重新编号,方便了实际问题中开边界条件的赋值,提高了计算效率。
实例应用表明,该方法大大简化了数值模型非结构化网格剖分的前处理过程,集成了几种综合算法的优点,在保证原分治算法时间复杂度的基础上,提高了约束条件下Delauna y 三角网格生成的质量。
关键词:网格剖分;GIS;约束Delaunay 三角剖分中图分类号:P208 文献标识码:A 文章编号:1672-0504(2010)05-0024-050 引言在应用有限元、有限差分和有限体积法对力学问题进行数值计算的前处理中,网格自动剖分占有重要的位置。
目前,实现网格剖分的算法很多,而且不断有新的算法推出,其相关研究领域不仅针对数值模拟计算,对GIS 数据表达、地学分析、计算机视觉、表面目标重构等众多领域也是一项重要的应用技术[1-3]。
网格剖分可分为结构化网格(Structured Gr id)和非结构化网格(Unstructured Grid)两种。
非结构化网格易于控制网格单元大小、形状及网格点位置,可以实现合理分布网格的密度,提高计算精度,因此具有比结构化网格更大的灵活性和对复杂边界更强的适应性。
生成二维非结构化网格的常用方法[4]有四叉树法(Quadtr ee)、Delaunay 三角剖分法(Delaunay T riangulation,DT)和推进阵面法(Ad -v ancing Fr ont M ethod,AFM)以及几种方法的综合和改进。
由于Delaunay 三角网是Vor ono i 图的直线对偶图,具有空外接圆和最大最小角特性,还可以尽可能地避免病态三角形的出现,实现约束条件下的三角剖分,因此,在数值计算非结构化网格剖分和GIS 三角网(T IN)的数据格式表达中广泛使用。
目前常见的构建Delaunay 三角网的算法有:分治算法(Div ide -and -conquer )、逐点插入算法(Incre -m ental Insertio n)、生长算法和扫描线算法(Sw eep -line)[3,5-7],其中以分治算法效率最高,时间复杂度为O(N logN)[5]。
由于实际的不同需要,除几何约束条件外,对三角剖分的角度、大小和节点物理量的控制也都有相应约束,目前的剖分算法尚不能满足以上全部约束条件进行剖分。
本文基于改进的分治算法,提供了梯度变化和针对实际问题的单元和节点重编号,并利用GIS 强大的空间数据处理和分析功能对算法做数据前后处理,保证了高质量约束Delaunay 三角网格剖分的生成。
1 约束Delaunay 三角化方法分治算法[5]的基本思路是把输入点集分割为数个较小的点集,在各个子点集内生成小三角网,再逐级合并的一个递归过程。
子点集最终只有两点或者三点,形成一条边、共线边或者三角形。
算法必须将点集连接为凸区域(凸壳),对凹区域和多连通区域会产生域外三角形,无法保证约束边的存在。
约束Delaunay 三角化的分治算法的关键过程及实现方法如下。
1.1 点集划分原分治算法只有Y 轴方向的分割,这里改进为交替分割[8],即点域X 轴方向的长度大于Y 轴方向的长度,则以X 轴方向对半分割点集,否则以Y 轴方向对半分割点集。
该过程为递归调用的分割过程。
1.2 约束特征线重构在Delaunay 三角剖分上,采用逐次加入约束特征线的方法进行约束重构,可以证明该重构方法是收敛的[4],具体步骤如下:1)对于任一条约束直线,查找与之相交的三角形,即该约束线穿越的所有三角形组成的影响域;2)删除该影响域内的所有三角形,形成一个多边形空腔,称为恢复域;3)以该约束直线为界将恢复域一分为二,形成两个多边形子域;4)对这两个多边形子域进行Delaunay 三角剖分,得到包含约束直线的影响域内的三角剖分;5)重复上述步骤,直至所有的约束线都被加入。
1.3 基于三角形的统一数据结构Delaunay 三角剖分涉及三角形和线段两类几何数据,如果将线段表示为退化的三角形势必增加算法特殊情况判断的冗余。
如图1a 所示,利用/影子0层表示完整的三角形结构,凸壳上的每一线段有一个顶点在无穷远处(算法中采用空指针)的/影子0三角形,特征线段有两个/影子0三角形。
图1b 中下端虚线三角形为子网合并中新建的/影子0三角形,阴影的三角形采用局部LOP 优化算法[7],保证三角形的Delaunay特性。
图1 分治算法的三角形数据结构和子网合并[9]Fig.1 Data s tructure of triangle and halfway through a mergestep of the dividing and conqu ering algorithm1.4 网格细化修正剖分细化是在网格中插入顶点细化网格,使得网格最大和最小角满足约束。
本文采用Shew chuk 的细化算法[9,10],它是对Ruppert 和Chew 提出算法[11,12]的综合改进算法,顶点插入使用LOP 算法[7],保证Delaunay 特性,遵循两个规则:规则1:一条线段的直径圆是唯一且最小的包含该线段的圆。
如图2所示,如果有一点位于直径园内,则称该线段被侵入。
任何被侵入线段在其中点位置插入顶点进行分割。
图2 线段被递归细分直至不被侵入为止[9]Fig.2 Segments are split recursively until nosegments are encroached规则2:一个三角形的外接圆是唯一经过三角形3个顶点的圆。
如果三角形的一个角度过小或面积过大的情况下满足了约束条件,则称该三角形为坏三角形。
如图3所示,以外心顶点(外接圆的中心)作为插入点进行分割。
图3 每个坏三角形线在外心顶点插入分割[9]Fig.3 Each bad triangle is split by inserting a vertexat its circumcenter剖分细化具体算法如下:1)取约束线段集合中的每一条约束线段,检查它是否被其他点侵入,是则转第2步;否则转第3步。
2)按规则1将约束线段分割,将新的约束线段加入约束线段集合,转第1步。
3)取剖分三角形集合的三角形进行检查,全部合格,转第5步;否则,对于不满足约束条件的三角形按规则2插入点。
4)如果插入点不侵入约束线段,将该点插入网格中,转第3步;否则,转第2步。
5)算法收敛停止。
2 GIS 支持下约束Delaunay 三角网格剖分高质量Delaunay 三角网格意味着必须满足一定的约束条件,而约束条件是根据工程需要或者数值模拟的条件给定的,如流体动力学问题一般在边界、结构物和扩散源附近采取网格加密方法,这些都要对输入点集进行预处理;输出的剖分三角形内角不能太大也不能太小,面积梯度变化适中。
因此,要实现本文提出的非结构网格生成算法,需要提取计算区域边界点的坐标,包括外边界和内边界上各节点光滑、间距的处理、内部约束特征线的设置等。
如图4所示,这些预处理都可以在GIS 的支持下完成,同时可以实现空间数据的管理,保证数据的拓扑准确性和剖分三角网格的正确性。
2.1 边界点的输入剖分算法输入的为点集的坐标值,非实际的拓扑数据,而且边界点组织直接影响到剖分输出的结果,需要在输入前进行必要的预处理。
如图4所示,按照拓扑关系,将输入数据划分为Poly gon 、Poly line 和Point 3种矢量数据,其涵盖了流体动力学问题中的海岸边界、岛屿、开边界和水深等高线等所有输入数据。
其中,海岸边界采用Do ug las -Peucker 算法做简化处理后,根据实际计算需要,对边界和岛屿边界页25第第5期赵晓东等:基于G IS 的高质量约束Delaunay 三角网格剖分线上节点进行光滑处理。
图4GIS下Delaunay三角化网格剖分流程Fig.4Flow diagram illustrating Delaunary triangulationmesh generation in G IS 2.2Delaunay三角网格剖分采用本文改进的分治算法实现约束Delaunay 三角网格剖分,并将算法集成在A rcGIS平台中。
如图5所示,直接输入经过预处理的边界控制线Poly-line、边界控制区域Polyg on和控制点Point,可直接输出Delaunay三角网格剖分网格及节点。
2.3三角剖分网格拓扑检查及编辑如果初始输入的约束之间没有形成尖锐角度,算法能够生成最小角度30b的Delaunay剖分网格,并具有较好的梯度。
但在初始约束不当和特殊约束条件下,算法还不能保证满足所有约束条件,因此对算法生成的剖分三角形的拓扑检查是必要的。
如图6所示,对局部没有满足约束条件的三角网格,可通过GIS下的拓扑编辑修正节点以满足其约束条件。
2.4剖分三角节点及网格的重编号算法生成的Delaunay三角网格是没有规律的,给实际数值模拟带来不便,如水动数值模型的边界条件是从开边界开始设定的,因此需要对剖分网格节点及网格重新编号。
这样不仅可以和数值模型开边界的编号完全耦合,还使得相邻网格之间和相邻节点间的编号跨度减小,从而减少计算中调用各网格信息的时间花费,提高计算效率。
重编号算法采用A FM法的思想,以开边界为起始边界,按照空间邻接关系向前推进,直到遍历所有剖分节点,具体步图5G IS下的Delaunay三角网格剖分Fig.5Delaunay triangulation mesh generation inGIS图6三角剖分网格拓扑检查Fig.6T opological ch eck on triangulation meshes骤如下[13]:1)如图7所示,给定起始边界线(这里为开边界线)、三角剖分Polyg on和剖分节点Point数据,设定排序方法;2)根据起始边界线空间检索与之相交的节点Point,检索结果按照设定方法排序;3)根据检索到的节点Po int空间检索与之相交的三角剖分Poly gon,以其中心点为基点对未排序三角剖分Poly gon按照设定方法排序;4)根据检索到的三角剖分Poly gon空间检索与之相交剖分节点Point,判断是否有未排序节点,如果没有,算法结束,否则,按照设定方法排序后返回第3步,直到算法收敛。