qianxq2005
2009-05-23, 17:10
具体是将下面两段程序仿真出的图形在上,下两个窗口中显示,上面显示程序1的图,下面显示程序2的图,用一个“开始”和一个“停止”命令控制其播放
程序1:Rh=2;
I=10*sin(pi/2);
mu0=4*pi*1e-7;
C=mu0/(4*pi)*I;
x=linspace(-3,3,20);
y=x;
Nh=20;
theta0=linspace(0,2*pi,Nh+1);
theta1=theta0(1:Nh);
y1=Rh*cos(theta1);
z1=Rh*sin(theta1);
theta2=theta0(2:Nh+1);
y2=Rh*cos(theta2);
z2=Rh*sin(theta2);
dlx=0;
dly=y2-y1;
dlz=z2-z1;
xc=0;
yc=(y2+y1)/2;
zc=(z2+z1)/2;
NGx=20;NGy=20;
m=moviein(180);
for C=1:180
for i=1:NGy
for j=1:NGx
rx=x(j)-xc;
ry=y(i)-yc;
rz=0-zc;
r3=sqrt(rx.^2+ry.^2+rz.^2).^3;
dlXr_x=dly.*rz-dlz.*ry;
dlXr_y=dlz.*rx-dlx.*rz;
Bx(i,j)=sum(C*dlXr_x./r3);
By(i,j)=sum(C*dlXr_y./r3);
end
end
clf;plot(y,By);
m(:,C)=getframe
pause(0.2)
end
movie(m,1)
程序2:s=0.2; x1=0; % 确定起始点横坐标x1及其增量
nframes = 180; % 确定动画总帧数
for k = 1:180
x1=x1+s; % 确定画图时横坐标终止值x1
x2=0:0.01:x1; y2=sin(x2);
plot(x2,y2); % 在x=[0 x1]作y=sin(x)曲线
axis([0 2*pi -1 1]) % 定义坐标轴范围
grid off % 不显示网格线
M(k)=getframe; % 将当前图形存入矩阵M(k)
end
pause(0.02)
movie(M,3) % 重复3次播放动画M
程序1:Rh=2;
I=10*sin(pi/2);
mu0=4*pi*1e-7;
C=mu0/(4*pi)*I;
x=linspace(-3,3,20);
y=x;
Nh=20;
theta0=linspace(0,2*pi,Nh+1);
theta1=theta0(1:Nh);
y1=Rh*cos(theta1);
z1=Rh*sin(theta1);
theta2=theta0(2:Nh+1);
y2=Rh*cos(theta2);
z2=Rh*sin(theta2);
dlx=0;
dly=y2-y1;
dlz=z2-z1;
xc=0;
yc=(y2+y1)/2;
zc=(z2+z1)/2;
NGx=20;NGy=20;
m=moviein(180);
for C=1:180
for i=1:NGy
for j=1:NGx
rx=x(j)-xc;
ry=y(i)-yc;
rz=0-zc;
r3=sqrt(rx.^2+ry.^2+rz.^2).^3;
dlXr_x=dly.*rz-dlz.*ry;
dlXr_y=dlz.*rx-dlx.*rz;
Bx(i,j)=sum(C*dlXr_x./r3);
By(i,j)=sum(C*dlXr_y./r3);
end
end
clf;plot(y,By);
m(:,C)=getframe
pause(0.2)
end
movie(m,1)
程序2:s=0.2; x1=0; % 确定起始点横坐标x1及其增量
nframes = 180; % 确定动画总帧数
for k = 1:180
x1=x1+s; % 确定画图时横坐标终止值x1
x2=0:0.01:x1; y2=sin(x2);
plot(x2,y2); % 在x=[0 x1]作y=sin(x)曲线
axis([0 2*pi -1 1]) % 定义坐标轴范围
grid off % 不显示网格线
M(k)=getframe; % 将当前图形存入矩阵M(k)
end
pause(0.02)
movie(M,3) % 重复3次播放动画M