Main Content

convhulln

N 维凸包

说明

示例

k = convhulln(P) 计算矩阵 P 中点的 N 维凸包。

k = convhulln(P,opts) 还指定用于计算凸包的 Qhull 选项。

示例

对于任一上述语法,[k,vol] = convhulln(___) 还返回凸包的体积 vol

示例

全部折叠

创建一个三维点矩阵并计算凸包及其体积。

P = rand(10,3);
[k,vol] = convhulln(P);

绘制凸包图。

trisurf(k,P(:,1),P(:,2),P(:,3),'FaceColor','cyan')

显示凸包的体积。

vol
vol = 0.1857

输入参数

全部折叠

点,指定为一个矩阵,其列包含对应维度的坐标。例如,要定义一组二维点,请将 x 坐标放在 P 的第一列中,将相应的 y 坐标放在第二列中。

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

默认情况下,对于二维、三维和四维输入,opts 设置为 {'Qt'}。对于五维和更高维的输入,opts 设置为 {'Qt','Qx'}

输出参量

全部折叠

索引,以矩阵形式返回。

  • 对于二维点,k 是一个两列矩阵,其中每行表示凸包的一条边。值表示输入点的行索引。

  • 对于三维点,k 是一个三列矩阵,其中每一行表示构成凸包的三角剖分的一个分面。值表示输入点的行索引。

  • 对于 N 维点,k 是 N 列矩阵。值表示输入点的行索引。

凸包的体积(对于二维则为面积),以标量形式返回。

提示

算法

convhulln 基于 Qhull [1]。有关信息,请参阅 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 之前推出