|
马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有账号?我要加入
x
这是一个半径为R的车轮作摆线运动的动画。
- function a=p511()
- %这是一个MaLab动画: 半径为R的车轮作摆线运动.
- %作者:superkugua Q Q :49239359 email: <a href="mailto:superkugua@163.com">superkugua@163.com</a>
- v0=.2;R=1;t=0:.05:6*R*pi/v0;
- x0=0;y0=0;
- sita=0:pi/20:2*pi;
- cx=R*sin(sita);
- cy=R*cos(sita)+R;
- xt=v0*t;
- x=v0*t-R*sin(v0/R*t);
- y=R-R*cos(v0/R*t);
- % plot(x,y);
- line([0,6*R*pi],[0,0],'color','y');
- title('MatLab动画: 摆线运动 ');
- axis([-R,20,0,10]);
- axis('off','equal');%
- point=line(x0,y0,'color','b','linestyle','.','erasemode','none','markersize',5);
- circle0=line(cx,cy,'color','r','linestyle','--','erasemode','xor','markersize',1);%
- line0=line([0,0],[R,0],'color','r','linestyle','-','erasemode','xor','markersize',1);%
- n=length(t);
- i=1;
- while 1
- temp=xt(i);
- set(circle0,'xdata',cx+temp);drawnow;
- set(line0,'xdata',[temp,x(i)],'ydata',[R,y(i)]);drawnow;
- set(point,'xdata',x(i),'ydata',y(i));
- drawnow;
- if i==n
- di=-1;set(point,'erasemode','background');
- end
- if i==1
- di=1;set(point,'erasemode','none');
- end
- i=i+di;
- end
复制代码
|
|