加载中…
个人资料
  • 博客等级:
  • 博客积分:
  • 博客访问:
  • 关注人气:
  • 获赠金笔:0支
  • 赠出金笔:0支
  • 荣誉徽章:
正文 字体大小:

2014年全国大学生数学建模竞赛B题动态图matlab代码

(2014-09-25 13:55:35)
标签:

it

分类: matlab

博主刚参加完比赛,分享一下自己写的matlab折叠桌动态图代码,画的比较简陋,凑合着看吧http://s12/mw690/003cvAxDzy6MjFxV9G33b&690
代码如下,我就不一一解释每条命令了。
clc
clear
filename='mygif';
 ri=zeros(1,10);  theta=zeros(1,10);  ai=zeros(1,10);  bi=zeros(1,10);  di=zeros(1,10);                       %定义变量
ai(1)=1.25;   b0=sqrt(625-(25-ai(1))^2);   l=120/2-b0;   l0=l/2; bi(1)=0;   ri(1)=l0;
for ii =0:0.05*asin(50/l):asin(50/l)
   fai=ii; theta(1)=fai;      %计算最外那根木条参数
   for i=2:10
    ai(i)=2.5*i-1.25;
    bi(i)=sqrt(625-(25-ai(i))^2)-b0;
    ri(i)=sqrt(l0^2+bi(i)^2-2*bi(i)*l0*cos(fai));
    theta(i)=acos((l0^2-bi(i)^2+ri(i)^2)/(2*ri(i)*l0))+fai;
    di(i)=b0+ri(i)+bi(i)-l0;
   end
  li=zeros(1,10);   xi=zeros(1,40);   yi=zeros(1,40);   zi=zeros(1,40);   x=zeros(1,10);   y=zeros(1,10);   z=zeros(1,10);
  li(:)=60-b0-bi(:);
  x(:)=25-ai(:);
  y(:)=bi(:)+b0+li(:).*cos(theta(:));
  z(:)=li(:).*sin(theta(:));
 for j=1:10
    xi(j)=x(j);yi(j)=y(j);zi(j)=z(j);
 end
 for j=11:20
    xi(j)=-xi(21-j);yi(j)=yi(21-j);zi(j)=zi(21-j);
 end
 for j=21:30
    xi(j)=xi(41-j);yi(j)=-yi(41-j);zi(j)=zi(41-j);
 end
 for j=31:40
    xi(j)=xi(41-j);yi(j)=-yi(41-j);zi(j)=zi(41-j);
 end
 beta=acos(xi/25);
 for i=21:40
    beta(i)=2*pi-beta(41-i);
 end

 zz=zeros(1,40);
 yy=25*sin(beta);

 for i=1:40
      x1=[xi(i),xi(i)];
      y1=[yi(i),yy(i)];
      z1=[-zi(i),-zz(i)];
      plot3(x1,y1,z1,'color',[0.6297,0.3070,0.0633],'LineWidth',3)%咖啡色
      hold on;
 end
 xlabel('x')
 ylabel('y')
 t=0:pi/20:2*pi;
 X=25*cos(t);Y=25*sin(t);
 plot(X,Y,'color',[0.6297,0.3070,0.0633],'LineWidth',5)
 area(X,Y,'FaceColor',[0.6297,0.3070,0.0633]); shg;
 axis off
 axis equal
 hold off
pause(0.01) 
  
    f = getframe(gcf); 
 
    imind = frame2im(f);
 
    [imind,cm] = rgb2ind(imind,256);
 
    if ii == 0
 
        imwrite(imind,cm,filename,'gif', 'Loopcount',inf,'DelayTime',0.2);
 
    else
 
        imwrite(imind,cm,filename,'gif','WriteMode','append','DelayTime',0.2);
 
    end
 
end

0

阅读 收藏 喜欢 打印举报/Report
  

新浪BLOG意见反馈留言板 欢迎批评指正

新浪简介 | About Sina | 广告服务 | 联系我们 | 招聘信息 | 网站律师 | SINA English | 产品答疑

新浪公司 版权所有