三角网生成算法
㈠ 德洛内三角算法(Delaunay triangulation)基本方法是怎样的,说的详细些,另外与三维空间连接性有什么关
哈哈,刚好做了这道题~感情你也是学测量的?
荷兰气候学家A•H•Thiessen提出了一种根据离散分布的气象站的降雨量来计算平均降雨量的方法,即将所有相邻气象站连成三角形,作这些三角形各边的垂直平分线,于是每个气象站周围的若干垂直平分线便围成一个多边形。用这个多边形内所包含的一个唯一气象站的降雨强度来表示这个多边形区域内的降雨强度,并称这个多边形为泰森多边形。如图5-6-1,其中虚线构成的多边形就是泰森多边形。泰森多边形每个顶点是每个三角形的外接圆圆心。泰森多边形也称为Voronoi图,或dirichlet图。
图5-6-1泰森多边形
泰森多边形的特性是:
1、每个泰森多边形内仅含有一个离散点数据;
2、泰森多边形内的点到相应离散点的距离最近;
3、位于泰森多边形边上的点到其两边的离散点的距离相等。
泰森多边形可用于定性分析、统计分析、邻近分析等。例如,可以用离散点的性质来描述泰森多边形区域的性质;可用离散点的数据来计算泰森多边形区域的数据;判断一个离散点与其它哪些离散点相邻时,可根据泰森多边形直接得出,且若泰森多边形是n边形,则就与n个离散点相邻;当某一数据点落入某一泰森多边形中时,它与相应的离散点最邻近,无需计算距离。
在泰森多边形的构建中,首先要将离散点构成三角网。这种三角网称为Delaunay三角网。
对于泰森多边形(即Delaunay三角网)内的Delaunay三角形的构建方法应为:
1、凸包生成;
2、环切边界法凸包三角剖分;
3、离散点内插。
Delaunay三角形产生准则的最简明的形式是:任何一个Delaunay三角形的外接圆的内部不能包含其它任何点。它的最大化最小角原则是:每两个相邻的三角形构成的凸四边形的对角线,在相互交换后,六个内角的最小角不再增大。
而泰森多边形(即Delaunay三角网)的构建步骤应为:
1、离散点自动构建三角网,即构建Delaunay三角网。对离散点和形成的三角形编号,记录每个三角形是由哪三个离散点构成的。
2、找出与每个离散点相邻的所有三角形的编号,并记录下来。这只要在已构建的三角网中找出具有一个相同顶点的所有三角形即可。
图5-6-6泰森多边形的建立
3、对与每个离散点相邻的三角形按顺时针或逆时针方向排序,以便下一步连接生成泰森多边形。排序的方法可如图5-6-6所示。设离散点为o。找出以o为顶点的一个三角形,设为A;取三角形A除o以外的另一顶点,设为a,则另一个顶点也可找出,即为f;则下一个三角形必然是以of为边的,即为三角形F;三角形F的另一顶点为e,则下一三角形是以oe为边的;如此重复进行,直到回到oa边。
4、计算每个三角形的外接圆圆心,并记录之。
5、根据每个离散点的相邻三角形,连接这些相邻三角形的外接圆圆心,即得到泰森多边形。对于三角网边缘的泰森多边形,可作垂直平分线与图廓相交,与图廓一起构成泰森多边形。
怎么只能插入一张图片啊.......晕.......
㈡ c++用三角网生成等高线算法
1)任取一个参考点作为起始点P1,找出P1附近的一个参考点P2,以两点连线为基边,计算其直线方程。
2)再在附近找第三个点。取到前两点的距离平方和最小的点作为候选点,以该三点作圆,判断周围是否有落入该圆的点。如果有,则该三角形不是狄洛尼三角形,再选用第二个候选参考点进行同样的操作,直到没有其他参考点落入外接圆内为止,则该三角形就是狄洛泥三角形。
3)分边以该三角形的一边作为基边,用同样的方法形成其他三角形。直到所有参考点都参与构造狄洛尼三角网为止。