5月写的 忘了发
事情来由:
昨天晚上兄弟突然问我会不会使用matlab来制作动画,有道题目想要我做一下
题目是这样的:
我就惊了,matlab还能用来制作动画的吗
查了一下,找到一段代码,随后开始了学习和修改的道路
原始代码是这样的:
K=100;
n=zeros(1,5);
delay=0.05;
clf;
axis([-4 4 -7 0]);
aa=sqrt(3)/2;
bb=1/2;
dd=3/2;
a=0.9*aa;
b=0.9*bb;
xx=[0,-aa,aa,-2*aa,0,2*aa,-3*aa,-aa,aa,3*aa];
yy=[0,-dd,-dd,-2*dd,-2*dd,-2*dd,-3*dd,-3*dd,-3*dd,-3*dd];
for k=1:K
clf
r=round(rand(1,4));
x0=0;y0=0;
text(1.5,-0.5,'Galton');hold on;
text(2.5,-1,'cpw');hold on;
for i=1:10
x=xx(i);
y=yy(i)-0.1;
X=[x,x-a,x-a,x,x+a,x+a];
Y=[y,y-b,y-b-0.9,y-1.8,y-b-0.9,y-b];
fill(X,Y,'g');hold on;
end
n(sum(r)+1)=n(sum(r)+1)+1;
plot(x0,y0,'ro');
for j=1:4
if r(j)==0
x0=x0-aa;y0=y0-bb;
plot(x0,y0,'ro');hold on;pause(delay);
y0=y0-1;
plot(x0,y0,'ro');hold on;pause(delay);
else
x0=x0+aa;y0=y0-bb;
plot(x0,y0,'ro');hold on;pause(delay);
y0=y0-1;
plot(x0,y0,'ro');hold on;pause(delay);
end
end
for m=1:5
text((m-3)*sqrt(3),-6.5,num2str(n(m)));
end
pause(20*delay);
end
跑了一下确实不错,但是我想修改,于是就开始了一个一个函数去查询
添加注释: