MATLAB基础编程(002-1)之弯曲的圆柱

       之前画了一把伞,伞的内部有一些图形没有删除,所以很难看。一把伞应该还有伞柄,但是伞柄是由圆柱体和半个有弯曲度的圆柱体构成的,并不能通过参数方程显示出来。收集到如下代码:

将%% Drawing code这段代码修改如下(其他代码段不变):
%% Drawing code
clear
clc
close
%%下面代码是画侧面
%这里的圆柱体高度为h,可调
h=4;
%如果嫌网格比较密集就将下面的步长d=0.12改大些
d=0.12;
[A,Z]=meshgrid(0:2*pi/fix(2*pi/(1.2*d)):2*pi,0:h/fix(h/d):h);
LX=cos(A);
LY=sin(A);
h1=mesh(LX,LY,Z);
axis equal
hold on
%%下面代码功能是画圆柱体上下面
x=-1:d:1;y=-1:d:1;
[X,Y]=meshgrid(x,y);
X(X.^2+Y.^2>1)=NaN;
Y(X.^2+Y.^2>1)=NaN;
h2=mesh(X,Y,X*0);
h3=mesh(X,Y,X*0+h);

有如下效果图:

6f8fb2184f0ca0a786d5e851ea26861e.png

       想要画弯曲的伞柄,大致是个半圆,用到了初中的平移和三角函数,整体的不会画,请您补充,欢迎评论,大佬还请略过。代码经过修改后有如下:

%2022年5月3日16:17:40
%画一个有弯曲度的圆柱,原作者为:MATLAB论坛注册号

%% Drawing code
clear
clc
close
%%下面代码是画侧面
%这里的圆柱体高度为h,可调
h=4;
%如果嫌网格比较密集就将下面的步长d=0.12改大些
d=0.12;
%[A,Z]=meshgrid(0:2*pi/fix(2*pi/(1.2*d)):2*pi,0:h/fix(h/d):h);
[A,Z]=meshgrid(0:2*pi/fix(2*pi/(1.2*d)):2*pi,0:h/fix(h*3/d):h*3);
LX=cos(A);
LY=sin(A);
%h1=mesh(LX-(1/0.8)*Z,LY-(1/0.8)*Z,Z);

h1=mesh(LX-sqrt(abs(Z.^2-12^2)),LY-sqrt(abs(Z.^2-12^2)),Z);

axis equal
hold on


%%下面代码功能是原来画圆柱体的上下面,与现有圆柱体做对比

x=-1:d:1;y=-1:d:1;
[X,Y]=meshgrid(x,y);
X(X.^2+Y.^2>1)=NaN;
Y(X.^2+Y.^2>1)=NaN;
h2=mesh(X,Y,X*0);
h3=mesh(X,Y,X*0+h);

%%下面代码功能是现有有弯曲度画圆柱体的上下面

x=-1:d:1;y=-1:d:1;
[X,Y]=meshgrid(x,y);
X(X.^2+Y.^2>1)=NaN;
Y(X.^2+Y.^2>1)=NaN;
h2=mesh(X-12,Y-12,X*0);
h3=mesh(X,Y,X*0+h*3);

有如下效果:

 

32c15a8257734b2ab4e31d0c0f7d6935.png

 如遇问题,请留言。

 

  • 3
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值