第11章3D动画的设计技术.docx
- 文档编号:7387464
- 上传时间:2023-01-23
- 格式:DOCX
- 页数:23
- 大小:549.75KB
第11章3D动画的设计技术.docx
《第11章3D动画的设计技术.docx》由会员分享,可在线阅读,更多相关《第11章3D动画的设计技术.docx(23页珍藏版)》请在冰豆网上搜索。
第11章3D动画的设计技术
第十一章3D动画的设计技术
图11-01~03点的进程动画
with(plots):
with(plottools):
N:
=24:
F:
=i->[point([cos(i*2*Pi/12),sin(i*2*Pi/12),3],color=blue,symbol=DIAMOND,symbolsize=55)]:
display(seq(F(i),i=0..N),insequence=true,axes=FRAME,orientation=[-12,35]);d1:
=%:
PLOT3D(ANIMATE(seq(F(i),i=0..N)),AXESSTYLE(FRAME));d2:
=%:
;
spacecurve([cos(i*2*Pi/12),sin(i*2*Pi/12),3],i=0..N);d3:
=%:
display(d1,d3);
display(d2,d3);
图1利用对象函数制作的孤点进程动画(连环画)
with(plots):
N:
=24:
h:
=4:
F:
=i->pointplot3d([cos(4*Pi*i/N),sin(4*Pi*i/N),h/N*i],grid=[5,3],symbol=circle,symbolsize=23,style=POINT,color=blue):
display(seq(F(i),i=0..N),insequence=true,axes=box);d1:
=%:
;
PLOT3D(ANIMATE(seq([op(F(i))],i=0..N)));d2:
=%:
;
spacecurve([cos(i*4*Pi/24),sin(i*4*Pi/24),4*i/24],i=0..24,color=red,style=LINE);d3:
=%:
display(d2,d3,axes=frame);
图2利用画图函数制作的孤点进程动画(连环画)
利用变换函数和对象函数制作孤点进程动画
with(plots):
with(plottools):
a:
=3:
b:
=2:
k:
=6:
n:
=2:
m:
=0:
N:
=72:
t:
=2*Pi*i/N:
L:
=point([-n,m,m],color=blue,symbol=circle,symbolsize=23):
L1:
=i->[translate(L,a*cos(k*Pi*i/N),b*sin(k*Pi*i/N),0)]:
display(seq(L1(i),i=0..N),axes=normal,labels=[x,y,z],insequence=true,orientation=[-80,65]);
PLOT3D(ANIMATE(seq(L1(i),i=0..N)),ORIENTATION(-80,65),AXES(FRAME));
内层动画
with(plots):
R:
=24:
a:
=0:
b:
=4*Pi:
f:
=n->cos(a+(b-a)*n/R):
g:
=n->sin(a+(b-a)*n/R):
h:
=n->(a+(b-a)*n/R)/2:
F:
=n->[POINTS(evalf([f(n),g(n),h(n)]),SYMBOL(CIRCLE,36),COLOR(RGB,1,0,0))]:
PLOT3D(ANIMATE(seq(F(n),n=0..R)),AXES(FRAME),VIEW..,..,0..7),ORIENTATION(9,71));
display(seq(F(n),n=0..R),insequence=true,axes=box,view=[..,..,0..7],orientation=[9,71]);
图3用内层方式设计的点进程动画
图11-04~11点的踪迹动画
利用对象函数制作点踪迹动画(匀步长)
A,利用对象函数plottools[point]
with(plots):
with(plottools):
N:
=54:
h:
=4:
r:
=1-k/N:
F1:
=i->[seq(point([r*cos(k*6*Pi/N),r*sin(k*6*Pi/N),h/N*k],symbolsize=54,symbol=CIRCLE,color=black),k=0..i)]:
spacecurve([r*cos(6*Pi*k/N),r*sin(6*Pi*k/N),h/N*k],k=0..N,color=green):
d01:
=%:
display(ANIMATE(seq(F1(i),i=0..N)),insequence=true,axes=FRAME,orientation=[65,65],view=[-1..1,-1..1,0..4]):
;d11:
=%:
;
display(d01,d11);
B,利用对象函数plottools[curve]
F2:
=i->[curve([seq([r*cos(k*6*Pi/N),r*sin(k*6*Pi/N),h/N*k],k=0..i)],thickness=3,color=red,style=POINT,symbolsize=36,symbol=DIAMOND)]:
spacecurve([r*cos(6*Pi*k/N),r*sin(6*Pi*k/N),h/N*k],k=0..N,color=magenta):
d02:
=%:
display(ANIMATE(seq(F2(i),i=0..N)),insequence=true,axes=box,orientation=[65,65],view=[-1..1,-1..1,0..5]):
;d12:
=%:
;
display(d02,d12);
C,利用对象函数plottools[polygon]
F3:
=i->[polygon([seq([r*cos(k*6*Pi/N),r*sin(k*6*Pi/N),h/N*k],k=0..i)],thickness=3,color=blue,style=POINT,symbolsize=36,symbol=DIAMOND)]:
spacecurve([r*cos(6*Pi*k/N),r*sin(6*Pi*k/N),h/N*k],k=0..N,color=cyan):
d03:
=%:
display(ANIMATE(seq(F3(i),i=0..N)),insequence=true,axes=box,orientation=[65,65],view=[-1..1,-1..1,0..5]):
;d13:
=%:
;
display(d03,d13);
利用三个不同对象函数的方案,自左至右:
A,B,C
图4成效相同的连环画
利用画图函数制作点踪迹动画(匀步长)
A,利用pointplot3d函数
with(plots):
with(plottools):
N:
=54:
h:
=4:
r:
=(1-k/N)^2:
F1:
=i->pointplot3d([seq([r*cos(k*6*Pi/N),r*sin(k*6*Pi/N),h*r/N*k],k=0..i)],symbol=DIAMOND,color=blue,symbolsize=12):
spacecurve([r*cos(6*Pi*k/N),r*sin(6*Pi*k/N),h*r/N*k],k=0..N):
d0:
=%:
display(seq(F1(i),i=0..N),insequence=true,axes=box,view=[-1..1,-1..1,0..],orientation=[67,73]):
;d11:
=%:
:
;
display(d0,d11);
B,使用polygonplot3d函数
with(plots):
with(plottools):
N:
=54:
h:
=4:
r:
=(1-k/N)^2:
F2:
=i->polygonplot3d([seq([r*cos(k*6*Pi/N),r*sin(k*6*Pi/N),h*r/N*k],k=0..i)],symbol=DIAMOND,color=blue,style=POINT,symbolsize=12):
spacecurve([r*cos(6*Pi*k/N),r*sin(6*Pi*k/N),h*r/N*k],k=0..N):
d0:
=%:
display(seq(F2(i),i=0..N),insequence=true,axes=box,view=[-1..1,-1..1,0..],orientation=[67,73]):
d12:
=%:
display(d0,d12);
C,利用spacecurve函数
with(plots):
with(plottools):
N:
=54:
h:
=4:
r:
=(1-k/N)^2:
F3:
=i->spacecurve([seq([r*cos(k*6*Pi/N),r*sin(k*6*Pi/N),h*r/N*k],k=0..i)],style=POINT,symbolsize=12,symbol=DIAMOND,color=blue):
spacecurve([r*cos(6*Pi*k/N),r*sin(6*Pi*k/N),h*r/N*k],k=0..N):
d0:
=%:
display(seq(F3(i),i=0..N),insequence=true,axes=box,view=[-1..1,-1..1,0..],orientation=[67,73]):
d13:
=%:
display(d0,d13);
利用三个不同画图函数的方案,自左至右:
A,B,C
图5成效相同的连环画
利用变换函数制作点踪迹动画(匀步长)
with(plots):
with(plottools):
N:
=54:
h:
=4:
r:
=k/N:
a:
=1:
b:
=2:
c:
=0:
point([a,b,c],symbolsize=12,symbol=CIRCLE,color=black):
G:
=%:
F:
=i->[seq(translate(G,r*cos(k*6*Pi/N),r*sin(k*6*Pi/N),h/N*k),k=0..i)]:
spacecurve([a+r*cos(6*Pi*k/N),b+r*sin(6*Pi*k/N),c+h/N*k],k=0..N,color=green):
d0:
=%:
display(ANIMATE(seq(F(i),i=0..N)),insequence=true,axes=FRAME,orientation=[65,65],view=[a-1..a+1,b-1..b+1,c..c+4]):
d1:
=%:
display(d0,d1);Q:
=%:
图6用变换函数制作的点踪迹动画(匀步长)
点的步进式踪迹动画(匀步长)
with(plots):
R:
=8:
a:
=0:
b:
=2*Pi:
w:
=3:
f:
=i->cos(a+(b-a)*i/R/w):
g:
=i->sin(a+(b-a)*i/R/w):
h:
=i->(a+(b-a)*i/R/w)/2:
F:
=n->[POINTS(seq(evalf([f(i),g(i),h(i)]),i=0..w*n),SYMBOL(CIRCLE,18),COLOR(RGB,1,0,0))]:
display(seq(F(n),n=0..R),insequence=true,axes=box,orientation=[70,50],view=[-1..1,-1..1,0..]);Q:
=%:
PLOT3D(ANIMATE(seq(F(n),n=0..R)),AXES(FRAME)):
;
图7点元步进式踪迹(匀步长)动画
点的步进式踪迹动画(变步长)
with(plots):
R:
=8:
K:
=21:
a:
=0:
b:
=2*Pi:
f:
=i->cos(a+(b-a)*i/K):
g:
=i->sin(a+(b-a)*i/K):
h:
=i->(a+(b-a)*i/K)/2:
F:
=n->[POINTS(seq(evalf([f(i),g(i),h(i)]),i=0..K/R*n),SYMBOL(CIRCLE,18),COLOR(RGB,0,0,1))]:
display(seq(F(n),n=0..R),insequence=true,axes=frame,orientation=[30,65]);Q:
=%:
PLOT3D(ANIMATE(seq(F(n),n=0..R)),AXES(FRAME)):
;
图8点元步进式踪迹(变步长)动画
点的链伸式踪迹动画(全元族)
with(plots):
K:
=18:
R:
=8:
a:
=0:
b:
=2*Pi:
f:
=(i,n)->cos(a+(b-a)*i/K*n/R):
g:
=(i,n)->sin(a+(b-a)*i/K*n/R):
h:
=(i,n)->(a+(b-a)*i/K*n/R)/2:
F:
=n->[POINTS(seq(evalf([f(i,n),g(i,n),h(i,n)]),i=0..K),SYMBOL(CIRCLE,18),COLOR(RGB,1,0,0))]:
display(seq(F(n),n=0..R),insequence=true,axes=box);
PLOT3D(ANIMATE(seq(F(n),n=0..R)),AXES(FRAME));
图9全元族链伸踪迹动画
点的链伸式踪迹动画(变元族,匀步长)
with(plots):
K:
=15:
R:
=8:
w:
=2:
u:
=w*R/K:
a:
=0:
b:
=2*Pi:
f:
=(i,n)->cos(a+(b-a)*i/K*n/R/u):
g:
=(i,n)->sin(a+(b-a)*i/K*n/R/u):
h:
=(i,n)->-(a+(b-a)*i/K*n/R/u)/2:
F:
=n->[POINTS(seq(evalf([f(i,n),g(i,n),h(i,n)]),i=0..w*n),SYMBOL(CIRCLE,18),COLOR(RGB,1,0,0))]:
display(seq(F(n),n=0..R),insequence=true,axes=box,orientation=[73,58]):
;
PLOT3D(ANIMATE(seq(F(n),n=0..R)),AXES(FRAME));
图10点元链伸式踪迹(变元族,等步长)动画
点的链伸式踪迹动画(变元族,变步长)
with(plots):
K:
=19:
R:
=8:
a:
=0:
b:
=2*Pi:
f:
=(i,n)->cos(a+(b-a)*i/K*n/R):
g:
=(i,n)->sin(a+(b-a)*i/K*n/R):
h:
=(i,n)->-(a+(b-a)*i/K*n/R)/2:
F:
=n->[POINTS(seq(evalf([f(i,n),g(i,n),h(i,n)]),i=0..K/R*n),SYMBOL(DIAMOND,18),COLOR(RGB,0,0,1))]:
display(seq(F(n),n=0..R),insequence=true,axes=box);
PLOT3D(ANIMATE(seq(F(n),n=0..R)),AXES(FRAME),ORIENTATION(5,55));
图11点元链伸式踪迹(变元族,变步长)动画
图11-12~15线的进程动画
利用对象函数制作线元的进程动画
with(plots):
with(plottools):
N:
=8:
F:
=i->[curve([[-1,0,0],[1,0,0],[0,0,0],[0,2*cos(i*2*Pi/N),2*sin(i*2*Pi/N)],[0,2*cos(i*2*Pi/N)+5,0],[0,2*cos(i*2*Pi/N)+8,0],[1/2,2*cos(i*2*Pi/N)+7,0],[-1/2,2*cos(i*2*Pi/N)+7,0],[0,2*cos(i*2*Pi/N)+8,0]],color=black,thickness=4)]:
display(seq(F(i),i=0..N),insequence=true,axes=frame):
;
PLOT3D(ANIMATE(seq(F(i),i=0..N)),AXESSTYLE(FRAME)):
;
图12用对象函数制作的线元进程动画(曲柄连杆机构的运动)
利用画图函数制作线元的进程动画
with(plots):
N:
=27:
r:
=25:
F:
=i->spacecurve([r*cos(i*2*Pi/N)+t*cos(t),r*sin(i*2*Pi/N)+t*sin(t),t],t=0..6*Pi,color=black,thickness=3):
display(seq(F(i),i=0..N),insequence=true,axes=normal):
PLOT3D(ANIMATE(seq(F(i),i=0..N)),AXESSTYLE(FRAME)):
图13用画图函数制作的线元进程动画
利用变换函数制作线元的进程动画
with(plots):
with(plottools):
N:
=8:
r:
=15:
spacecurve([t*cos(t),t*sin(t),-t/7],t=0..6*Pi,color=red,thickness=3):
L:
=%:
F:
=i->translate(L,r*cos(i*2*Pi/N),r*sin(i*2*Pi/N),0):
display(seq(F(i),i=0..N),insequence=true,axes=box):
d1:
=%:
spacecurve([r*cos(t),r*sin(t),0],t=0..2*Pi,color=blue):
d0:
=%:
display(d0,d1,orientation=[50,73]);Q:
=%:
图14用变换函数制作的线元进程动画
with(plots):
M:
=36:
R:
=24:
a:
=0:
b:
=4*Pi:
c:
=0:
d:
=2*Pi:
f:
=(i,n)->cos(a+(b-a)*i/M)+sin(c+(d-c)*n/R):
g:
=(i,n)->(a+(b-a)*i/M)/6+(c+(d-c)*n/R):
h:
=(i,n)->sin(a+(b-a)*i/M):
F:
=n->[CURVES([seq(evalf([f(i,n),g(i,n),h(i,n)]),i=0..M)],THICKNESS(3),COLOR(RGB,1,0,0))]:
display(seq(F(n),n=0..R),insequence=true,axes=NORMAL,labels=[x,y,z],orientation=[63,73]);
图15一个内层线元进程动画的连环画
图11-16~23线的的踪迹动画
利用对象函数制作线元的踪迹动画(匀步长)
with(plots):
with(plottools):
R:
=16:
G:
=n->[seq(curve([[0,0,0],[cos(i*2*Pi/R),sin(i*2*Pi/R),5],[*cos(i*2*Pi/R),*sin(i*2*Pi/R),5],[cos(i*2*Pi/R),sin(i*2*Pi/R),2],[cos(i*2*Pi/R),sin(i*2*Pi/R),3]],linestyle=1,thickness=3,color=red),i=0..n)]:
display(ANIMATE(seq(G(n),n=0..R)),insequence=true,axes=frame):
图16用对象函数制作线元的踪迹动画
利用画图函数制作线元的踪迹动画(匀步长)
with(plots):
R:
=24:
r:
=8:
G:
=n->seq(spacecurve([0+2*Pi*i/R,t*cos(t)-30+r*sin(2*Pi*i/R),t*sin(t)],t=0..6*Pi,color=black,thickness=1),i=0..n):
display(seq(display(G(n)),n=0..R),insequence=true,axes=frame);
图17用画图函数制作线元的踪迹动画
利用变换函数制作线元的踪迹动画(匀步长)
restart:
with(plottools):
with(plots):
R:
=24:
r:
=2:
t:
=4*Pi*i/R:
L:
=curve([[0,0,0],[1/3,-1/7,],[1,0,1],[1/3,1/7,],[0,0,0]],thickness=3,color=COLOR(RGB,,,):
f:
=i->translate(rotate(L,0,0,-t),r*cos(t),r*sin(t),t/1):
;
spacecurve([r*cos(t1),r*sin(t1),t1/1],t1=0..4*Pi,color=brown,thickness=2):
d0:
=%:
G:
=n->[seq(f(i),i=0..n)]:
display(ANIMATE(seq(G(n),n=0..R)),insequence=true,orientation=[54,61],axes=frame):
;dh:
=%:
display(dh,d0);
图18用变换函数制作线元的踪迹动画
线的步进式踪迹动画(匀步长)
M:
=24:
R:
=8:
w:
=2:
a:
=-2*Pi:
b:
=2*Pi:
c:
=0:
d:
=2*Pi:
f:
=(i,k)->(a+(b-a)*i/M)+3*sin(c+(d-c)*k/R/w):
g:
=(i,k)->(c+(d-c)*k/R/w):
h:
=(i,k)->cos(a+(b-a)*i/M):
F:
=n->[CURVES(seq([seq(evalf([f(i,k),g(i,k),h(i,k)]),i=0..M)],k=0..w*n),THICKNESS
(2),COLOR(RGB,0,0,1))]:
PLOT3D(ANIMATE(seq(F(n),n=0..R)),AXES(FRAME));Q:
=%:
图19线元匀步长步进式踪迹动画的内层设计
线的步进式踪迹动画(变步长)
M:
=21:
R:
=8:
u:
=M/R:
a:
=-4:
b:
=4:
c:
=0:
d:
=2*Pi:
f:
=(i,k)->(a+(b-a)*i/M):
g:
=(i,k)->(c+(d-c)*k/R/u):
h:
=(i,k)->-(a+(b-a)*i/M)^2+3*sin(c+(d-c)*k/R/u):
F:
=n->[CURVES(seq([seq(evalf([f(i,k),g(i,k),h(i,k)]),i=0..M)],k=0..M/R*n),THICKNESS
(2),COLOR(RGB,1,0,0))]:
PLOT3D(ANIMATE(seq(F(n),n=0..R)),AXES(NORMAL),ORIENTATION(30,75));
图20线元变步长步进踪迹动画的内层设计
线的链伸式踪迹动画(全元族)
M:
=15:
K:
=12:
R:
=8:
a:
=-1:
b:
=1:
c:
=0:
d:
=2*Pi:
f:
=(i,k,n)->(a+(b-a)*i/M)-2*sin(c+(d-c)*k/K*n/R):
g:
=(i,k,n)->(c+(d-c)*k/K*n/R):
h:
=(i,k,n)->1-(a+
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 11 动画 设计 技术