用MATLAB做简单小动画
总体思路:
先琢磨静态的各图形如何写代码,写好后对需要做变动的部分进行改动,然后设置变动的次数
示例1-动态正弦图
有限运动:
注意:
- i不需要被定义,此处就是表示移动的次数,如果i=99:100,则表示移动了1次
- set(·)函数的应用
- drawnow这个命令也必不可少
无限运动:
示例2-压缩弹簧图
上下伸缩变化:
无限运动:
示例3-逆转指针图
注意:linex=[ ]是方括号而不是圆括号。
承接上图代码,完整的运动搞定:
示例4-波浪收缩图
主要用到了Z=sin(X)+cos(Y)的函数图像:
X=-10:0.4:10;
Y=-10:0.4:10;
[X,Y]=meshgrid(X,Y);
Z=sin(X)+cos(Y);
h=surf(X,Y,Z);
axis([-10,10,-10,10,-5,5]);
while true
for i=1:100
Z=0.97*Z;
set(h,‘XData’,X,‘YData’,Y,‘ZData’,Z);
drawnow;
end
for i=1:100
Z=Z/0.97;
set(h,‘XData’,X,‘YData’,Y,‘ZData’,Z);
drawnow;
end
end