• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    迪恩网络公众号

使用Matlab绘制三维圆柱体和球体

原作者: [db:作者] 来自: [db:来源] 收藏 邀请

使用Cylinder功能函数绘制圆柱体侧面

在matlab中自带了绘制圆柱体的功能函数cylinder,其用法如下:
例1,绘制一个圆柱体的三维图像,要求圆柱体底面圆心在坐标原点,底面半径为3,高度为2,颜色为红色。

[x,y,z]=cylinder(3);  %调用cylinder函数‘()’内半径为3. 运行此命令后系统自动为x,y,z填充了数据
z(2,:)=2;      %设置矩阵Z的第二行数值全为2,即设置圆柱体高度
subplot(1,2,1);            %绘制子图像(1,2,1)代表一行两列的第一个图像
surf(x,y,z,'FaceColor',[1,0,0]);       %使用surf功能将x,y,z的数据导入。FaceColor即设置圆柱体颜色,红色色号为[1,0,0]
daspect([1 1 1])                  %设置x,y,z坐标间距等长。
view(30,30)                     %设置图像显示角度
hold on                                %停止图像刷新

上述代码的结果如下

从图中可看出,我们还缺少顶盖和底盖。可用如下代码实现:

theta = linspace(0,2*pi,40)       %将一个圆周分为40份
X=3*cos(theta);                    %将cos值赋予x
Y=3*sin(theta);                     %将sin赋予Y
Z=ones(size(X))+1;                 %设置Z与X长度想等
fill3(X,Y,Z,[1,0,0]);                  %使用Fill3功能函数,填充XYZ所围成的区域,这个是顶盖
fill3(X,Y,Z-2,[1,0,0]);              %底盖

运行结果如下:

这样就可得到一个封闭完整的圆柱体。 下面再来绘制一个球体。
例2.绘制一个中心在(8,-2,2),半径为4的蓝色球体。

[x1 y1 z1]=sphere;       %将球体数据写入三矩阵中
a=[8 -2 2  4];                  %设置参数
subplot(1,2,2);                  %绘制子图像2
s1=surf(x1*a(1,4)+a(1,1),y1*a(1,4)+a(1,2),z1*a(1,4)+a(1,3),'FaceColor',[0,0,1]);
                         %将已配置好的数据用surf函数绘制成三位图像
daspect([1 1 1])         %设置坐标轴长度等长
view(30,10)               %设置舒服的观看角度

结果:

将上述代码写到一个脚本中即可完整的绘制出一个封闭的红色圆柱体和一个封闭的蓝色球体。这篇文章只要参考mathwork英文网站上的surf教学,笔者使用的是matlab2018b,希望能够帮助刚刚入门matlab的伙伴快乐的学习matlab。


鲜花

握手

雷人

路过

鸡蛋
该文章已有0人参与评论

请发表评论

全部评论

专题导读
上一篇:
【译】Rust中的array、vector和slice发布时间:2022-07-18
下一篇:
【译】理解Rust中的闭包发布时间:2022-07-18
热门推荐
阅读排行榜

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap