当一个小圆在一个大圆外滚动时,小圆上一个固定点的轨迹称为圆外旋轮线(或外摆线)。
with(plots):with(plottools):
R:=1:r:=1/3:
f:=x->(R+r)*cos(x)-r*cos((R+r)*x/r):
g:=x->(R+r)*sin(x)-r*sin((R+r)*x/r):
quxian:=plot([f(t),g(t),t=0..2*Pi],color=red,thickness=3):
xian:=plot([[(R+r)*cos(2*Pi),(R+r)*sin(2*Pi)],[f(2*Pi),g(2*Pi)]],color=brown):
yuan:=circle([0,0],R,color=brown):
text:=textplot([0,-0.3,"SCU MATH 2008"],color=grey):
display(xian,yuan,quxian,text,tickmarks=[4,4],scaling=constrained,title='epicycloid',thickness=3);
with(plots):with(plottools):
R:=1:r:=1/4:
f:=x->(R+r)*cos(x)-r*cos((R+r)*x/r):
g:=x->(R+r)*sin(x)-r*sin((R+r)*x/r):
quxian:=plot([f(t),g(t),t=0..2*Pi],color=red,thickness=3):
xian:=plot([[(R+r)*cos(2*Pi),(R+r)*sin(2*Pi)],[f(2*Pi),g(2*Pi)]],color=brown):
yuan:=circle([0,0],R,color=brown):
text:=textplot([0,-0.3,"SCU MATH 2008"],color=grey):
display(xian,yuan,quxian,text,tickmarks=[4,4],scaling=constrained,title='epicycloid',thickness=3);
with(plots):with(plottools):
R:=1:r:=1/9:
f:=x->(R+r)*cos(x)-r*cos((R+r)*x/r):
g:=x->(R+r)*sin(x)-r*sin((R+r)*x/r):
quxian:=plot([f(t),g(t),t=0..2*Pi],color=red,thickness=3):
xian:=plot([[(R+r)*cos(2*Pi),(R+r)*sin(2*Pi)],[f(2*Pi),g(2*Pi)]],color=brown):
yuan:=circle([0,0],R,color=brown):
text:=textplot([0,-0.3,"SCU MATH 2008"],color=grey):
display(xian,yuan,quxian,text,tickmarks=[4,4],scaling=constrained,title='epicycloid',thickness=3);
当两个圆半径相等时,我们得到心形线:
with(plots):with(plottools):
R:=1:r:=1:
f:=x->(R+r)*cos(x)-r*cos((R+r)*x/r):
g:=x->(R+r)*sin(x)-r*sin((R+r)*x/r):
curve:=plot([f(t),g(t),t=0..6*Pi]):
yuan:=circle([0,0],R,color=brown):
text:=textplot([0,-0.3,"SCU MATH 2008"],color=grey):
display(curve,yuan,text,tickmarks=[4,4],scaling=constrained,title='epicycloid',thickness=3);

动画的Maple程序:
with(plots):with(plottools):R:=1:r:=1/4:
x:=t->(R+r)*cos(t)-r*cos((R+r)*t/r): y:=t->(R+r)*sin(t)-r*sin((R+r)*t/r):
quxian:=plot([x(t),y(t),t=0..2*Pi],color=grey,thickness=1):
K:=150:for i from 1 to K do ti:=i*3*Pi/K:
curve[i]:=plot([x(t),y(t),t=0..ti]):
dongyuan[i]:=circle([(R+r)*cos(ti),(R+r)*sin(ti)],r,color=blue):
xian[i]:=plot([[(R+r)*cos(ti),(R+r)*sin(ti)],[x(ti),y(ti)]],color=brown) od:
curve:=display(seq(curve[i],i=1..K),insequence=true):
dongyuan:=display(seq(dongyuan[i],i=1..K),insequence=true):
xian:=display(seq(xian[i],i=1..K),insequence=true):
yuan:=circle([0,0],R,color=brown):
text:=textplot([0,-0.3,"SCUMATH 2008"],color=grey):
display(xian,curve,dongyuan,yuan,quxian,text,tickmarks=[4,4],scaling=constrained,title='epicycloid',thickness=3);
评论