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

使用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。

评论 3
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值