k = convhull§ 计算矩阵 P 中点的二维或三维凸包。
k = convhull(x,y) 计算列向量 x 和 y 中点的二维凸包。
k = convhull(x,y,z) 计算列向量 x、y 和 z 中点的三维凸包。
k = convhull(___,‘Simplify’,tf) 指定是否删除不影响凸包面积或体积的顶点。默认情况下,tf 为 false。
[k,av] = convhull(___) 也计算凸包的面积或体积。
eg1:
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 %%显示面积
eg2:通过删除不影响其体积的点来简化三维凸包。
创建一个三维点集。计算凸包及其体积。绘制凸包图。
[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
eg3:计算并绘制包含较少点但保持体积不变的凸包的简化版本。
[k2,av2] = convhull(x,y,z,‘Simplify’,true);
trisurf(k2,x,y,z,‘FaceColor’,‘cyan’)
axis equal
显示两个凸包的体积。两者体积相同,但简化的凸包使用的点更少。
av1 =
matlab画包络图
最新推荐文章于 2024-11-13 22:40:38 发布