天天看点

matlab将图片旋转的代码_从零开始的matlab学习笔记——(27)图像旋转与动态图...

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

matlab将图片旋转的代码_从零开始的matlab学习笔记——(27)图像旋转与动态图...

我们把它以x轴旋转90度:

matlab将图片旋转的代码_从零开始的matlab学习笔记——(27)图像旋转与动态图...

动态图:

动态图制作我们需要用到循环结构,不知道大家还记不记得:

浅吻板牙:从零开始的matlab学习笔记——(5)循环​zhuanlan.zhihu.com

matlab将图片旋转的代码_从零开始的matlab学习笔记——(27)图像旋转与动态图...

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

这个就是对之前的三维螺旋线进行不断的旋转,我们来看一下效果:

matlab将图片旋转的代码_从零开始的matlab学习笔记——(27)图像旋转与动态图...

https://www.zhihu.com/video/1209422442017746944

有点粗糙,不过大体上还是个动态的

这一节我们说了说图像的旋转以及用旋转来绘制冬天图像,下一节我们再说说图像切面的问题

欢迎喜欢的朋友

点赞关注收藏

啊:)

继续阅读