matlab应用——求极限,求导,求积分,解方程,函数绘图,三维图像,拟合函数....更多内容尽在个人专栏:
matlab学习昨天思考了一下,因为笔者的GUI只是刚刚入门,如果直接说的话也说不了多少东西,所以先挖个坑,我们还是继续学习一些基础内容
这一节我们聊聊图像的旋转和动态图的绘制
rotate函数:
rotate函数可以将函数图像进行一定的旋转处理
调用格式rotate(f,v,x)
三个参数,f是需要进行旋转的函数,v是一个一行三列的矩阵[x,y,z],矩阵中每个元素只有0 1两个取值,代表绕哪个轴旋转,x是旋转的角度
我们看一个例子:
t=linspace(0,10*pi,200);
x=sin(t)+t.*cos(t);
y=cos(t)-t.*sin(t);
z=t;
subplot(1,2,1)
plot3(x,y,z);
xlabel('x轴');
grid on;
subplot(1,2,2)
f=plot3(x,y,z)
rotate(f,[1 0 0],90)
xlabel('x轴');
grid on;
这个例子用的是之前我们绘制过的
三维螺旋线,具体详见第21节
浅吻板牙:从零开始的matlab学习笔记——(21)三维曲线绘制zhuanlan.zhihu.com
我们把它以x轴旋转90度:
动态图:
动态图制作我们需要用到循环结构,不知道大家还记不记得:
浅吻板牙:从零开始的matlab学习笔记——(5)循环zhuanlan.zhihu.com
for i=a:dx:b
代码
pause(n)
end
我们再来看一个新函数pause
调用格式:pause(n)延迟n秒之后在进入下一个循环
来看一个例子:
t=linspace(0,10*pi,200);
x=sin(t)+t.*cos(t);
y=cos(t)-t.*sin(t);
z=t;
f=plot3(x,y,z);%
注意这里用f存储一下函数xlabel('x=sint+tcost');
ylabel('y=cost-tsint');
zlabel('z=t');
title('三维螺旋线');
axis([-50,50,-50,50,0,40])
grid on;
for i=0:360000
rotate(f,[0 0 1],1)
pause(0.003)
end
这个就是对之前的三维螺旋线进行不断的旋转,我们来看一下效果:
https://www.zhihu.com/video/1209422442017746944
有点粗糙,不过大体上还是个动态的
这一节我们说了说图像的旋转以及用旋转来绘制冬天图像,下一节我们再说说图像切面的问题
欢迎喜欢的朋友
点赞关注收藏啊:)