Delaunay三角网(MATLAB)

    基于离散点数据,构建Delaunay三角网。

目录

一 准备

二 步骤

(1)生成随机点数据

(2)构建Delaunay三角网

1°方法一

2°方法二

三 结果

(1)方法一

(2)方法二

四 说明


一 准备

(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)方法一

(随机点个数不同得到的不同随机结果)

(2)方法二

(多次运行得到的随机结果)

四 说明

      方法一:使用rand函数生成100个随机点(可以进行更改),再使用delaunay函数进行Delaunay三角剖分,得到一个三角形的索引表(tri),最后使用triplot函数将三角形绘制出来。

       方法二:在绘制TIN图形时,使用triangles和vertices两个变量,triangles包含三角形的连接关系,vertices包含三角形的顶点坐标。

(需要完整代码及运行结果请留言~

  • 1
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 6
    评论
评论 6
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值