当一个小圆在一个大圆内滚动时,小圆上一个固定点的轨迹称为圆内旋轮线(或内摆线)。


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):
yuan:=circle([0,0],R,color=brown):
text:=textplot([0,-0.3,"SCU MATH 2008"],color=grey):
display(yuan,quxian,text,tickmarks=[4,4],scaling=constrained,title="hypocycloid",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=7):
yuan:=circle([0,0],R,color=brown):
text:=textplot([0,-0.3,"SCU MATH 2008"],color=grey):
display(yuan,quxian,text,tickmarks=[4,4],scaling=constrained,title="hypocycloid",thickness=3);
当大圆的半径是小圆半径的4倍时,得到星形线:
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):
yuan:=circle([0,0],R,color=brown):
text:=textplot([0,-0.3,"SCU MATH 2008"],color=grey):
display(yuan,quxian,text,tickmarks=[4,4],scaling=constrained,title="astroid as hypocycloid",thickness=3);
当大圆的半径是小圆半径的2倍时,得到大圆的一条直径:
哥白尼曾指出:
如果一个圆在直径两倍于它的圆内滚动,
则小圆上的每一个点都画出一条直线。
with(plots):with(plottools): R:=1:r:=1/2:
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=7):
yuan:=circle([0,0],R,color=brown):
text:=textplot([0,-0.3,"SCU MATH 2008"],color=grey):
display(yuan,quxian,text,tickmarks=[4,4],scaling=constrained,title="diameter as hypocycloid",thickness=3);
动画的Maple程序:
with(plots):with(plottools):R:=1:r:=1/3:
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:
quxian[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:
quxian:=display(seq(quxian[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,"2011"],color=grey):
display(xian,quxian,dongyuan,yuan,quxian,text,tickmarks=[4,4],scaling=constrained,title='hypocycloid',thickness=3);

评论