Matlab 画出不同位置高度的圆柱--样例

举报
悲恋花丶无心之人 发表于 2021/02/03 01:27:22 2021/02/03
【摘要】 样例二是更加随机的情况,可见于博主的文章: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


  
  1. clc
  2. close
  3. clear
  4. %圆柱上表面自变量
  5. [a,r]=ndgrid((0:.05:1)*2*pi,[0 1]);
  6. xt=cos(a).*r;%21x2维
  7. yt=sin(a).*r;%21x2维
  8. %定义圆心
  9. xx=[1;3;4];
  10. yy=[1;1;3];
  11. %圆柱高矩阵
  12. zz=[1;2;3];
  13. %中间变量
  14. newxx=zeros(21,1);
  15. newyy=zeros(21,1);
  16. tempnewxx=newxx;
  17. tempnewyy=newyy;
  18. for j=1:3
  19. newxx=tempnewxx;
  20. newyy=tempnewyy;
  21. for i=1:21
  22. newxx(i,:)=xx(j,1);
  23. newyy(i,:)=yy(j,1);
  24. end
  25. %确定范围
  26. [a,z]=ndgrid((0:.05:1)*2*pi,0:.05:zz(j,1));
  27. x=cos(a);%21xsize(z,2)维 项数=((末项-首项)/公差)+1,这里是((1-0)/0.05)+1=21,z=1
  28. y=sin(a);%21xsize(z,2)维
  29. %画圆柱测面
  30. fuzhinewxx=newxx;
  31. fuzhinewyy=newyy;
  32. for i=1:(size(z,2)-1)
  33. newxx=cat(2,newxx,fuzhinewxx);
  34. newyy=cat(2,newyy,fuzhinewyy);
  35. end
  36. surf(x+newxx,y+newyy,z,x*0)
  37. axis equal
  38. hold on
  39. %画圆柱上表面
  40. newxx=fuzhinewxx;
  41. newyy=fuzhinewyy;
  42. for i=1:(2-1)
  43. newxx=cat(2,newxx,fuzhinewxx);
  44. newyy=cat(2,newyy,fuzhinewyy);
  45. end
  46. surf(xt+newxx,yt+newyy,xt*0,xt*0)
  47. surf(xt+newxx,yt+newyy,xt*0+zz(j,1),xt*0)
  48. end

结果:

文章来源: nickhuang1996.blog.csdn.net,作者:悲恋花丶无心之人,版权归原作者所有,如需转载,请联系作者。

原文链接:nickhuang1996.blog.csdn.net/article/details/79318464

【版权声明】本文为华为云社区用户转载文章,如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。