MATLAB正月点灯笼老师课程笔记:第四课:使用MATLAB制作简单的动画效果

例1:不停前进的sin图像

X = -2*pi : 0.1 : 2*pi;
Y = sin(X);
h = plot(X, Y); %将整幅图保存进h里

while true  % 一直不停的运行下去
    X = X +0.1;
    Y = sin(X);
    set(h, 'XData', X, 'YData', Y); % 重置h的值
    drawnow;
end

例2: 弹簧的压缩和拉伸

theta = -10* pi : 0.1 : 10*pi;
X = cos(theta);
Y = sin(theta);
Z = theta;

h = plot3(X,Y,Z);
axis([-2, 2, -2, 2, -40, 40]);   %设置坐标轴的取值范围,防止坐标轴也被压缩

while true
    for i = 1:100
        Z = 0.98 * Z;  %将原来的theta值缩小为0.98set(h, 'XData', X, 'YData', Y, 'ZData', Z);
        drawnow;
    end

    for i = 1:100
        Z = Z / 0.98;  %将原来的theta值缩小为0.98set(h, 'XData', X, 'YData', Y, 'ZData', Z);
        drawnow;
    end
end

例3: 以1为半径画圆的过程

t = 0 : pi/50 : 2 * pi;
X = cos(t);
Y = sin(t);

plot(X, Y);
axis equal; % 可以强行将x 和y 轴的尺度调到一样,让这个圆变得真正“圆”起来
hold on;

% 绘制(0,0)到(10)的线段
lineX = [0,1];
lineY = [0,0];
h = plot(lineX,lineY);

theta = 0;
for i = 1 : 1000
    theta = theta + 0.1 ;    
    %只需改变 lineX 和 lineY 的第二个数字,因为第一个数字代表圆心的位置,不变
    lineX(2) = cos(theta);   % lineX 的第二个数字
    lineY(2) = sin(theta);
    set(h, 'XData', lineX, 'YData', lineY);
    drawnow;
end

课后作业:绘制三维平面皱起来然后又拉直的过程

x = -10 : 0.1 : 10;
y = -10 : 0.1 : 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.99 * Z;
      set(h, 'XData', X, 'YData', Y, 'ZData', Z);
      drawnow;
   end
   for i = 1:100
      Z = Z / 0.99;
      set(h, 'XData', X, 'YData', Y, 'ZData', Z);
      drawnow;
   end
end
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值