主要内容

delaunayTriangulation

2-D和3-D的Delaunay三角定位

描述

使用delaunayTriangulation物体来创建2d或3d德劳内三角从一组点出发。对于2-D数据,还可以指定边缘约束。

控件上执行各种拓扑和几何查询delaunayTriangulation,包括任何三角测量查询例如,找到一个包含特定点的面,找到凸包的顶点,或者计算Voronoi图。

创建

创建一个delaunayTriangulation对象,使用delaunayTriangulation函数,输入参数定义三角剖分的点和受约束的边。

描述

例子

DT = delaunayTriangulation (P创建了一个德劳内三角定位P.矩阵P有2列或3列,这取决于你的点是在二维还是三维空间。

DT = delaunayTriangulation (PC指定矩阵中的边约束C为二维点P.每一行的C定义受约束边的起始顶点id和结束顶点id。顶点id是属性中相应顶点的行号DT。Points

DT = delaunayTriangulation (xy从列向量中的点坐标创建一个二维Delaunay三角剖分xy

DT = delaunayTriangulation (xyC指定矩阵中的边约束C

例子

DT = delaunayTriangulation (xyz从列向量中的点坐标创建一个三维Delaunay三角剖分xy,z

DT = delaunayTriangulation ()创造了一个空的Delaunay三角定位。

输入参数

全部展开

点,指定为列为的矩阵x坐标,y坐标和(可能)z-三角点的坐标。行号P为三角剖分中的顶点id。

x-三角点的坐标,指定为列向量。

y-三角点的坐标,指定为列向量。

z-三角点的坐标,指定为列向量。

约束边的顶点id,指定为一个2列矩阵。每一行的C对应一条约束边,包含两个id:

  • C (j, 1)为边开始处顶点的ID。

  • C (j, 2)为该边端点的顶点ID。

您只能为二维三角剖分指定边界约束。

属性

全部展开

三角剖分中的点,用具有以下特征的矩阵表示:

  • 在每一行DT。Points包含一个顶点的坐标。

  • 每行号DT。Points为顶点ID。

三角剖分连通性列表,用矩阵表示,具有以下特征:

  • 中的每个元素DT。C在nectivityList为顶点ID。

  • 每一行代表一个三角形或四面体在三角剖分。

  • 每行号DT。C在nectivityList为三角形或四面体ID。

约束边,表示为顶点id的2列矩阵。每一行的DT。C在straints对应一条约束边,包含两个id:

  • DT.Constraints (j, 1)为边开始处顶点的ID。

  • DT.Constraints (j, 2)为该边端点的顶点ID。

DT。C在straints当三角剖分没有约束边时为空矩阵。

对象的功能

convexHull Delaunay三角剖分的凸包
isInterior 查询点内Delaunay三角定位
voronoiDiagram Delaunay三角测量的Voronoi图
barycentricToCartesian 将重心坐标转换为笛卡尔坐标
cartesianToBarycentric 将坐标从笛卡尔坐标转换为重心坐标
外心 三角形或四面体的外心
edgeAttachments 附在指定边上的三角形或四面体
边缘 三角边
faceNormal 三角测量单位法向量
featureEdges 表面三角剖分的锐利边缘
freeBoundary 自由边界面
内心 三角测量元素的中心
与一 测试两个顶点是否由一条边连接
nearestNeighbor 最接近指定点的顶点
邻居 三角形或四面体邻居
pointLocation 三角形或四面体的包围点
大小 三角网连接列表的大小
vertexAttachments 与顶点相连的三角形或四面体
vertexNormal 三角顶点正常

例子

全部折叠

创建一个二维delaunayTriangulation对象为30随机点。

rng默认的;P = rand([30 2]);DT = delaunayTriangulation (P)
DT = delaunayTriangulation with properties: Points: [30x2 double] ConnectivityList: [48x3 double]约束:[]

计算每个三角形的中心点,并以中心点绘制三角剖分图。

IC =内心(DT);triplot (DT)情节(IC (: 1), IC (:, 2),“* r”

图中包含一个轴。坐标轴包含两个line类型的对象。

创建一个三维delaunayTriangulation对象为30随机点。

rng默认的;X = rand([30 1]);Y = rand([30 1]);Z = rand([30 1]);DT = delaunayTriangulation (x, y, z)
DT = delaunayTriangulation with properties: Points: [30x3 double] ConnectivityList: [102x4 double]约束:[]

画出三角。

tetramesh (DT,“FaceAlpha”, 0.3);

图中包含一个轴。坐标轴包含102个patch类型的对象。

计算并绘制三角剖分的凸包。

[K、v] = convexHull (DT);trisurf (K, DT.Points (: 1), DT.Points (:, 2), DT.Points (:, 3))

图中包含一个轴。轴包含一个类型为patch的对象。

更多关于

全部展开

提示

  • delaunayTriangulation当边界约束相交或重叠时,会产生不正确或不一致的结果。为了避免这种行为,使用形成一个或多个不相交或重叠的封闭边界的约束。

介绍了R2013a