PCL 逐点插入法构建Delaunay三角网(C++详细过程版)

目录

  • 一、逐点插入算法
  • 二、代码实现
  • 三、结果展示
  • 四、测试数据

   Delaunay三角剖分分为直接三角剖分和间接三角剖分。间接三角剖分首先计算为Voronoi图,然后由Voronoi图产生Delaunay三角网。这种方法的算法复杂、内存开销大、效率低,现今很少使用。直接Delaunay三角剖分是利用离散点按照空外接圆或者最大最小内角性质,直接生成Delaunay三角网,是目前基于离散点三角剖分的主流算法。
  Delaunay三角剖分分成三类:分而治之算法、三角网增长算法和逐点插入算法。

一、逐点插入算法

  逐点插入算法的思想最早由Lawson(1977)提出,随后Lee和Schachter(1980)、Bowyer(1981)、Watson(1981)、Tsai(1993)等先后对其进行改进,是一种动态的构网方式。
  逐点插入算法的思路是将未处理的点加入到己经存在的Delaunay三角网中,然后判断点所在的三角形,如果点在三角形内,连接点与三角形的各顶点,利用三角剖分准则,找出影响区域,删除影响区域中的边,对影响区域利用三角剖分准则重新构网,直到区域中所有的点都加入到三角网中。该算法的基本步骤如下:

  1. 首先定义一个包含所有数据点的初始多边形,即包含所有数据点的凸闭包;
  2. 在凸闭包中构建初始Delaunay三角网;

你可能感兴趣的:(PCL,算法实现与优化,c++,算法,数据结构,3d,计算机视觉)