本文主要是介绍Matlab 画出不同位置高度的圆柱--样例,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
样例二是更加随机的情况,可见于博主的文章: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:3newxx=tempnewxx;newyy=tempnewyy;for i=1:21newxx(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=1y=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);endsurf(x+newxx,y+newyy,z,x*0)axis equalhold 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
结果:
这篇关于Matlab 画出不同位置高度的圆柱--样例的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!