基于离散点数据,构建Delaunay三角网。
目录
一 准备
(1)要提取区域的.tif文件。
(2)MATLAB 2022b(其他版本也可以)。
(3)新建脚本文件。
二 步骤
(1)生成随机点数据
% 定义边界大小和点数
N = 100;
xmin = 0;
xmax = 1;
ymin = 0;
ymax = 1;
% 生成随机点
x = xmin + (xmax-xmin).*rand(N,1);
y = ymin + (ymax-ymin).*rand(N,1);
(2)构建Delaunay三角网
1°方法一
% 进行Delaunay三角剖分
tri = delaunay(x,y);
% 绘制三角网格
triplot(tri,x,y);
% 添加边界
hold on
plot([xmin,xmin,xmax,xmax,xmin],[ymin,ymax,ymax,ymin,ymin],'k--');
hold off
title("Delaunay三角剖分,"+"N="+N);
2°方法二
% 将数据点集转换为Delaunay三角剖分
DT = delaunayTriangulation(x',y');
% 获取三角形的顶点坐标和连接关系
triangles = DT.ConnectivityList;
vertices = DT.Points;
% 绘制TIN图形
figure;
triplot(triangles,vertices(:,1),vertices(:,2));
title('TIN图形');
三 结果
(1)方法一
(随机点个数不同得到的不同随机结果)
![](https://i-blog.csdnimg.cn/blog_migrate/3806fea8bcec6701a6f1617d384bc636.png)
![](https://i-blog.csdnimg.cn/blog_migrate/6248c7bd2a156eb95a8f399caf9db67d.png)
![](https://i-blog.csdnimg.cn/blog_migrate/c134524c54af03a148c0c983f105f51b.png)
(2)方法二
(多次运行得到的随机结果)
四 说明
方法一:使用rand函数生成100个随机点(可以进行更改),再使用delaunay函数进行Delaunay三角剖分,得到一个三角形的索引表(tri),最后使用triplot函数将三角形绘制出来。
方法二:在绘制TIN图形时,使用triangles和vertices两个变量,triangles包含三角形的连接关系,vertices包含三角形的顶点坐标。
(需要完整代码及运行结果请留言~