主要内容

三角剖分

三角剖分通常用于表示计算机图形、物理建模、地理信息系统、医学成像及其他应用领域中的二维和三维几何域。如下所示的地图多边形

Plot of land mass with a rough border.

可以通过如下所示的地图的三角剖分来表示。

Plot of a land mass with a rough border that has triangles of various sizes superimposed.

三角剖分将一个复杂的多边形分解为一组较简单的三角多边形。可以使用这些多边形开发基于几何学的算法或图形应用。

同样,可以使用三角剖分表示三维几何域的边界。下图显示了三维空间中一组点的凸包。凸包的每个分面都是三角形。

Plot of 3-D shape boundary formed by triangles of various sizes.

您可以使用 MATLAB® 来表示和查询以下类型的三角剖分:

  • 二维三角剖分,包含由顶点和边线限定的三角形

  • 三维曲面三角剖分,包含由顶点和边线限定的三角形

  • 三维三角剖分,包含由顶点、边线和面限定的四面体

MATLAB 使用矩阵格式表示三角剖分。此格式包含以下两个部分:

  • 采用一个矩阵表示的顶点,该矩阵中每行包含三角剖分中一个点的坐标。

  • 采用一个矩阵表示的三角剖分连接,该矩阵中每行定义一个三角形或四面体。

此图显示了一个简单的二维三角剖分。

Plot of triangulation consisting of six vertices and four triangles, with each vertex and triangle labeled.

下表显示了顶点信息。

顶点
顶点 IDx 坐标y 坐标
V12.58.0
V26.58.0
V32.55.0
V46.55.0
V51.06.5
V68.06.5

上一个表中的数据在 MATLAB 环境中存储为矩阵。顶点 ID 是用于标识特定顶点的标签。这些标签用于说明顶点 ID 的概念,但不会显式存储。矩阵的行号充当顶点 ID。

该表中显示了三角剖分连接数据。

连接
三角形 ID边界顶点的 ID
T1531
T2321
T3342
T4462

此表中的数据在 MATLAB 环境中存储为矩阵。三角形 ID 是用于标识特定三角形的标签。这些标签用于说明三角形 ID 的概念,但不会显式存储。矩阵的行号充当三角形 ID。

可以看到三角形 T1 是由三个顶点 {V5, V3, V1} 定义的。同样,T4 是由顶点 {V4, V6, V2} 定义的。此格式可自然扩展到要求更多数据列的更高维度。例如,三维空间中的四面体由四个顶点定义,每个顶点都包含三个坐标 (x, y, z)。

矩阵格式提供基于紧凑型低级别数组的表示的三角剖分。使用三角剖分开发算法时,可能需要更多有关几何属性、拓扑和邻接信息的信息。

例如,在绘制如下所示的带注解的三角剖分之前,可以计算三角形内心。在这种情况下,使用内心显示每个三角形中的三角形标签(T1、T2 等)。如果要用红色绘制边界,需要确定仅由一个三角形引用的边线。

Triangulation consisting of six vertices and four triangles, with the outer border outlined in red.