Delaunay Triangle 学习 2

参考

Delaunay Triangulation and Meshing Application to Finite Elements [book]

https://www.bilibili.com/video/BV1vi4y1x796?from=search&seid=8484114193065196500

https://en.wikipedia.org/wiki/Delaunay_triangulation 维基百科

http://paulbourke.net/papers/triangulate/ 所有带已经实现的代码

四面体的体积

\[V_{K}=\frac{1}{6}\left|\begin{array}{ccc}
x_{2}-x_{1} & x_{3}-x_{1} & x_{4}-x_{1} \\
y_{2}-y_{1} & y_{3}-y_{1} & y_{4}-y_{1} \\
z_{2}-z_{1} & z_{3}-z_{1} & z_{4}-z_{1}
\end{array}\right|
\]

面的点序

  • face 1: P4 P3 P2,
  • face 2: P1 P3 P4,
  • face 3: P4 P2 P1,
  • face 4: P1 P2 P3

边序列

  • edge 1:P1 P2,
  • edge 2:P1 P3,
  • edge 3:P1 P4,
  • edge 4:P2 P3,
  • edge 5:P2 P4,
  • edge 6:P3 P4,

求解四面体的球心的线性方程组

\[\Delta_{K}(x, y, z)=\left|\begin{array}{cccc}
l_{1}^{2}-l^{2} & l_{2}^{2}-l_{1}^{2} & l_{3}^{2}-l_{1}^{2} & l_{4}^{2}-l_{1}^{2} \\
x_{1}-x & x_{2}-x_{1} & x_{3}-x_{1} & x_{4}-x_{1} \\
y_{1}-y & y_{2}-y_{1} & y_{3}-y_{1} & y_{4}-y_{1} \\
z_{1}-z & z_{2}-z_{1} & z_{3}-z_{1} & z_{4}-z_{1}
\end{array}\right|
\]

其中\(l^{2}=x^{2}+y^{2}+z^{2}\) 球心的坐标,即要求解的值。

直接求解四面体的外接圆的半径

\(r_{k}=\frac{\sqrt{(a+b+c)(a+b-c)(b+c-a)(a-b+c)}}{24 V_{k}}\)

其中a,b和c是四面体对应的边的乘积。

内切球的半径

\[\rho_{K}=\frac{3 V_{K}}{S_{1}+S_{2}+S_{3}+S_{4}}
\]

其中\(S_i\) 是四面体的面的面积。

四面体的质量

\[Q_{K}=\alpha \frac{h_{\max }}{\rho_{K}}=\alpha \frac{h_{\max } S_{K}}{3 V_{K}}
\]

其中\(S_K\)表示四面体面的总面积\(\alpha=\frac{\sqrt{6}}{12}\)和从0-1描述质量的等式

\[Q_{K}=\beta \frac{h_{s}^{3}}{V_{K}}
\]

其中\(h_{s}=\sqrt{\sum_{i=1}^{6} L_{i}^{2}}\)和\(L_i\)表示四面体边的长度\(\beta=\frac{\sqrt{3}}{216}\)

重要提示

三维Delaunay元素允许条的存在。

三角化

欧拉公式

\(ns - na + ne + c = 2\) 其中ns是顶点数量,na是边的数量,ne是元素的数量,c是连接的组件边界三角化的数量(2d)

\(ns - na + nf - ne = cste\) 其中nf三角化面片的数量,cste是一个常量链接拓扑的区域



共形和非共形的三角形,如上图。

cste = 1,对于一个球

cste = 0,对于一个环

cste = 2,对于一个球有一个特殊的孔洞

因此在二维中,如果这有一个孔洞在三角化中,如果连接的组件的边界只有一个。\(ns - na + ne = 1\)

连接关系\(na_f - 2 \times na_i + 3 \times ne = 0\) (ne) 是元素的数量,(\(na_i\))是内部边的数量,(\(na_f\))是外部边界的数量。

在三维中,一个三角化是一个封闭的面满足关系\(ns - na + nf = 2\) (ns) 边界点在三角化过程中,na是边界边,nf是边界面。

空圆特性



即一个三角形的外接圆不包含相邻三角形的顶点。满足空圆特性的三角形的最小角一定大于不满足空圆特性的最小角

Delaunay剖分具有的优异特性:

  1. 最接近:以最近的散点形成三角形,且各线段(三角形的边)皆不相交。
  2. 唯一性:不论从区域何处开始扣减,最终豆浆得到一致的结果。
  3. 最优性:任意两个相邻三角形形成的凸四边形的对角线如果可以互换的话,那么最小角不会增大
  4. 最规则:如果将三角网中的每个三角形的最小角进行升序排列,则Delaunay三角网...
  5. 区域性:新增、删除、移动某一个顶点时只会影响临近的三角形。
  6. 具有凸多边形的外壳:三角网最外层的边界形成一个凸多边形的外壳。

网格的质量

\(Q_{\mathcal{M}}=\max _{K \in \mathcal{T}_{h}} Q_{K}\) 其中\(Q_{\mathcal{M}}\) 是网格中最差的元素。

3D的网格质量可以从2D中推导出来

\(Q_{3 D} \approx \frac{\sqrt{2}}{2} Q_{2 D}+1-\frac{\sqrt{2}}{2}\)

Delaunay Triangle 学习 2的更多相关文章

  1. Triangle 1.6 (A Two-Dimensional Quality Mesh Generator and Delaunay Triangulator)

    Triangle 一个二维高质量网格(mesh)生成器和Delaunay三角化工具. PSLG(Planar Straight Line Graph)约束Delaunay三角网(CDT)与Delaun ...

  2. 通过CGAL将一个多边形剖分成Delaunay三角网

    目录 1. 概述 2. 实现 3. 结果 4. 参考 1. 概述 对于平面上的点集,通过Delaunay三角剖分算法能够构建一个具有空圆特性和最大化最小角特性的三角网.空圆特性其实就是对于两个共边的三 ...

  3. Triangle - Delaunay Triangulator

    Triangle - Delaunay Triangulator  eryar@163.com Abstract. Triangle is a 2D quality mesh generator an ...

  4. Visualize Surface by Delaunay Triangulator

    Visualize Surface by Delaunay Triangulator eryar@163.com Abstract. Delaunay Triangulation is the cor ...

  5. OpenCV——Delaunay三角 [转载]

    从这个博客转载 http://blog.csdn.net/raby_gyl/article/details/17409717 请其它同学转载时注明原始文章的出处! Delaunay三角剖分是1934年 ...

  6. 现代3D图形编程学习-基础简介(2) (译)

    本书系列 现代3D图形编程学习 基础简介(2) 图形和渲染 接下去的内容对渲染的过程进行粗略介绍.遇到的部分内容不是很明白也没有关系,在接下去的章节中,会被具体阐述. 你在电脑屏幕上看到的任何东西,包 ...

  7. Css--深入学习之三角形气泡窗

    本文是作者从别的网站和文章学习了解的知识,简单做了个笔记,想要学习更多的可以参考这里:[css进阶]伪元素的妙用--单标签之美,奇思妙想 一.三角形的实现 首先,先画了三角形,后面二.三都是根据这个 ...

  8. Java学习笔记11

    package welcome; import java.util.Scanner; /* * 代数问题:求解2x2线性方程 */ public class ComputeLinearEquation ...

  9. jQuery.validationEngine.js学习

    项目中使用到了这个插件,抽了个空,看了一下. (function($){ var method ={} $.fn.validationEngine = function(){} $.validatio ...

  10. WPF学习之绘图和动画

    如今的软件市场,竞争已经进入白热化阶段,功能强.运算快.界面友好.Bug少.价格低都已经成为了必备条件.这还不算完,随着计算机的多媒体功能越来越强,软件的界面是否色彩亮丽.是否能通过动画.3D等效果是 ...

随机推荐

  1. SVN统计时间段内代码修改行数

    1.本地安装svn客户端(方法自行百度) 注:安装时记得勾选命令行工具 若原安装未勾选,可再次启动安装文件: 选中Next即可: 环境变量记得配置svn路径(bin)(方法自行百度) cmd运行命令 ...

  2. 康谋分享 | 直面AD/ADAS快速开发挑战:IVEX自动驾驶场景管理及分析平台!

    过去十年,自动驾驶和高级驾驶辅助系统 (AD/ADAS) 软件和硬件的开发成为了各大汽车公司的主要投资目标之一.各大汽车公司对 AD/ADAS 持续不断的投资加快了 AD/ADAS 组件的开发周期,但 ...

  3. Windows下将QT打包为可执行文件(exe)的完整流程,包含第三方库。

    打包我的 Qt/C++ 视觉应用:从依赖部署到单文件 EXE 的踩坑之旅 一.前言 最近完成了一个基于 Qt/C++ 的桌面视觉应用项目(proj_ai_vision_app).这个项目功能还挺复杂, ...

  4. 25.9K star!AI一键生成高清短视频,这个开源神器让内容创作起飞!

    嗨,大家好,我是小华同学,关注我们获得"最新.最全.最优质"开源项目和高效工作学习方法 "MoneyPrinterTurbo 是基于AI大模型的全自动短视频生成工具,只需 ...

  5. Windows系统常用端口详解

    7,9,13,17,19 这是几个简单的TCP/IP服务,在windows中被Simple TCP/IP Services管理. 7 : Echo 服务:将接收到的数据原样返回. 9 : Discar ...

  6. API测试基础之http协议

    http简介: http(超文本传输协议)是一个简单的请求-响应协议,它通常运行在TCP(传输控制协议)之上.它指定了客户端可能发送给服务器什么样的消息以及得到什么样的响应.请求和响应消息的头以ASC ...

  7. 设计模式之“模板方法模式(TemplateMethod)”

    一.使用场景 场景1 当我们要完成在某一细节层次一致的一个过程或一系列步骤,但其个别步骤在更详细的层次上的实现可能不同时,我们通常考虑用模板方法模式来处理 例如:将子类重复声明的方法提到父类去声明,利 ...

  8. Typora+PicGo+OSS搭建博客图床

    Typora+PicGo+OSS搭建博客图床 Q:为什么需要搭建博客图床呢? A:首先,博客园平台支持markdown语法进行创作 其次,最近想在微信公众号同步文章,在思考有没有多平台快捷发布的办法, ...

  9. k8s入门操作

    kubectl -->apiserver 管理工具 管理k8s集群 增删改查node kubectl get service/node/replicaset/deployment/statefu ...

  10. vue3 基础-API-computed

    前些章节讲了一些常用的 api 如 setup, ref, reactive, toRef ... 等, 并以一个 todoList 的小案例来体现在 vue3 中如何进行解耦逻辑, 以 setup ...