matlab画包络图

本文介绍了如何使用matlab的convhull函数计算并绘制二维和三维点集的凸包。通过示例代码展示了如何绘制原始点、凸包,并简化三维凸包以减少顶点数量,同时保持体积不变。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

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 =

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值