axis([-a,a,-r,r,-h,0])
axis equal
light('position',[0,0,100]);
material metal
C=[1,0.5,0.05];
%a=60;rg=26.0969;
w=2.5;high=1.5;n=r*2/w;c=3;
n=r*2/w;
n1=floor((n+1)/2);
if(mod(n,2)==0)x=w/2;
else x=0;
end
for(i=1:n1)
kuan(i)=x;
if(strcmp(Photo,'circle')==1)
radius(i)=sqrt(r^2-x^2);
end
if(strcmp(Photo,'Square')==1)
radius(i)=r-x;
end
x=x+w;
long(i)=a-radius(i);
end
bike=rg;
for(i=1:n1)
biketh(i)=bike+radius(n1)-radius(i);
bikelong(i)=sqrt(biketh(i)^2+high^2);
end
y0=0;step=0;
x0=sqrt(long(n1)^2-y0^2);
t=atan(y0/x0);
x1=cos(t)*biketh(n1)+radius(n1);
y1=sin(t)*biketh(n1);
for(i=1:n1)
range(i)=sqrt((x1-radius(i)).^2+y1.^2);
angle(i)=atan2(y1,(x1-radius(i)));
aochao(i)=range(i)-biketh(i);
end
hold on
o=1.25;
for(i=1:n1)
x=[radius(i),radius(i),radius(i),radius(i)];
y=[o-1.25,o+1.25,o+1.25,o-1.25];
z=[0,0,3,3];
X=x';
Y=y';
Z=z';
for(j=1:4)
x1=j;x2=mod(j,4)+1;
X(:,j+1)=[x(x1),x(x2),-x(x2),-x(x1)]';
Y(:,j+1)=[y(x1),y(x2),y(x2),y(x1)]';
Z(:,j+1)=[z(x1),z(x2),z(x2),z(x1)]';
end
j=5;
X(:,j+1)=-x';
Y(:,j+1)=y';
Z(:,j+1)=z';fill3(X,Y,Z,C);
hold on;fill3(X,-Y,Z,C);
o=o+2.5;
end
%axis equal
o=1.25;
for(i=1:n1)
x=[radius(i),radius(i),radius(i)+3*cos(angle(i)-pi/2),radius(i)+3*cos(angle(i)-pi/2)]';
y=[o-1.25,o+1.25,o+1.25,o-1.25]';
z=[0,0,3*sin(angle(i)-pi/2),3*sin(angle(i)-pi/2)]';
X=x;
Y=y;
Z=z;
for(j=1:4)
x1=j;x2=mod(j,4)+1;
X(:,j+1)=[x(x1),x(x2),x(x2)+long(i)*cos(angle(i)),x(x1)+long(i)*cos(angle(i))]';
Y(:,j+1)=[y(x1),y(x2),y(x2),y(x1)]';
Z(:,j+1)=[z(x1),z(x2),z(x2)+long(i)*sin(angle(i)),z(x1)+long(i)*sin(angle(i))]';
end
j=5;
X(:,j+1)=(x+long(i)*cos(angle(i)))';
Y(:,j+1)=y';
Z(:,j+1)=(z+long(i)*sin(angle(i)))';
fill3(X,Y,-Z,C);hold on
fill3(X,-Y,-Z,C);
fill3(-X,Y,-Z,C);
fill3(-X,-Y,-Z,C);
o=o+2.5;
end
%axis equal
%close Figure 1
set(gca,'nextplot','replacechildren');
%title('帧动画播放示例')
rt=linspace(0,h,8)
for(k=1:8)
%for(k=1:50)
y0=rt(k);nm=gcf;cla(nm);
axis([-a,a,-r,r,-h,0])
axis equal
light('position',[0,0,100]);
material metal
x0=sqrt(long(n1)^2-y0^2);
t=atan(y0/x0);
x1=cos(t)*biketh(n1)+radius(n1);
y1=sin(t)*biketh(n1);
for(i=1:n1)
range(i)=sqrt((x1-radius(i)).^2+y1.^2);
angle(i)=atan2(y1,(x1-radius(i)));
aochao(i)=range(i)-biketh(i);
end
o=1.25;
for(i=1:n1)
x=[radius(i),radius(i),radius(i),radius(i)];
y=[o-1.25,o+1.25,o+1.25,o-1.25];
z=[0,0,3,3];
X=x';
Y=y';
Z=z';
for(j=1:4)
x1=j;x2=mod(j,4)+1;
X(:,j+1)=[x(x1),x(x2),-x(x2),-x(x1)]';
Y(:,j+1)=[y(x1),y(x2),y(x2),y(x1)]';
Z(:,j+1)=[z(x1),z(x2),z(x2),z(x1)]';
end
j=5;
X(:,j+1)=-x';
Y(:,j+1)=y';
Z(:,j+1)=z';
fill3(X,Y,Z,C);
hold on;
fill3(X,-Y,Z,C);
o=o+2.5;
end
%axis equal
o=1.25;
for(i=1:n1)
x=[radius(i),radius(i),radius(i)+3*cos(angle(i)-pi/2),radius(i)+3*cos(angle(i)-pi/2)]';
y=[o-1.25,o+1.25,o+1.25,o-1.25]';
z=[0,0,3*sin(angle(i)-pi/2),3*sin(angle(i)-pi/2)]';
X=x;
Y=y;
Z=z;
for(j=1:4)
x1=j;x2=mod(j,4)+1;
X(:,j+1)=[x(x1),x(x2),x(x2)+long(i)*cos(angle(i)),x(x1)+long(i)*cos(angle(i))]';
Y(:,j+1)=[y(x1),y(x2),y(x2),y(x1)]';
Z(:,j+1)=[z(x1),z(x2),z(x2)+long(i)*sin(angle(i)),z(x1)+long(i)*sin(angle(i))]';
end
j=5;
X(:,j+1)=(x+long(i)*cos(angle(i)))';
Y(:,j+1)=y';
Z(:,j+1)=(z+long(i)*sin(angle(i)))';
fill3(X,Y,-Z,C);hold on
fill3(X,-Y,-Z,C);
fill3(-X,Y,-Z,C);
fill3(-X,-Y,-Z,C);
o=o+2.5;
end
%axis equal
disp('按任意键切换到下一张指示图');
pause;
end
for(k=h:-1:1)
y0=k;nm=gcf;cla(nm);
light('position',[0,0,1]);
material metal
x0=sqrt(long(n1)^2-y0^2);
t=atan(y0/x0);
x1=cos(t)*biketh(n1)+radius(n1);
y1=sin(t)*biketh(n1);
for(i=1:n1)
range(i)=sqrt((x1-radius(i)).^2+y1.^2);
angle(i)=atan2(y1,(x1-radius(i)));
aochao(i)=range(i)-biketh(i);
end
o=1.25;
for(i=1:n1)
x=[radius(i),radius(i),radius(i),radius(i)];
y=[o-1.25,o+1.25,o+1.25,o-1.25];
z=[0,0,3,3];
X=x';
Y=y';
Z=z';
for(j=1:4)
x1=j;x2=mod(j,4)+1;
X(:,j+1)=[x(x1),x(x2),-x(x2),-x(x1)]';
Y(:,j+1)=[y(x1),y(x2),y(x2),y(x1)]';
Z(:,j+1)=[z(x1),z(x2),z(x2),z(x1)]';
end
j=5;
X(:,j+1)=-x';
Y(:,j+1)=y';
Z(:,j+1)=z';fill3(X,Y,Z,C);
hold on;fill3(X,-Y,Z,C);
o=o+2.5;
end
%axis equal
o=1.25;
for(i=1:n1)
x=[radius(i),radius(i),radius(i)+3*cos(angle(i)-pi/2),radius(i)+3*cos(angle(i)-pi/2)]';
y=[o-1.25,o+1.25,o+1.25,o-1.25]';
z=[0,0,3*sin(angle(i)-pi/2),3*sin(angle(i)-pi/2)]';
X=x;
Y=y;
Z=z;
for(j=1:4)
x1=j;x2=mod(j,4)+1;
X(:,j+1)=[x(x1),x(x2),x(x2)+long(i)*cos(angle(i)),x(x1)+long(i)*cos(angle(i))]';
Y(:,j+1)=[y(x1),y(x2),y(x2),y(x1)]';
Z(:,j+1)=[z(x1),z(x2),z(x2)+long(i)*sin(angle(i)),z(x1)+long(i)*sin(angle(i))]';
end
j=5;
X(:,j+1)=(x+long(i)*cos(angle(i)))';
Y(:,j+1)=y';
Z(:,j+1)=(z+long(i)*sin(angle(i)))';
fill3(X,Y,-Z,C);hold on
fill3(X,-Y,-Z,C);
fill3(-X,Y,-Z,C);
fill3(-X,-Y,-Z,C);
o=o+2.5;
end
%axis equal
end