简介

三角化

参考链接

https://www.cnblogs.com/zhiyishou/p/4430017.html

三角化

求一个二维的三角形的面积也可以通过这个方法

首先要保证逆时针方向,三角形点的分布。

\[S_{K}=\frac{1}{2}\left|\begin{array}{cc}
x_{2}-x_{1} & x_{3}-x_{1} \\
y_{2}-y_{1} & y_{3}-y_{1}
\end{array}\right|
\]

举个例子

    BMesh::Point2D a(0,0);
BMesh::Point2D b(1,0);
BMesh::Point2D c(0,1);
Eigen::Matrix2d cc;
cc << (b.x - a.x), (c.x - a.x),
(b.y - a.y), (c.y - a.y);
std::cout << "[DEBUG] area of a triangle " << 0.5 * cc.determinant() << std::endl;

理论解释

向量的叉乘就是平行四边形的面积然后你懂得。

求解外接圆的坐标

求解一个方程

\[\left(\begin{array}{ll}
x_{3}-x_{1} & y_{3}-y_{1} \\
x_{3}-x_{2} & y_{3}-y_{2}
\end{array}\right)\left(\begin{array}{l}
x_{C} \\
y_{C}
\end{array}\right)=\frac{1}{2}\left(\begin{array}{l}
\left(x_{3}^{2}+y_{3}^{2}\right)-\left(x_{1}^{2}+y_{1}^{2}\right) \\
\left(x_{3}^{2}+y_{3}^{2}\right)-\left(x_{2}^{2}+y_{2}^{2}\right)
\end{array}\right)
\]

直接求解圆心使用公式

\[r_{K}=\frac{L_{1} L_{2} L_{3}}{4 S_{K}}
\]

\(L_i\) 是边界的长度。

\(S_K\) 是三角形的面积。

内切圆的半径是

\[\rho_{K}=\frac{S_{K}}{p_{K}}
\]

\(p_{K}\) 是三角形的半周长

\(\rho_{K}\) 是三角形内切圆的半径

三角形网格的质量

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

其中

\(\alpha = \frac {\sqrt{3}}{6}\)

,

\(h_{max}\)是三角形的最长的边。

\(P_{K}\)是其内切圆的半径。

其上值从1开始到无穷。等边三角形逻辑上是无穷。为了返回从0-1开始的测量质量。所以

\[Q_K=\beta\frac{h^2_s}{S_K}
\]

其中\(\beta\)是一个标准化的因子表示一个单位质量对于一个等边三角形\(\beta = \frac{\sqrt{3}}{12}\)

其中,\(h_s = \sqrt{\sum^3_{i=1}L_i^2}\)

\(L_i\)表示三角形边的长度。

缺点,在不好的三角形不明感,尤其是在三维空间中

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

  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. Chat to MySQL 最佳实践:MCP Server 服务调用

    一.场景说明: 通过 1Panel+MaxKB 两个开源工具结合 MCP 服务实现 Chat to Mysql. 二.资源准备 MySQL:数据库以及数据库表(培训认证中心运营数据表) 1Panel: ...

  2. kettle使用MD5加密增量获取接口数据

    kettle使用MD5加密增量获取接口数据 场景介绍: 使用JavaScript组件进行MD5加密得到Http header,调用API接口增量获取接口数据,使用json input组件解析数据入库 ...

  3. fiddler断点应用

    一.作用 1.模拟网络中断 2.断点时篡改数据 3.测试时做一些极端测试 二.断点步骤 1.全局断点 1)全局断点的两种方式 点击状态栏空白框,点击一下请求前断点,两下请求后断点,三下取消断点 Rul ...

  4. 在 Go 中,如何实现一个带过期时间的字典映射

    有些时候,应用系统用不上 redis,我们也可以用锁和 goroutine 实现一个带有过期时间的线程安全的字典. 这种字典的应用场景,比较倾向于数据规模较小,没有分布式要求. 下面是实现: 1.定义 ...

  5. 关于symfony报错: Oops An Error Occurred ,The server returned a “500 Internal Server Error“

    symfony3.4 开发环境正常,生产环境访问任何路由都报错: Oops! An Error Occurred The server returned a "500 Internal Se ...

  6. EFCore多数据库合并查询分页

    EFCore多数据库合并查询分页 参照:二个表的数据 如何做分页?_两个表排序分页_深圳市热心市民市民的博客-CSDN博客 基本情况介绍:由于系统迭代,部分收藏表在老系统的数据库,部分在新api接口的 ...

  7. tar命令打包指定目录及其文件,而不包括其上级目录

    想指定将/var目录下的log目录及其文件打包到当前目录,在压缩包解压时不包括/var目录,可使用如下方式: tar -zcvf log_bak.tar.gz -C /var/ log # 注意log ...

  8. 82.9K star!全平台AI助手神器,一键部署轻松搞定!

    嗨,大家好,我是小华同学,关注我们获得"最新.最全.最优质"开源项目和高效工作学习方法 项目介绍 轻量极速的AI对话平台,支持Web/iOS/Mac/Android多端运行,轻松接 ...

  9. 操作系统 :AArch64体系--ARM最新编程架构模型剖析

    本节来讲讲 ARM 的 AArch64 体系结构,扩展一下视野. 看看什么是 AArch64 体系,然后分析一下 AArch64 体系有什么特点,最后了解一下 AArch64 体系下运行程序的基础,包 ...

  10. String Manipulation related with pandas

    String Manipulation related with pandas String object Methods import pandas as pd import numpy as np ...