离散数据点集的3D三角划分算法研究

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
图1 Delaunay三角形外接圆的圆心 Vomnoi图,又称Difichlet图,是由一系列连接两 邻近点直线的垂直平分线组成的连续多边形,它使 平面上有区别的点按照最邻近原则划分平面,每个 点与其所在的邻近区域相关联。设S={Pl,P2,…, P。}是平面上n个点的集合,平面中与S上的点川 接近超过S中任何其他点的点集,定义了一个多边
③这些点可以表现出三维曲面的形状; ④原始数据点中包含有少部分的无用点,即噪 声点; ⑤原始数据点形成的表面可能会有一些孑L洞。 这些都是输入数据的一些基本特点,在处理这 些数据时必须考虑到这些特点。本文要把这样没有 规律的数据构造成三角网格,所构造的三角网格必 须要满足以下要求: ①这些三角网格要以两个表来表示,第一个表 内要包含有所有网格点的坐标,第二个则包含有所 有的三角形信息,每一个三角形要求有三个顶点; ②生成的三角形不能重叠;
万方数据
(1)给一个初始点A,然后找该点最近的点,搜 索时要知道该点所在的晶格Ⅲ,然后遍历该晶格及 周围的26个晶格内的数据并进行比较,找到距离最 近的点日,返回该点的ID;连接AB并作为初始三角 形的第一条边,把该边作为扩展基边。第一点的选 取要保证该点的临近点集有足够多的数据点来构造 一个形状较好的初始三角形,一般来说A的临近点 集中的点个数应当在10个以上。
基本思路是使问题简化,把点集划分到足够小,使其 易于生成三角网,然后把子集中的三角网合并生成
万方数据
最终的三角网,用局部优化(LOP,即Local Optimiza— tion Procedure)算法保证其成为Delaunay三角网,它 的优点是时间效率高,但需要大量递归运算,因此占 用内存空间较多,如果计算机没有足够的内存,这一 方法就无法使用;
(2)在扩展基边的一侧点集中按照Delaunay准 则去找与该边的两端点能形成较优三角形的三点, 该点需要满足距离此边的中点距离最短,与基边的 两端点连成的直线所组成的夹角为最大。如图4所 示,选择三角形PAB,这样就组成了第一个三角形, 将所有新生成的边与三角形信息用相应的链表存储 起来。边每使用一次,其数据结构中的UseTimes就 加1,因为每条边只能为两个三角形所有。同时把 三条边加入边链表中,把初始三角形加入三角形链 表中。
ed field according tO the Delaunay criteria,and finally covers the whole surface.In this paper the experimental results商Jlg this
Srewth triangulation algorithm are also given. Keywords:scattered data points,triangular mesh, flurfaPA!reconstruction, growth triangulation atSorithm,Delaunay
目前在通过三角网格构造连续光滑的曲面研究 方面已经有多种较为成熟的算法,但对如何得到三 角网格,即如何将数据点三角化,特别是对三维散乱 数据的三角化一直是整个问题的难点与瓶颈,对它 的研究还很不成熟。本文针对基于三角域的散乱数 据曲面重构研究领域中的关键问题——三维散乱数
收稿13期:2007年9月
据的三角化展开研究【2|。 近年来随着光学三维传感技术以及计算机技术
2008年第42卷№4
eellx=(In瞰一mim)/lO; eelly=(瑚珂一miny)/lO; cellz=(眦勉一minz)/lO; maxx,minx,maxy,miny删瞄,minz分别是x,Y,z 三个方向上最大与最小坐标值,cellx,celly,cellz分别 是x,Y,z方向上单位晶格的尺寸。 (3)给每个晶格分配数据,并给获得数据的晶格 编号:
2008年第42卷M
离散数据点集的3D三角划分算法研究

王宏志刘 江张世荣
北京科技大学
摘要:在实物测量造型过程中,根据离散点集进行三角网格划分是其关键环节之一,也是进行后续进行曲面 重构的前提和基础。本文在当前的三角网格划分方法比较之后,提出了一种散乱点集的三角网生长算法,该算法 无须对离散点集所对应的自由曲面进行分片投影,直接在3D空间从已划分区域边界到未划分区域按照Delaunay 准则生成三角网格,并给出了用此算法处理散乱数据的试验结果。
关键词:离散点集, 三角网格, 曲面重构,生长算法,Delaunay准则
Research on 3D Triangulation Algorithm for Scattered Data Points Wang Hongzhi Liu Jiang Zhang Shirong
Abstract:In the proee鹤of physical measurement and modeling,setting scattered data points triangular mesh is not only one of the key links,but also is the precondition and foundation of the follow—up surface roPongtruclion.After the analysis of different algorithms which deal with triangulation of scattered data points。a growth triangulation algorithm for scattered data points is put forward.This algorithm solves the problem that data points must be partitioned for multi—projection reahzed by traditional 2D tri— angtdafion methods.In the 3D triangulation process,the triangular mesh spreads from the buund盯y of triangulated field to untreat·
(2)数据点渐次插入算法(由Lawson提出),其 思路很简单,先在包含所有数据点的二个多边形中 建立初始三角网,然后将余下的点逐一插入,用LOP 算法保证其成为Delaunay三角网。此算法虽然容易 实现,但效率极低;
(3)三角网生长算法。这类方法通常首先从点 云数据中选定一个初始三角片(Seed Triangle),并作 为网格曲面的种子面加入三角曲面集,三条边分别 加入边界集。然后按照一定的规则从边界处向三角 曲面集中添加新的三角片元素,并实时刷新边界集, 通过曲面网格由局部到整体的动态增长最终生成一 张完整的三角网格曲面。
cri来自百度文库eria
1 引言

反求工程(Reverse Engineering,RE)是针对已有 产品原型,消化吸收和挖掘蕴含其中的涉及产品设 计、制造和管理等各个方面的一系列分析方法、手段 和技术的综合。它以产品原型、实物、软件或影像等 为研究对象,应用系统工程学、产品设计方法学和计 算机辅助技术的理论和方法,探索并掌握支持产品 全生命周期设计、制造和管理的关键技术,进而开发 出同类的或更先进的产品。Tamas Varady等人将基 于实物的反求工程建模分为四个步骤:数据采集、数 据预处理、曲面重建和CAD建模…1。其中曲面重构 的方法主要有两种思路:一种是基于四边域的B样 条及非均匀有理B样条(Non—Uniform Rational B. Sptine,M『RBS)方法,另一种是基于三角域的Bezier 方法。
含不止一个点。双向赋值的意思就是说,不仅知道 晶格内有那些点,而且知道点在哪个晶格内。同时 给晶格做个标记,如果晶格内数据个数为O,将标记 记为false表示,否则为true。在搜索相邻晶格的时 候,如果为false直接跳过。
图3撕相邻晶格
3.2初始三角形 初始三角形的要求:三角网格的生长首先从创 建初始三角形开始,为了得到较好的三角网格,初始 三角形需要满足上述的Delaunay准则。
形区域y(彬),称为讲的Voronoi区域。它是一个可 能无界的凸多边形,最多有n—l条边,每条边都在 pi和.s中另一点的垂直平分线上(见图2)。
圈2 delammy三角形与vorolld多边形对偶图 2.2三角网算法分类 根据构建三角网的步骤,可将三角网生成算法
分为三类17,8J:
(1)分而治之算法(由Shmaos和‰y提出),其
本文结合分治算法和生长算法的优点,提出了 一种新的生长算法。
3 三角网生长算法
3.1建立点云数据的K邻域 因为采集的数据是如上所述的散乱点云数据, 没有拓扑关系,不便于点云数据的处理,所以首先把 点云数据进行分割,建立点云数据的邻接关系。 给定一点P,P∈P,(P表示点云),则邻域可定 义为一个索引集Ⅳ。,对于Pi,i∈N。都满足一定的 邻域类型。邻域类型可以多种多样,但是应该可以 充分的表示一个局部的小面片,而且邻域类型只依 赖于点云的空间几何信息。点云的拓扑关系在本文 中定义为K—nearest neighbors邻域类型。根据不同 类型的点云类型可以采用不同的方法。下面介绍本 文的K邻域方法。 基于晶格的方法来分割点云,根据晶格与数据 点空间分布的对应关系,可以建立点的拓扑关系。 (1)算法的主要思想 在读入点数据的时候,先获得该点云的最大包 围盒,然后沿x。l,,z三个方向将其划分为10×10 ×10个单元晶格,即1000个晶格,该晶格的个数可 以根据数据量的多少进行改变。具体做法如下: (2)读入点数据,获得整体的包围盒信息,为了 程序实现起来不会有问题,最好把盒子的最大值扩 大0.1,这样在分配数据的时候不会落下数据。计 算晶格的大小:
for(iI吐m=0;m<Dam.size();m++) {
Int i=(iI吐)((DataEm].c0优dI瑚.x—IIli瓜)/cell)【); IIltj=(int)((Data[m].000Idp鸺.Y—miny)/celly); Int k=(int)((Dala[m].eoordpos.z—llli犯)/oellz); block[i][j][k].PointIndex.push-back(m); Data[m].x=i; Dam[m】.Y=j; Data[m].z=k; //双向赋值 }. Data[m]为点的索引号,Data.size()为整个数据 点的个数,block[i][j][k]为晶格号,coordpos.x,CO— ordpos.Y,coordpos.Z分别为Data[m]的三个方向上的 坐标。 这样划分以后,每个晶格就有26个邻接晶格, 如图3所示,这样既便于点云数据的精简,也便于点 的查询,注意这时的晶格内可能没有点,也可能包
的迅速发展,三维物体的全方位自动检测技术日益 成熟。三维物体外形的数据采集最常用的系统是激 光三角测量系统和结构光三维测量系统【3'4J,通过 光学三维测量系统得到的数据一般具有以下几个特 点:
①原始数据点的集合可以表示成一个有n个 点的表,在这个表中每一个点都有它自己的坐标;
②这些点是没有规律的,这就是说这些点在表 中的位置是随机的;
万方数据
工具技术
③相邻三角形的法向应该是同侧。 2三角网算法种类及各算法特点 2.1 Delaunay三角网法则
——De岫三角网法则L5J。 在介绍各种算法之前先认识一下一个重要法则
Delaunay三角网满足这样的法则:Delaunay三角 网为相互邻接而互不重叠的三角形的集合,每一个 三角形的外接圆内不包含其他点,三角形的最小角 最大,这样构造的三角形最接近正三角形。Delaunay 三角形由三个相邻点连接而成,这三个相邻顶点对 应的Vomnoi多边形有一个公共的顶点№J,顶点是 Delaunay三角形外接圆的圆心,如图1所示。
相关文档
最新文档