圆中滚圆动画演示.docVIP

  • 11
  • 0
  • 约1.34千字
  • 约 4页
  • 2017-08-18 发布于重庆
  • 举报
圆中滚圆动画演示

圆中滚圆动画演示 设置参数 大圆半径R;小圆半径r;大圆圆心(0,0);小圆圆心 圆上一点A坐标 滚动过程中以,R,r为参数变化。在此A点都为圆上一个点,对于A为圆内点的情况另做考虑。 设A为圆内点,切距离圆心距离为d(dr),则A坐标为 figure(name,滚圆曲线);%设置标题名字 %t=0:0.01*pi:50*pi; t=0; s=0:0.01*pi:2*pi; hold on;axis equal; R=5;r=2;d=r;%参数更改区域 若A为圆上点则d=r,若为圆内点则取d(dr) be=(1-r/R); pausetime=0.002;%设置暂停时间 set(gcf,doublebuffer,on) %消除抖动 set(gca,xlim,[-8 8],ylim,[-8 8]);%设置坐标轴范围 plot(R*cos(s),R*sin(s));%大圆 p1=plot(r*cos(s)-(R-r)*sin((1-be)*t),r*sin(s)-(R-r)*cos((1-be)*t),color,b);%小圆初始位置 Ax=(R-r)*sin((1-be)*t)-d*sin(be*t); Ay=-(R-r)*cos((1-be)*t)-d*cos(be*t); %A点坐标值 p2=plot(Ax,Ay,color,r,marker,.,markersize,5); %圆上A点初始位置 orbit=line(xdata,Ax,ydata,Ay,color,r); %画A点的运动轨迹 for ii=1:5000 set(p1,xdata,r*cos(s)+(R-r)*sin((1-be)*t),ydata,r*sin(s)-(R-r)*cos((1-be)*t));%设置小圆的运动过程 pemx=(R-r)*sin((1-be)*t)-d*sin(be*t);pemy=-(R-r)*cos((1-be)*t)-d*cos(be*t); set(p2,xdata,pemx,ydata,pemy);%设置A点运动过程 %p2x=[Ax,pemx];p2y=[Ay,pemy]; plot(pemx,pemy,color,b); % set(orbit,xdata,p2x,ydata,p2y);%设置A点运动轨迹 % 但是这种设置并不能A点让轨迹被画出来,结果是把A点当前位置和初始位置连在了一起而已。 t=t+0.01*pi; pause(pausetime); %暂停一会 drawnow end 图1 设置参数为R=5,r=2,d=r 图2 参数设置为R=6,r=1,d=r 图3 参数设置为R=5,r=4,d=3 图4 参数设置R=7,r=4,d=r 图5 参数设置R=7,r=2.3,d=r。 图中还没有画成闭合曲线,还可以继续让小圆运动。

文档评论(0)

1亿VIP精品文档

相关文档