本文主要是介绍能量守恒matlab,【文章】仿真设计作品--能量守恒,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
【文章】仿真设计作品--能量守恒
pole=1.8;
xmax=2;
ymax=2;
basew=2.3;
baseh=2.3;
instant=0.2;
figure('name','理想情况下能量守恒定律1','position',[500,340,440,320]);
fill([xmax,xmax,-xmax,-xmax,xmax,xmax-0.05,xmax-0.05,-xmax+0.05,-xmax+0.05,xmax-0.05],[ymax,-ymax,-ymax,ymax,ymax,ymax-0.05,-ymax+0.05,-ymax+0.05,ymax-0.05,ymax-0.05],[0,1,1]);
hold on;
fill([xmax-0.05,xmax-0.05,-xmax+0.05,-xmax+0.05],[ymax-0.5 ,ymax-0.55,ymax-0.55,ymax-0.5],'g');
hold on;
text(1.0,1.7,'真空容器');text(-1.8,1.7,'主视图');
axis([-basew,basew,-baseh,baseh]);
axis('off');
theta0=7*pi/6;
x0=pole*cos(theta0);
y0=pole*sin(theta0)+1.5;
body1=line([-instant,x0-instant],[1.5,y0],'color','r','linestyle','-','erasemode','xor');
head1=line(x0-instant,y0,'color','r','linestyle','.','erasemode','xor','markersize',40);
theta1=3*pi/2;
x1=pole*cos(theta1);
y1=pole*sin(theta1)+1.5;
body=line([-0.001,x1],[1.5,y1],'color','k','linestyle','-','erasemode','xor');
head=line(x1,y1,'color','k','linestyle','.','erasemode','xor','markersize',40);
body2=line([instant;x1+instant],[1.5;y1],'color','b','linestyle','-','erasemode','xor');
head2=line(x1+instant,y1,'color','b','linestyle','.','erasemode','xor','markersize',40);
theta3=15*pi/6 ;
figure('name','理想情况下能量守恒定律2','position',[500,40,440,320]);
fill([xmax,xmax,-xmax,-xmax,xmax,xmax-0.05,xmax-0.05,-xmax+0.05,-xmax+0.05,xmax-0.05],[ymax,-ymax,-ymax,ymax,ymax,ymax-0.05,-ymax+0.05,-ymax+0.05,ymax-0.05,ymax-0.05],[0,1,1]);
hold on;
fill([xmax-0.05,xmax-0.05,-xmax+0.05,-xmax+0.05],[ymax-0.5 ,ymax-0.55,ymax-0.55,ymax-0.5],'g');
hold on;
fill([xmax-0.05,xmax-0.05,-xmax+0.05,-xmax+0.05],[-ymax+0.55 ,-ymax+0.5,-ymax+0.5,-ymax+0.55 ],'g');
hold on;
text(1.0,1.7,'真空容器');text(-1.8,1.7,'俯视图');
axis([-basew,basew,-baseh,baseh]);
axis('off');
y01=0;
body11=line([-instant,x0-instant],[1.5,y01],'color','r','linestyle','-','erasemode','xor');
body12=line([-instant,x0-instant],[-1.5,y01],'color','r','linestyle','-','erasemode','xor');
head01=line(x0-instant,y01,'color','r','linestyle','.','erasemode','xor','markersize',40);
body01=line([-0.001,x1],[1.5,y01],'color','k','linestyle','-','erasemode','xor');
body02=line([-0.001,x1],[-1.5,y01],'color','k','linestyle','-','erasemode','xor');
head00=line(x1,y01,'color','k','linestyle','.','erasemode','xor','markersize',40);
body21=line([instant;x1+instant],[1.5;y01],'color','b','linestyle','-','erasemode','xor');
body22=line([instant;x1+instant],[-1.5;y01],'color','b','linestyle','-','erasemode','xor');
head02=line(x1+instant,y01,'color','b','linestyle','.','erasemode','xor','markersize',40);
figure('name','理想情况下能量守恒定律3','position',[50,340,440,320]);
fill([xmax,xmax,-xmax,-xmax,xmax,xmax-0.05,xmax-0.05,-xmax+0.05,-xmax+0.05,xmax-0.05],[ymax,-ymax,-ymax,ymax,ymax,ymax-0.05,-ymax+0.05,-ymax+0.05,ymax-0.05,ymax-0.05],[0,1,1]);
hold on
text(1.0,1.7,'真空容器');text(-1.8,1.7,'侧视图');
axis([-basew,basew,-baseh,baseh]);
axis('off');
x01=0;x02=1.48;y02=1.48;
head000=line(-x02,y02,'color','g','linestyle','.','erasemode','xor','markersize',18);
head000=line(x02,y02,'color','g','linestyle','.','erasemode','xor','markersize',18);
body311=line([-x02,x01],[y02,y0],'color','r','linestyle','-','erasemode','xor');
body312=line([x02,x01],[y02,y0],'color','r','linestyle','-','erasemode','xor');
head301=line(x01,y0,'color','r','linestyle','.','erasemode','xor','markersize',40);
body301=line([-x02,x01],[y02,y1],'color','k','linestyle','-','erasemode','xor');
body302=line([x02,x01],[y02,y1],'color','k','linestyle','-','erasemode','xor');
head300=line(x01,y1,'color','k','linestyle','.','erasemode','xor','markersize',40);
body321=line([-x02;x01],[y02;y1],'color','b','linestyle','-','erasemode','xor');
body322=line([x02;x01],[y02;y1],'color','b','linestyle','-','erasemode','xor');
head302=line(x01,y1,'color','b','linestyle','.','erasemode','xor','markersize',40);
while 1
theta0=theta0+pi/540;
theta3=theta3-pi/540;
if theta0>=15*pi/6
theta0=7*pi/6;
theta3=15*pi/6 ;
elseif (theta0>=7*pi/6)&(theta0<3*pi/2)
x11=pole*cos(theta0);
y11=pole*sin(theta0)+1.5;
set(body1,'xdata',[-instant,x11-instant],'ydata',[1.5,y11]);
set(head1,'xdata',x11-instant,'ydata',y11);
set(body11,'xdata',[-instant,x11-instant],'ydata',[1.5,y01]);
set(body12,'xdata',[-instant,x11-instant],'ydata',[1.5,y01]);
set(head01,'xdata',x11-instant,'ydata',y01);
set(body311,'xdata',[-x02,x01],'ydata',[y02,y11]);
set(body312,'xdata',[x02,x01],'ydata',[y02,y11]);
set(head301,'xdata',x01,'ydata',y11);
elseif (theta0>=3*pi/2)&(theta0<11*pi/7)
x22=pole*cos(theta0);
y22=pole*sin(theta0)+1.5;
set(body2,'xdata',[instant,x22+instant],'ydata',[1.5,y22]);
set(head2,'xdata',x22+instant,'ydata',y22);
set(body21,'xdata',[instant,x22+instant],'ydata',[1.5,y01]);
set(body22,'xdata',[instant,x22+instant],'ydata',[-1.5,y01]);
set(head02,'xdata',x22+instant,'ydata',y01);
set(body321,'xdata',[-x02,x01],'ydata',[y02,y22]);
set(body322,'xdata',[x02,x01],'ydata',[y02,y22]);
set(head302,'xdata',x01,'ydata',y22);
elseif (theta0>=11*pi/6 )&(theta0<=13*pi/6 )
x32=pole*cos(theta3);
y32=pole*sin(theta3)+1.5;
set(body2,'xdata',[instant,x32+instant],'ydata',[1.5,y32]);
set(head2,'xdata',x32+instant,'ydata',y32);
set(body21,'xdata',[instant,x32+instant],'ydata',[1.5,y01]);
set(body22,'xdata',[instant,x32+instant],'ydata',[-1.5,y01]);
set(head02,'xdata',x32+instant,'ydata',y01);
set(body321,'xdata',[-x02,x01],'ydata',[y02,y32]);
set(body322,'xdata',[x02,x01],'ydata',[y02,y32]);
set(head302,'xdata',x01,'ydata',y32);
elseif (theta0>=13*pi/6 )&(theta0<15*pi/6 )
x41=pole*cos(theta3);
y41=pole*sin(theta3)+1.5;
set(body1,'xdata',[-instant,x41-instant],'ydata',[1.5,y41]);
set(head1,'xdata',x41-instant,'ydata',y41);
set(body11,'xdata',[-instant,x41-instant],'ydata',[1.5,y01]);
set(body12,'xdata',[-instant,x41-instant],'ydata',[-1.5,y01]);
set(head01,'xdata',x41-instant,'ydata',y01);
set(body311,'xdata',[-x02,x01],'ydata',[y02,y41]);
set(body312,'xdata',[x02,x01],'ydata',[y02,y41]);
set(head301,'xdata',x01,'ydata',y41);
drawnow;
end
end
2005年10月30日发表在《麓瑜园》
(注:本文转自转自《麓瑜园》,版权归原作者所有!在此仅作交流讨论之用,如需转载请注明原作者!)
这篇关于能量守恒matlab,【文章】仿真设计作品--能量守恒的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!