Matlab 实现 Galton knocked boards
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:Kclfr=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:10x=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;endn(sum(r)+1)=n(sum(r)+1)+1;plot(x0,y0,'ro');for j=1:4if r(j)==0x0=x0-aa;y0=y0-bb;plot(x0,y0,'ro');hold on;pause(delay);y0=y0-1;plot(x0,y0,'ro');hold on;pause(delay);elsex0=x0+aa;y0=y0-bb;plot(x0,y0,'ro');hold on;pause(delay);y0=y0-1;plot(x0,y0,'ro');hold on;pause(delay);endendfor m=1:5text((m-3)*sqrt(3),-6.5,num2str(n(m)));endpause(20*delay);
end
跑
本文来自互联网用户投稿,文章观点仅代表作者本人,不代表本站立场,不承担相关法律责任。如若转载,请注明出处。 如若内容造成侵权/违法违规/事实不符,请点击【内容举报】进行投诉反馈!
