MATLAB 帮助中心
凸包
k = convhull(P)
k = convhull(x,y)
k = convhull(x,y,z)
k = convhull(___,'Simplify',tf)
[k,av] = convhull(___)
k = convhull(P) 计算矩阵 P 中点的二维或三维凸包。
k
P
示例
k = convhull(x,y) 计算列向量 x 和 y 中点的二维凸包。
x
y
k = convhull(x,y,z) 计算列向量 x、y 和 z 中点的三维凸包。
z
k = convhull(___,'Simplify',tf) 指定是否删除不影响凸包面积或体积的顶点。默认情况下,tf 为 false。
tf
false
[k,av] = convhull(___) 还计算凸包的面积(对于二维点)或体积(对于三维点)。
av
全部折叠
创建一个由二维点组成的矩阵。计算凸包及其面积。
P = [0 0; 1 1; 1.5 0.5; 1.5 -0.5; 1.25 0.3; 1 0; 1.25 -0.3; 1 -1]; [k,av] = convhull(P);
绘制原始点及凸包。
plot(P(:,1),P(:,2),'*') hold on plot(P(k,1),P(k,2))
显示面积。
av = 1.7500
通过删除不影响其体积的点来简化三维凸包。
创建一个三维点集。计算凸包及其体积。绘制凸包图。
[x,y,z] = meshgrid(-2:1:2,-2:1:2,-2:1:2); x = x(:); y = y(:); z = z(:); [k1,av1] = convhull(x,y,z); trisurf(k1,x,y,z,'FaceColor','cyan') axis equal
计算并绘制包含较少点但保持体积不变的凸包的简化版本。
[k2,av2] = convhull(x,y,z,'Simplify',true); trisurf(k2,x,y,z,'FaceColor','cyan') axis equal
显示两个凸包的体积。两者体积相同,但简化的凸包使用的点更少。
av1
av1 = 64.0000
av2
av2 = 64
点,指定为矩阵,该矩阵的列为 x 坐标、y 坐标和(三维情况下)z 坐标。
x 坐标,指定为列向量。
y 坐标,指定为列向量。
z 坐标,指定为列向量。
0
true
1
简化指示符,指定为数值或逻辑值 0 (false) 或 1 (true)。
索引,以向量或矩阵形式返回。
对于二维点,k 是一个列向量,其中包含构成凸包的输入点的行索引,按逆时针排列。
对于三维点,k 是表示构成凸包的三角剖分的三列矩阵。每行表示三角剖分的一个分面。值表示输入点的行索引。
凸包的面积或体积,以标量形式返回。
对于二维点,av 是凸包的面积。
对于三维点,av 是凸包的体积。
要以二维形式绘制 convhull 的输出,请使用 plot 函数。要以三维形式绘制 convhull 的输出,请使用 trisurf 或 trimesh 函数。
convhull
plot
trisurf
trimesh
全部展开
用法说明和限制:
代码生成仅支持二维输入点的凸包计算。
backgroundPool
ThreadPool
此函数完全支持基于线程的环境。有关详细信息,请参阅在基于线程的环境中运行 MATLAB 函数。
在 R2006a 之前推出
convhulln
You clicked a link that corresponds to this MATLAB command:
Run the command by entering it in the MATLAB Command Window. Web browsers do not support MATLAB commands.
选择网站
选择网站以获取翻译的可用内容,以及查看当地活动和优惠。根据您的位置,我们建议您选择:。
您也可以从以下列表中选择网站:
如何获得最佳网站性能
选择中国网站(中文或英文)以获得最佳网站性能。其他 MathWorks 国家/地区网站并未针对您所在位置的访问进行优化。
美洲
欧洲
亚太
联系您当地的办事处