文档

本页对应的英文页面已更新,但尚未翻译。 若要查看最新内容,请点击此处访问英文页面。

convhulln

N 维凸包

语法

K = convhulln(X)
K = convhulln(X,options)
[K,v] = convhulln(...)

说明

K = convhulln(X) 返回 X 中各个点的索引 K,这些点构成 X 凸包的面。如果 X 包含二维坐标或三维坐标,则各个面会分别构成三角形或四面体。通常,X 可以是 m×n 数组,表示 n 维空间中的 m 个点。如果该凸包具有 p 个面,则 K 的大小为 p×n

convhulln 使用 Qhull。

K = convhulln(X,options) 指定 Qhull 选项元胞数组。默认选项为:

  • {'Qt'}(对于二维、三维和四维输入)

  • {'Qt','Qx'}(对于五维和更高维的输入)。

如果 options[],将使用默认选项。有关 Qhull 及其选项的详细信息,请参阅 http://www.qhull.org/

[K,v] = convhulln(...) 还返回凸包的体积 v

可视化

n 输出的绘制取决于 convhulln 的值:

  • 对于 n = 2,则使用 plot(就像对 convhull 一样)。

  • 对于 n = 3,可以使用 trisurf 绘制输出。调用顺序为

    K = convhulln(X);
    trisurf(K,X(:,1),X(:,2),X(:,3))
  • 对于 n > 3,则无法绘制 convhulln 输出。

示例

以下示例说明了 convhullnoptions 输入。以下命令

X = [0 0; 0 1e-10; 0 0; 1 1];
K = convhulln(X)

返回警告。

Warning: qhull precision warning: 
The initial hull is narrow 
(cosine of min. angle is 0.9999999999999998).
A coplanar point may lead to a wide facet. 
Options 'QbB' (scale to unit box) or 'Qbb' 
(scale last coordinate) may remove this warning. 
Use 'Pp' to skip this warning.

要取消警告,请使用选项 'Pp'。以下命令将选项 'Pp' 以及默认 'Qt' 传递给 convhulln

K = convhulln(X,{'Qt','Pp'})

K =

     1     4
     1     2
     4     2

算法

convhulln 基于 Qhull [1]。有关 Qhull 的信息,请参阅 http://www.qhull.org/。有关版权信息,请参阅 http://www.qhull.org/COPYING.txt

参考

[1] Barber, C. B., D.P. Dobkin, and H.T. Huhdanpaa, “The Quickhull Algorithm for Convex Hulls,” ACM Transactions on Mathematical Software, Vol. 22, No. 4, Dec. 1996, p. 469-483.

在 R2006a 之前推出

此主题对您有帮助吗?