Main Content

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

convexHull

(不推荐)Delaunay 三角剖分的凸包

不推荐使用 convexHull(DelaunayTri)。请改用 convexHull(delaunayTriangulation)

不推荐使用 DelaunayTri。请改用 delaunayTriangulation

说明

示例

K = convexHull(DT) 返回由点 DT.X 组成的数组的索引,这些点对应于凸包的顶点。

示例

[K,AV] = convexHull(DT) 返回凸包以及由凸包验证的面积或体积。

示例

全部折叠

计算由一组随机点(位于二维空间的单位正方体内)构成的凸包。

rng default
x = rand(10,1);
y = rand(10,1);
dt = DelaunayTri(x,y);
k = convexHull(dt);

绘制点和凸包。

plot(dt.X(:,1),dt.X(:,2),'.','MarkerSize',10)
hold on
plot(dt.X(k,1),dt.X(k,2),'r')
hold off

Figure contains an axes object. The axes object contains 2 objects of type line. One or more of the lines displays its values using only markers

计算由一组随机点(位于三维空间的单位立方体内)构成的凸包。用 convexHull 指定两个输出,以同时计算由凸包界定的体积。

rng default
X = rand(25,3);
dt = DelaunayTri(X);
[ch,v] = convexHull(dt)
ch = 30×3

     2     9    13
     2    12    18
     2    13    12
     2    14    25
     2    18    14
     2    23     9
     2    25    23
     5     7    22
     5    10     7
     5    18    10
      ⋮

v = 0.3943

绘制凸包图。

trisurf(ch,dt.X(:,1),dt.X(:,2),dt.X(:,3),'FaceColor','cyan')

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

输入参数

全部折叠

Delaunay 三角剖分表示,指定为 DelaunayTri 对象。

输出参数

全部折叠

凸包顶点的索引,以列向量或矩阵形式返回。K 包含对点数组 DT.X 的索引。如果点位于二维空间中,K 是长度为 numf 的列向量。否则,K 是大小为 numf×ndim 的矩阵,numf 是凸包中的小平面数,ndim 是点所在的空间的维度。

凸包的面积或体积,以标量形式返回。AV 包含由凸包界定的面积(对于二维三角剖分)或体积(对于三维三角剖分)。

详细信息

全部折叠

凸包

由一组 X 点构成的凸包是包含所有 X 点的最小凸形区域。

扩展功能

基于线程的环境
使用 MATLAB® backgroundPool 在后台运行代码或使用 Parallel Computing Toolbox™ ThreadPool 加快代码运行速度。

版本历史记录

在 R2009a 中推出