例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.98倍
set(h, 'XData', X, 'YData', Y, 'ZData', Z);
drawnow;
end
for i = 1:100
Z = Z / 0.98; %将原来的theta值缩小为0.98倍
set(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)到(1,0)的线段
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