第06章主题动画典例简析.docx
- 文档编号:24511950
- 上传时间:2023-05-28
- 格式:DOCX
- 页数:47
- 大小:741.08KB
第06章主题动画典例简析.docx
《第06章主题动画典例简析.docx》由会员分享,可在线阅读,更多相关《第06章主题动画典例简析.docx(47页珍藏版)》请在冰豆网上搜索。
第06章主题动画典例简析
第六章主题动画典例简析
图6-1单位圆上的三角函数线
图6-1单位圆上的三角函数线(连环画)
restart:
with(plots):
r:
=1:
M:
=11:
x:
=t->r*cos(t):
y:
=t->r*sin(t):
u:
=i*2*Pi/M+0.001:
f:
=u->r*cos(u):
g:
=u->r*sin(u):
z:
=t->t*tan(u):
plot([[x(t),y(t),t=0..2*Pi],[v,z(v),v=-2..2]],scaling=constrained,view=[-2..2,-2..2],color=[green,magenta]):
;
plot([[[0,0],[f(u),0]],[[f(u),0],[f(u),g(u)]],[[r,0],[r,r*tan(u)]],[[0,r],[r*cot(u),r]]],scaling=constrained,view=[-2..2,-2..2],color=[red,blue,black,navy],thickness=3):
;
Q1:
=display(seq(plot([[x(t),y(t),t=0..2*Pi],[v,z(v),v=-2..2]],view=[-2..2,-2..2],color=[blue,magenta]),i=0..M),insequence=true,scaling=constrained):
Q2:
=display(seq(plot([[[0,0],[f(u),0]],[[f(u),0],[f(u),g(u)]],[[r,0],[r,r*tan(u)]],[[0,r],[r*cot(u),r]]],view=[-2..2,-2..2],color=[red,blue,black,khaki],thickness=3),i=0..M),insequence=true,scaling=constrained):
display(Q1,Q2);
下面的一段,是额外附加的语句段落。
作用是把所完成的主题动画用最清晰的形式显示为分帧图形,以便送进本书稿做成图6.1所示的连环画(参见5.5命题31)。
QQ:
=display(Q1,Q2):
forifrom1toMdo
PLOT(op(op(i,op(1,QQ))),AXESTICKS(0,0),SCALING(CONSTRAINED))
od;
restart:
with(plots):
M:
=6:
r:
=1:
f:
=u->r*cos(u):
g:
=u->r*sin(u):
plot([f(u),g(u),u=0..2*Pi],color=green):
P:
=%:
animate(plot,[[[[0,0],[f(u),0]],[[f(u),0],[f(u),g(u)]],[[r,0],[r,r*tan(u)]],[[0,r],[r*cot(u),r]]],color=[red,blue,black,gold],thickness=3],u=0.001..2*Pi,frames=M):
QQ1:
=%:
animate(plot,[[t,t*tan(u),t=-2..2]],u=0.001..2*Pi,color=magenta,frames=M):
QQ2:
=%:
display(QQ1,QQ2,P,scaling=constrained,view=[-2..2,-2..2]);
图6-2正弦曲线的生成
图6-2正弦曲线的生成(连环画)
restart:
with(plots):
N:
=12:
M:
=72:
Q0:
=plots[animatecurve]([x+3/2,sin(x),x=0..2*Pi],frames=N+1,color=blue,thickness=2):
;
v:
=2*Pi*i/N:
u:
=2*Pi*i/M:
Q1:
=plot([cos(t),sin(t),t=0..2*Pi],scaling=constrained):
;
Q2:
=display(seq(plot([[0,0],[cos(v),sin(v)],[cos(v),0],[cos(v),sin(v)],[v+3/2,sin(v)],[v+3/2,0]],color=blue,thickness=1),i=0..N),scaling=constrained,insequence=true):
;
Q3:
=plot([[3/2,-2],[3/2,2]],scaling=constrained,color=black,thickness=1):
;
F:
=i->evalf([[u+3/2,0],[u+3/2,sin(u)]]):
FF:
=n->[CURVES(seq(F(i),i=0..M/N*n))]:
Q4:
=display(seq(FF(n),n=0..N),scaling=constrained,insequence=true,color=green):
display(Q0,Q1,Q2,Q3,Q4,tickmarks=[0,0],title="Zhengxianquxiandexingcheng\nSheji:
ZYC&ZXD2001.12",titlefont=
[TIMES,BOLD,12]);
如果使用高版本的animate,下面是实现方案之一。
restart:
with(plottools):
with(plots):
P:
=display(plot([t,sin(t),t=0..2*Pi],color=green,linestyle=3),plot([cos(t)-2,sin(t),t=0..2*Pi]),plot([t,0,t=-3.2..2*Pi+.2],color=black),plot([-2,s,s=-1.2..1.2],color=black),plot([0,s,s=-2.2..2.2],color=black)):
F:
=proc(t)
display(line([-2,0],[cos(t)-2,sin(t)],color=blue),
line([cos(t)-2,sin(t)],[t,sin(t)],color=blue),
point([cos(t)-2,sin(t)],symbol=circle,symbolsize=12,color=black),
point([t,sin(t)],symbol=circle,symbolsize=12,color=black),plot(sin(x),x=0..t,view=[-3..7,-5..5],thickness=3));end:
animate(F,[t],t=0..2*Pi,background=P,scaling=constrained,axes=box,tickmarks=[0,0],frames=12,axes=none);
图6-3位相变化着的正弦曲线
图6-3位相变化着的正弦曲线(连环画)
restart:
with(plots):
with(plottools):
a:
=proc(i,N)
ifi elifi>=Nandi<2.5*Nthen -Pi/3+Pi*(1/4+1/3)*(i-N)/(1.5*N) elifi>=2.5*NthenPi/4fi; end: ; N: =20: display([seq(plot([x,sin(x-a(i,N)),x=a(i,N)..2*Pi+a(i,N)],thickness=2),i=0..4*N)],insequence=true);Q: =%: QA1: =plot([x,sin(x),x=0..2*Pi],color=blue,thickness=3): Q1: =plot([x,sin(x+Pi/3),x=-Pi/3..2*Pi-Pi/3],color=blue,thickness=3): Q2: =display(point([0,0])): F: =proc(Q1,Q2,i,k) ifi>=kthenQ1; elseQ2fi; end: ; QF1: =display(seq(F(Q1,Q2,i,20),i=0..4*N),insequence=true,view=[-1.2..7.4,-1.2..1.2]): ; Q21: =plot([x,sin(x-Pi/4),x=Pi/4..2*Pi+Pi/4],color=blue,thickness=3): Q22: =display(point([0,0])): QF2: =display(seq(F(Q21,Q22,i,50),i=0..4*N),insequence=true,view=[-1.2..7.4,-1.2..1.2]): ; display(Q,QA1,QF1,QF2); 图6-4角频变化着的正弦曲线连环画面 图6-4角频变化着的正弦曲线(连环画) restart: with(plots): with(plottools): w: =proc(i,N) ifi<=Nthen1-i/(2*N) elifi>Nandi<=2*Nthen1/2+3/2*(i-N)/N elifi>2*Nthen2fi; end: ; N: =20: plots[display]([seq(plot([x,sin(w(i,N)*x),x=0..2*Pi/w(i,N)],thickness=2),i=0..4*N)],insequence=true); Q: =plots[display]([seq(plot([x,sin(w(i,N)*x),x=0..2*Pi/w(i,N)],thickness=2),i=0..4*N)],insequence=true): QA1: =plot([x,sin(x),x=0..2*Pi],color=blue,thickness=3): Q1: =plot([x,sin(x/2),x=0..2*Pi*2],color=blue,thickness=3): Q2: =display(point([0,0])): F: =proc(Q1,Q2,i,k) ifi>=kthenQ1; elseQ2fi; end: ; QF1: =display(seq(F(Q1,Q2,i,20),i=0..4*N),insequence=true,view=[-1..4*Pi,-1.2..1.2]): ; Q21: =plot([x,sin(2*x),x=0..Pi],color=blue,thickness=3): Q22: =display(point([0,0])): QF2: =display(seq(F(Q21,Q22,i,40),i=0..4*N),insequence=true,view=[-1..4*Pi,-1.2..1.2]): ; display(Q,QA1,QF1,QF2,title="JiaopinbianhuadeZhengxianquxian\nSheji: ZXD&ZYC2002.5",titlefont=[TIMES,BOLD,14]); 图6-5不同底的指数函数* 图6-5不同底的指数函数(连环画) with(plots): N: =16: animate((4-t)^x,x=-4..4,t=0..3.75,frames=N,view=[-4..4,-.5..8],thickness=3,color=blue): Q1: =animate((4-t)^x,x=-4..4,t=0..3.75,frames=N,thickness=3,color=blue,view=[-4..4,-.5..8]): Q2: =textplot([0.1,9,"a="],align=LEFT,font=[TIMES,BOLD,16],color=blue,view=[-4..4,-.5..11]): Q3: =textplot([0,11,"y=a^xdetuxiang"],font=[TIMES, BOLD,14],color=black,view=[-4..4,-.5..11]): a: =i->(4-i/4): Fa: =i->TEXT([0.1,9],substring(convert(evalf(a(i)),string),1..6),ALIGNRIGHT,FONT(TIMES,BOLD,12)): Q4: =display(seq(Fa(i),i=0..N),insequence=true,view=[-4..4,-.5..11]): display(Q1,Q2,Q3,Q4,view=[-4..4,-.5..11],axesfont=[TIMES,BOLD,6]); 如果使用高版本的animate,下面是实现方案之一。 restart: with(plottools): with(plots): P: =display(textplot([0.1,12,"a="],align=LEFT,font=[TIMES,BOLD,16],color=blue), textplot([0,13,"y=a^xdetuxiang"],font=[TIMES, BOLD,14],color=black)): N: =16: animate(plot,[(4-t)^x,x=-4..4,thickness=3,color=blue],t=0..3.75,frames=N,background=P): Qa: =%: a: =i->(4-i/4): Fa: =i->TEXT([0.1,12],substring(convert(evalf(a(i)),string),1..6),ALIGNRIGHT,FONT(TIMES,BOLD,12)): Qb: =display(seq(Fa(i),i=0..N),insequence=true): display(Qa,Qb,view=[-4..4,-.5..14],tickmarks=[4,1]); 如果想对比不同底上的指数函数图形,则可以应用另一种设计思路: 以踪迹动画为主角。 可以参考下面的设计。 N: =36: M: =12: k: =1: p: =(x,t)->evalf([-2+x*4/N,((4-t/4))^(-2+x*4/N)]): F: =n->CURVES(seq([seq(p(x,t),x=1..N)],t=0..k*n)): PLOT(ANIMATE(seq([F(n)],n=0..M)),VIEW(-2..2,0..14)); 图6-6不同底的指数函数(踪迹动画连环画) 图6-7椭圆线上点的特征 图6-7椭圆上点的特征(连环画) TY: =proc(a,b,t) localc,list1,p1,p2,p3,p4; c: =sqrt(a^2-b^2): p1: =plots[implicitplot](x^2/a^2+y^2/b^2=1,x=-(a+1)..(a+1),y=-(b+1)..(b+1),color=green,thickness=2): list1: =[[-c,0],[a*cos(t),b*sin(t)],[c,0]]: p2: =plot(list1,style=POINT,view=[-(a+1)..(a+1),-(b+1)..(b+1)],symbol=CIRCLE,symbolsize=16,color=black): p3: =plot(list1,color=red,style=LINE,thickness=2,view=[-(a+1)..(a+1),-(b+1)..(b+1)]): p4: =plots[textplot]({[-c,-3/2,"F1"],[c,-3/2,"F2"],[a*cos(t),b*sin(t)-1/2,"M(x,y)"]},view=[-(a+1)..(a+1),-(b+1)..(b+1)],align=BELOW,font=[TIMES,BOLD,12],color=black): plots[display](p1,p2,p3,p4,tickmarks=[0,0]);end: plots[display](seq(TY(23,12,Pi*i/18),i=0..36),title="Tuoyuanshangdiandetezheng\nSheji: ZYC&ZXD2002.5",titlefont=[TIMES,BOLD,14],insequence=true,view=[-30..30,-20..20]); 图6-8~9椭圆上点的幅角和离心角* 图6-8椭圆上点的幅角和离心角(连环画) restart: with(plots): a: =6: b: =4: M: =144: implicitplot({x^2+y^2=a^2,x^2+y^2=b^2,x^2/a^2+y^2/b^2=1},x=-a..a,y=-a..a,scaling=constrained,color=green): Q1: =%: Q2: =i->plot([[b*cos(2*Pi*i/M),b*sin(2*Pi*i/M)],[a*cos(2*Pi*i/M),b*sin(2*Pi*i/M)],[a*cos(2*Pi*i/M),a*sin(2*Pi*i/M)],[a*cos(2*Pi*i/M),0]],color=black): F2: =display(seq(Q2(i),i=0..M),insequence=true): Q3: =i->[CURVES(evalf([[a*cos(2*Pi*i/M),a*sin(2*Pi*i/M)],[0,0]]),THICKNESS(3),COLOR(RGB,1,0,0))]: F3: =display(seq(Q3(i),i=0..M),insequence=true): Q4: =i->[CURVES(evalf([[a*cos(2*Pi*i/M),b*sin(2*Pi*i/M)],[0,0]]),THICKNESS(3),COLOR(RGB,0,0,1))]: F4: =display(seq(Q4(i),i=0..M),insequence=true): display(Q1,F2,F3,F4,scaling=constrained); 图6-9椭圆上点的幅角和离心角(主题动画首帧画面) 如果使用高版本的animate,下面是实现方案之一。 restart: with(plots): a: =6: b: =4: M: =144: B: =implicitplot({x^2+y^2=a^2,x^2+y^2=b^2,x^2/a^2+y^2/b^2=1},x=-a..a,y=-a..a,scaling=constrained,color=green): F: =proc(t) display(plot([[b*cos(t),b*sin(t)],[a*cos(t),b*sin(t)],[a*cos(t),a*sin(t)],[a*cos(t),0]],color=black), plot([[a*cos(t),a*sin(t)],[0,0]],thickness=3,color=red), plot([[a*cos(t),b*sin(t)],[0,0]],thickness=3,color=blue));end: animate(F,[t],t=0..2*Pi,frames=M,scaling=constrained,background=B); 图6-10~11抛物线上点的特征* 图6-10抛物线上点的特征(连环画) with(plots): p: =1: N: =11: Q1: =plot({[t^2/2*p,t,t=-4..4],[-p/2,y,y=-4..4]},thickness=2,color=green): ; Q2: =animatecurve([t^2/2*p,t,t=-4..4],frames=N+1,thickness=3): ; u: =i->-4+8/N*i: Q3: =display(seq(plot([[p/2,0],[u(i)^2/2*p,u(i)],[-p/2,u(i)]],color=blue,thickness=1),i=0..N),insequence=true): ; Q4: =textplot({[-5,2,"MF="],[-5,-2,"Ma="], [-1,-3,"a"],[1/2,1/(2*p),"F"]},align=RIGHT,font=[TIMES,BOLD,12]): ; d1: =evalf(sqrt(u(i)^2+(u(i)^2/(2*p)-p/2)^2)): ; d2: =evalf(abs(u(i)^2/(2*p)+p/2)): F1: =i->TEXT([-3.6,2],substring(convert(d1,string),1..7),ALIGNRIGHT,FONT(TIMES,BOLD,12)): F2: =i->TEXT([-3.6,-2],substring(convert(d2,string),1..7),ALIGNRIGHT,FONT(TIMES,BOLD,12)): F3: =i->TEXT([u(i)^2/2*p+1/2,u(i)],"M",ALIGNRIGHT,FONT(TIMES,BOLD,12)): Q5: =display(seq((F1(i),i=0..N)),insequence=true): ; Q6: =display(seq((F2(i),i=0..N)),insequence=true): Q7: =display(seq((F3(i),i=0..N)),insequence=true): display(Q1,Q2,Q3,Q4,Q5,Q6,Q7,view=[-5..9.5,-4..4],scaling=constrained,title="Paowuxianshang\ndiainMdetezheng\nSheji: ZXD&ZYC2002.11",titlefont=[TIMES,BOLD,14]); 如果使用高版本的animate,下面是实现方案之一。 restart: with(plots): p: =1: N: =35: display(plot({[t^2/2*p,t,t=-4..4],[-p/2,y,y=-4..4]},thickness=1,color=green),textplot({[-7.2,2,"MF="],[-7.2,-2,"Ma="],[-1,-3,"a"],[1/2,1/(2*p),"F"]},align=RIGHT,font=[TIMES,BOLD,12])): B: =%: FF: =proc(t) display(plot([[p/2,0],[t^2/2*p,t],[-p/2,t]],color=red), plot([u^2/2*p,u,u=-4..t],thickness=3,color=blue), textplot([t^2/2*p+1/2,t,"M"],font=[TIMES,BOLD,12],thickness=3)): end: animate(FF,[t],t=-4.001..4,frames=N+1,background=B): DD: =%: SZ: =pro
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 06 主题 动画 典例简析