Main Content

convexHull

(不推荐)德劳内三角剖分的凸包

不推荐使用 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

计算由一组随机点(位于三维空间的单位立方体内)构成的凸包。用 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')

输入参数

全部折叠

德劳内三角剖分表示,指定为 DelaunayTri 对象。

输出参量

全部折叠

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

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

详细信息

全部折叠

凸包

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

扩展功能

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

版本历史记录

在 R2009a 中推出