matlab动态图像的画法

动态图关键的两个函数 set()和drawnow

第一步,先表示出静态图

第二步,循环来画出更新后的图像,用set()来更新数据,用drawnow来更新图像

例子一,

%第一步%
x= 0:pi/50:2*pi;
y=sin(x);
h=plot(x,y)

%第二步%
while true
    x=x+0.1;
    y=sin(x);
    set(h,'XData',x,'YData',y);
    drawnow;
end

例子2

%第一步%
theat=0:pi/50:8*pi;
x=cos(theat);
y=sin(theat);
z=0:400;
h=plot3(x,y,z);
%第二步%
axis([-1,1,-1,1,0,400]);   %设置x,y,z轴的取值范围%
while true
    for i =1:100
        z=0.98*z;
        set(h,'XData',x,'YData',y,'ZData',z);
        drawnow;
    end
    for i=1:100
        z=z/0.98;
        set(h,'XData',x,'YData',y,'ZData',z);
        drawnow;
    end
end

会像弹簧一样伸展

例子3

%第一步%
theta=0:pi/100:2*pi;
x=cos(theta);
y=sin(theta);
plot(x,y);
axis equal;

hold on;  %两个plot共存在一个图里%

lineX=[0,1];
lineY=[0,0];
h=plot(lineX,lineY);

%第二步%
org=0;
while true
    org=org+0.01*pi;
    lineX(2)=cos(org);
    lineY(2)=sin(org);
    set(h,'XData',lineX,'YData',lineY);
    drawnow;
end

线会绕圆心旋转

例子4

%第一步%
x=-10:0.1:10;
y=-10:0.1:10;
[X,Y]=meshgrid(x,y);
Z=sin(X)+sin(Y);
h=surf(X,Y,Z);

axis([-10,10,-10,10,-2,2])
%第二步%
while true
    for i=1:100
    Z=Z*0.98;
    set(h,'XData',X,'YData',Y,'ZData',Z);
    drawnow;
    end
    for i=1:100
        Z=Z/0.98;
        set(h,'XData',X,'YData',Y,'ZData',Z);
        drawnow;
    end  
end

波浪形

 

 

 

 

 

  • 24
    点赞
  • 226
    收藏
    觉得还不错? 一键收藏
  • 4
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值