Delaunay三角网

  • Delaunay三角网定义
  • Delaunay三角剖分的重要准则
    • ==Lawson的局部优化算法(LOP)==
  • 不规则三角网(TIN)的建立
    • 分割合并算法
    • 逐点插入算法
    • 递归生长算法

Delaunay三角网定义

由一系列相连的但不重叠的三角形的集合, 而且这些三角形的外接圆不包含这个面域的其他任何点。
总结一句话就是生成的三角网中的任意一个三角形不能包含其他的三角形的顶点。

Delaunay三角剖分的重要准则



其中,空外接圆准则和张角最大准则是最常用的两种准则

Lawson的局部优化算法(LOP)

对于生成三角网的过程,在已经生成的三角网中插入新的点,会导致新三角网不再符合三角形剖分准则。基于最大最小角规则,Lawson也给出了局部优化算法(LOP),交换凸四边形的对角线,保留短的那条对角线,使三角网中所有三角形的最小角度最大化。

因此,在构网过程中,或者在原有的三角网中插入新的点集不需要每次都遍历整个三角网查找不符合三角剖分的三角形,并进行优化,因为除了新插入的点外的三角网都是符合三角剖分的。因此,LOP只需检测新三角形及其临近三角形,使其符合三角剖面即可,这样大大的节约了时间消耗。

不规则三角网(TIN)的建立

三角网构建方法:

分割合并算法

采用分而治之策略,将复杂问题简单化:

先将数据点分割成易于三角化的点子集(如每子集3、4个点),后对每个子集分别三角化,并由LOP优化成D_三角网;之后对每个子集的三角网进行合并,形成最终的D_三角网。

分割合并三角化算法如图所示:

STEP1

将数据集以横坐标为主、纵坐标为辅按升序排序。

STEP2

如数据集中点数大于阀值,则继续将数据集化为点个数近似相等的两个子集,并对每个子集做如下工作:

① 获取每子集的凸壳;

② 以凸壳为数据边界进行三角化,并用LOP优化成D三角网;

③ 找出连接左右子集两个凸壳的底线和顶线;

④ 由底线到顶线合并两个三角网。

STEP3

如数据集中点数不大于阀值,则直接输出三角剖分结果。

数据点集采用递归分割快速排序法;子集凸壳的生成可采用格雷厄姆算法(见后);子集三角化可采用任意方法,如子集最小到3或4个点则可直接三角剖分之;子网合并则需先找出左右子集凸壳的底线和顶线(算法见后),然后逐步合并三角剖分得到最终D三角网。

逐点插入算法

递归生长算法

Delaunay三角网相关推荐

  1. 生成三角网算法java,一种低效但逻辑简单清晰的Delaunay三角网生成算法

    由离散样本点生成Delaunay三角网有多种算法,每个算法的执行效率都不一样,这里介绍一种最简单,最低效,但是算法逻辑最清晰的一种. Delaunay三角网必须满足的一个条件是任何一个三角形的外接圆都 ...

  2. C++ 基于凸包的Delaunay三角网生成算法

    Delaunay三角网,写了用半天,调试BUG用了2天--醉了. 基本思路比较简单,但效率并不是很快. 1. 先生成一个凸包: 2. 只考虑凸包上的点,将凸包环切,生成一个三角网,暂时不考虑Delau ...

  3. 构建Delaunay三角网的VB源程序

    构建Delaunay三角网的VB源程序: /Files/njlhb/Delaunay.rar 转载于:https://www.cnblogs.com/njlhb/archive/2008/01/17/ ...

  4. TIN的构建、Delaunay三角网、Voronoi图

    一.TIN的三角剖分准则 (1)空外接圆准则 过每个三角形的外接圆均不包含点集的其余任何点. (2)最大最小角准则 两三角形中的最小内角>交换z凸四边形对角线后三角形的最小角. (3)最短距离和 ...

  5. Delaunay三角网之逐点插入法(优化版本一)

    文章目录 一.简介 二.实现代码 三.实现效果 参考资料 一.简介 正如之前博客Delaunay三角网之生长算法,

  6. 插入法构建Delaunay三角网

    插入法构建Delaunay三角网是通过将离散点依次插入初始三角网,形成新的三角网,最后通过易于通过LOP优化完成三角网构建,易于代码实现,列步骤如下: step1,求取离散点的外包多边形,并标记外包点 ...

  7. Delaunay三角网之分治算法

    文章目录 一.简介 二.实现代码 三.实现效果 参考资料 一.简介 Delaunay三角网现有的构网算法有很多种,有学者曾对其中一些算法进行了调查和评估(如下图所示).结果表明,在少量点时,Lawso ...

  8. C++实现Delaunay三角网生长算法

    目录 一.概述 1.1 三角网的介绍 1.2 Delaunay三角形 二.三角网生长算法 2.1 建立第一个三角形 2.2 扩展TIN 三.各部分代码实现 3.1 数据结构 3.2 算法过程 3.3  ...

  9. 结合二叉树和Graham扫描技术的高效Delaunay三角网构建算法

    结合二叉树和Graham扫描技术的高效Delaunay三角网构建算法 摘 要:为了提高不规则三角网的构建速度,提出了一种高效构建Delaunay三角网算法.首先对平面上的离散点集按一定的阈值进行分块 ...

最新文章

  1. 用Python解“打印九九乘法表”题
  2. 老程序员的经验和价值在哪里
  3. 设计模式-Observer模式
  4. 比特币的超能力:永恒不变
  5. C 常用新特性(上)
  6. 关于 QImage::Format_Mono
  7. java输出csv文件在excel中显示乱码
  8. linux进程磁盘io监测,系统性能检测--磁盘io
  9. redis的5种数据结构和基本操作
  10. AHCI和IDE区别,和在目前系统中设置 AHCI - 摘自网络
  11. python解析xml文件为pdf_用Python解析XML文件的软件实现
  12. 信息检索方法和步骤——怎样展开信息检索?
  13. 每日一记录,2022年1月5日
  14. [读书笔记]用户画像:方法论与工程化解决方案
  15. 次世代教程——美队盾牌雕刻
  16. 中西医结合外科疾病 100247
  17. 1.Containerd容器运行时初识与尝试
  18. virtualbox中安装xp系统、安装oracle数据库到虚拟机的xp系统中、主机连接oracle、备份xp系统、oracle数据库的一些基本概念(学习oracle数据库的准备工作)-day01
  19. Python读取Word文档内容
  20. Windows 环境JDK环境配置

热门文章

  1. 计算机软考高级的题型,浅析软考每年举办几次 软考题型都有哪些呢
  2. MTC荣膺“2020年度SAP Business One大中华区新零售行业伙伴”
  3. c++中“->“符号是什么?
  4. IMX6ULL嵌入式Linux驱动学习笔记(二)
  5. 强化学习系列之翻译OpenAI用户手册(一)
  6. python教程 w3c_W3C 教程
  7. php推广网址代码生成,PHP网址缩短代码(生成短网址)
  8. 一个女生写的c语言伪代码
  9. 2021-2027全球与中国信用证服务市场现状及未来发展趋势
  10. C# 实现IAccessible学习(四)读取QQ聊天窗口记录