Matlab 画出不同位置高度的圆柱--样例
【摘要】 样例二是更加随机的情况,可见于博主的文章:matlab代码 画出不同位置高度的圆柱--样例二
圆柱信息:
圆心(1,1)高 1
圆心(3,1)高 2
圆心(4,3)高 3
clccloseclear %圆柱上表面自变量[a,r]=ndgrid((0:.05:1)*2*pi,[0 1]);xt=cos(a).*r;%21x2维yt=sin(a).*r;%21x2维%定...
样例二是更加随机的情况,可见于博主的文章:matlab代码 画出不同位置高度的圆柱--样例二
圆柱信息:
圆心(1,1)高 1
圆心(3,1)高 2
圆心(4,3)高 3
-
clc
-
close
-
clear
-
-
%圆柱上表面自变量
-
[a,r]=ndgrid((0:.05:1)*2*pi,[0 1]);
-
xt=cos(a).*r;%21x2维
-
yt=sin(a).*r;%21x2维
-
%定义圆心
-
xx=[1;3;4];
-
yy=[1;1;3];
-
%圆柱高矩阵
-
zz=[1;2;3];
-
%中间变量
-
newxx=zeros(21,1);
-
newyy=zeros(21,1);
-
tempnewxx=newxx;
-
tempnewyy=newyy;
-
for j=1:3
-
newxx=tempnewxx;
-
newyy=tempnewyy;
-
for i=1:21
-
newxx(i,:)=xx(j,1);
-
newyy(i,:)=yy(j,1);
-
end
-
%确定范围
-
[a,z]=ndgrid((0:.05:1)*2*pi,0:.05:zz(j,1));
-
x=cos(a);%21xsize(z,2)维 项数=((末项-首项)/公差)+1,这里是((1-0)/0.05)+1=21,z=1
-
y=sin(a);%21xsize(z,2)维
-
%画圆柱测面
-
fuzhinewxx=newxx;
-
fuzhinewyy=newyy;
-
for i=1:(size(z,2)-1)
-
newxx=cat(2,newxx,fuzhinewxx);
-
newyy=cat(2,newyy,fuzhinewyy);
-
end
-
-
surf(x+newxx,y+newyy,z,x*0)
-
axis equal
-
hold on
-
-
%画圆柱上表面
-
newxx=fuzhinewxx;
-
newyy=fuzhinewyy;
-
for i=1:(2-1)
-
newxx=cat(2,newxx,fuzhinewxx);
-
newyy=cat(2,newyy,fuzhinewyy);
-
end
-
surf(xt+newxx,yt+newyy,xt*0,xt*0)
-
surf(xt+newxx,yt+newyy,xt*0+zz(j,1),xt*0)
-
end
结果:
文章来源: nickhuang1996.blog.csdn.net,作者:悲恋花丶无心之人,版权归原作者所有,如需转载,请联系作者。
原文链接:nickhuang1996.blog.csdn.net/article/details/79318464
【版权声明】本文为华为云社区用户转载文章,如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱:
cloudbbs@huaweicloud.com
- 点赞
- 收藏
- 关注作者
评论(0)