Main Content

本页翻译不是最新的。点击此处可查看最新英文版本。

delaunayn

N 维 Delaunay 三角剖分

说明

示例

T = delaunayn(X) 用于计算一组单纯形,以便没有 X 的数据点包含在单纯形的任何外接圆内。该组单纯形即构成维 Delaunay 三角剖分。X 是一个表示 n 维空间内 m 个点的 mxn 的数组。T 是一个 numt×(n+1) 数组,其中的每一行包含对应单纯形的顶点的 X 索引。

T = delaunayn(X,opts) 指定用于计算 Delaunay 三角剖分的 Qhull 选项的元胞数组。

示例

全部折叠

以下示例生成了一个 N 维 Delaunay 三角剖分,其中 n = 3

d = [-1 1];
[x,y,z] = meshgrid(d,d,d);  % A cube
x = [x(:);0];
y = [y(:);0];
z = [z(:);0];
% [x,y,z] are corners of a cube plus the center.
X = [x(:) y(:) z(:)];
Tes = delaunayn(X)
Tes = 12×4

     4     3     9     1
     4     9     2     1
     7     9     3     1
     7     5     9     1
     7     9     4     3
     7     8     4     9
     6     2     9     1
     6     9     5     1
     6     4     9     2
     6     4     8     9
      ⋮

您可以使用 tetramesh 以可视化方式呈现构成对应单纯形的四面体。camorbit 可以旋转相机位置以提供一个有意义的图窗视图。

tetramesh(Tes,X);
camorbit(20,0)

Figure contains an axes object. The axes object contains 12 objects of type patch.

输入参数

全部折叠

点,指定为矩阵。X 是表示 n 维空间中 m 个点的 m×n 矩阵。

数据类型: double

Qhull 选项,指定为字符向量元胞数组,指示要使用的 Qhull 算法。如需选项列表,请参阅 Qhull 控制选项

默认选项为:

  • {'Qt','Qbb','Qc'}(对于二维和三维输入)

  • {'Qt','Qbb','Qc','Qx'}(对于四维和更高维的输入)

如果 opts[],则使用默认选项。如果 opts 是空元胞数组,{''},则不使用任何选项,甚至不使用默认值。

提示

  • 绘制 delaunayn 的输出取决于 n 的值:

    • 对于 n = 2 的情况,使用 triplottrisurftrimesh,与您在 delaunay 中的使用方法相同。

    • 对于 n = 3 的情况,使用 tetramesh

      如果要进一步控制面的颜色,可以使用 patch 绘制输出。

    • 对于 n > 3,则无法绘制 delaunayn 输出。

算法

delaunayn 基于 Qhull。有关详细信息,请参阅 http://www.qhull.org/。有关版权信息,请参阅 http://www.qhull.org/COPYING.txt

扩展功能

版本历史记录

在 R2006a 之前推出