先定义坐标变量,确定范围,画出起始静态图,存进图形变量h。通过对坐标的变化,把新的坐标放进图形变量h,再实时刷新看起来就是动态的。
1.动态的sin曲线
X = -2*pi:0.1:2*pi; Y = sin(X); h = plot(X,Y);%先画出静态的,存在h里 for i=1:0.1:1000 X = X+0.1;%x向右移动0.1个单位 Y = sin(X); set( h, \'XData\',X,\'YData\',Y );%新的X和Y,重新放回到h里 drawnow;%刷新 end
2.螺旋上下拉升收缩的曲线,像弹簧
t=-10*pi:0.1:pi*10; x=cos(t); y=sin(t); z=t; h=plot3(x,y,z); axis([-1,1,-1,1,-40,40]);%坐标间距固定 while true for i=1:1:100 z=0.98*z;%压缩为原来的0.98倍 set(h,\'XData\',x,\'YData\',y,\'ZData\',z); drawnow; end for i=1:1:100 z=z/0.98;%拉伸 set(h,\'XData\',x,\'YData\',y,\'ZData\',z); drawnow; end end
3.时钟
t=0:pi/50:2*pi; x=cos(t); y=sin(t); plot(x,y);%先画出一个圆 axis equal;%横纵坐标间距相同 hold on;%保存 linex=[0 1]; liney=[0 0]; h=plot(linex,liney); theta=0; for i=1:1000 theta=theta-0.1; linex(2)=cos(theta); liney(2)=sin(theta); set(h,\'XData\',linex,\'YData\',liney); drawnow; end
数组变量从1开始算起,相比C语言的[]索引方式有所不同,用()引用。
本次对时针动态变化,时针由两点确定。
(另外,如果drawnow 换成 drawnow update会转得更快)。
请发表评论