{VERSION 5 0 "SUN SPARC SOLARIS" "5.0" }
{USTYLETAB {CSTYLE "Maple Input" -1 0 "Courier" 0 1 255 0 0 1 0 1 0 0 
1 0 0 0 0 1 }{PSTYLE "Normal" -1 0 1 {CSTYLE "" -1 -1 "New century sch
oolbook" 1 18 0 0 0 0 1 1 2 0 0 0 0 0 0 1 }0 0 0 -1 -1 -1 0 0 0 0 0 0 
-1 0 }{PSTYLE "Text Output" -1 2 1 {CSTYLE "" -1 -1 "Courier" 1 10 0 
0 255 1 0 0 0 0 0 1 3 0 3 0 }1 0 0 -1 -1 -1 0 0 0 0 0 0 -1 0 }{PSTYLE 
"Heading 1" 0 3 1 {CSTYLE "" -1 -1 "" 1 18 0 0 0 0 0 1 0 0 0 0 0 0 0 
1 }1 0 0 0 6 6 0 0 0 0 0 0 -1 0 }{PSTYLE "Heading 2" 3 4 1 {CSTYLE "" 
-1 -1 "" 1 14 0 0 0 0 0 0 0 0 0 0 0 0 0 1 }0 0 0 -1 4 4 0 0 0 0 0 0 
-1 0 }{PSTYLE "Warning" 2 7 1 {CSTYLE "" -1 -1 "" 0 1 0 0 255 1 0 0 0 
0 0 0 1 0 0 0 }0 0 0 -1 -1 -1 0 0 0 0 0 0 -1 0 }{PSTYLE "R3 Font 0" 
-1 256 1 {CSTYLE "" -1 -1 "Helvetica" 1 18 0 0 0 0 2 1 2 0 0 0 0 0 0 
1 }0 0 0 -1 -1 -1 0 0 0 0 0 0 -1 0 }{PSTYLE "R3 Font 2" -1 257 1 
{CSTYLE "" -1 -1 "Courier" 1 14 0 0 0 0 2 2 2 0 0 0 0 0 0 1 }0 0 0 -1 
-1 -1 0 0 0 0 0 0 -1 0 }{PSTYLE "R3 Font 3" -1 258 1 {CSTYLE "" -1 -1 
"Helvetica" 1 24 0 0 0 0 2 1 2 0 0 0 0 0 0 1 }0 0 0 -1 -1 -1 0 0 0 0 
0 0 -1 0 }{PSTYLE "R3 Font 4" -1 259 1 {CSTYLE "" -1 -1 "Helvetica" 1 
24 0 0 0 0 2 1 2 0 0 0 0 0 0 1 }0 0 0 -1 -1 -1 0 0 0 0 0 0 -1 0 }
{PSTYLE "R3 Font 5" -1 260 1 {CSTYLE "" -1 -1 "Helvetica" 1 24 0 0 0 
0 2 1 2 0 0 0 0 0 0 1 }0 0 0 -1 -1 -1 0 0 0 0 0 0 -1 0 }{PSTYLE "R3 Fo
nt 6" -1 261 1 {CSTYLE "" -1 -1 "Helvetica" 1 24 0 0 0 0 2 1 2 0 0 0 
0 0 0 1 }0 0 0 -1 -1 -1 0 0 0 0 0 0 -1 0 }{PSTYLE "R3 Font 7" -1 262 
1 {CSTYLE "" -1 -1 "Helvetica" 1 14 0 0 0 0 2 1 2 0 0 0 0 0 0 1 }0 0 
0 -1 -1 -1 0 0 0 0 0 0 -1 0 }{PSTYLE "" 0 263 1 {CSTYLE "" -1 -1 "" 0 
1 0 0 0 0 0 0 0 0 0 0 0 0 0 1 }3 0 0 -1 -1 -1 0 0 0 0 0 0 -1 0 }
{PSTYLE "" 3 264 1 {CSTYLE "" -1 -1 "" 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 
1 }3 0 0 -1 -1 -1 0 0 0 0 0 0 -1 0 }}
{SECT 0 {PARA 263 "" 0 "" {TEXT -1 33 "MAPLE WORKSHEET #7: 3d Animatio
ns" }}{SECT 1 {PARA 3 "" 0 "" {TEXT -1 23 "Load the plots package:" }}
{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 12 "with(plots):" }}{PARA 7 "" 
1 "" {TEXT -1 50 "Warning, the name changecoords has been redefined\n
" }}}}{SECT 1 {PARA 3 "" 0 "" {TEXT -1 57 "The Mobius strip is traced \+
by a segment  moving in space." }}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 
0 300 "animate3d(\n\{ [cos(t)*y, sin(t)*y, 0], [cos(t*y), sin(t*y), 0]
,\n[cos(t)*(1+x*cos(t/2)), sin(t)*(1+x*cos(t/2)), x*sin(t/2)] \}, \nx=
-1/2..1/2, y=0..1,t=0..2*Pi,\nthickness=3, orientation=[43,56], axes=n
ormal, tickmarks=[0,0,0], frames=20,\ntitlefont=[TIMES,ROMAN,18], titl
e=`Animating the Mobius Strip I`);" }}}{EXCHG {PARA 0 "> " 0 "" 
{MPLTEXT 1 0 282 "animate3d(\n[cos(t*y)*(1+x*cos(t*y/2)), sin(t*y)*(1+
x*cos(t*y/2)), x*sin(t*y/2)],\nx=-1/2..1/2, y=0..1, t=0..2*Pi,\ncolor=
y, style=patchnogrid, scaling=constrained, orientation=[43,56],\naxes=
normal, tickmarks=[0,0,0],\ntitlefont=[TIMES,ROMAN,18], title=`Animati
ng the Mobius Strip II`);" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 
289 "animate3d(\n[cos(t*y)*(1+x*cos(4*t*y)), sin(t*y)*(1+x*cos(4*t*y))
, x*sin(4*t*y)],\nx=-1/2..1/2, y=0..1, t=0..2*Pi,\ncolor=y, grid=[5,60
], style=patchnogrid, scaling=constrained,\norientation=[43,56], axes=
normal, tickmarks=[0,0,0],\ntitlefont=[TIMES,ROMAN,18], title=`Variati
ons on the Theme`);" }}}}{SECT 1 {PARA 3 "" 0 "" {TEXT -1 54 "We vary \+
one of the radii of an ellipsoid periodically:" }}{EXCHG {PARA 0 "> " 
0 "" {MPLTEXT 1 0 192 "animate3d(\n[cos(u)*cos(v), (1+0.3*sin(5*t))*co
s(u)*sin(v), cos(t)*sin(u)],\nu=0..2*Pi, v=0..Pi, t=0..Pi,\nstyle=patc
h,scaling=constrained, \ngrid=[30,20], frames=15,\ntitle=`Pulsating El
lipsoid`);" }}}}{SECT 1 {PARA 3 "" 0 "" {TEXT -1 22 "Making planar  wa
ves: " }}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 91 "animate3d(cos(t*x)*
sin(t*y), x=-Pi/2..Pi/2, y=0..2*Pi, t=1..2,\ncolor=x, style=patchnogri
d);" }}}}{SECT 1 {PARA 3 "" 0 "" {TEXT -1 121 "Graphs of complex funct
ions can be visualized by rotating them between the real part and the \+
imaginary part projections: " }}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 
155 "animate3d(cos(t)*(x^2-y^2)+sin(t)*(2*x*y), x=-1..1, y=-1..1, t=0.
.Pi/2,\nstyle=patchnogrid, scaling=constrained,\ntitle=`Rotating the C
omplex Square in 4d`);" }}}}{SECT 1 {PARA 3 "" 0 "" {TEXT -1 67 "Flatt
ening out a sphere to a plane by the stereographic projection." }}
{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 49 "p1:=cos(v)*cos(u):\np2:=cos(
v)*sin(u):\np3:=sin(v):" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 194 
"animate3d([(1-t)*p1+t*p1/(1-p3), (1-t)*p2+t*p2/(1-p3), (1-t)*p3], \nu
=0..2*Pi, v=-Pi/2..1, t=0..1,\nscaling=constrained, style=patch, color
=sin(v),\ntitle=`Animating the Stereographic Projection`);" }}}{EXCHG 
{PARA 0 "> " 0 "" {MPLTEXT 1 0 252 "cube:=polygonplot3d(\{\n[[1,1,1],[
1,1,-1],[1,-1,-1],[1,-1,1]],\n[[-1,1,1],[-1,1,-1],[-1,-1,-1],[-1,-1,1]
],\n[[1,1,1],[-1,1,1]],[[1,1,-1],[-1,1,-1]],\n[[1,-1,1],[-1,-1,1]],[[1
,-1,-1],[-1,-1,-1]]\n\},style=wireframe,scaling=constrained, thickness
=2,color=blue):" }}{PARA 0 "> " 0 "" {MPLTEXT 1 0 93 "frame:=t->displa
y(\{cube,\npolygonplot3d(\n[[t,1,1],[t,1,-1],[t,-1,-1],[t,-1,1]],\ncol
or=red)\n\}):" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 75 "display([s
eq(frame(t/10),t=-10..10)],insequence=true,\nscaling=constrained);" }}
}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 97 "triframe:=t->display(\{cube
,\npolygonplot3d(\n[[1-2*t,1,1],[1,1-2*t,1],[1,1,1-2*t]],\ncolor=red) \+
\n\}):" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 76 "display([seq(trif
rame(t/10),t=0..10)],insequence=true,\nscaling=constrained);" }}}
{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 139 "hexframe:=t->display(\{cube
,\npolygonplot3d(\n[[-1,1,1-2*t],[-1,1-2*t,1],[1-2*t,-1,1],\n[1,-1,1-2
*t],[1,1-2*t,-1],[1-2*t,1,-1]],\ncolor=red)\n\}):" }}}{EXCHG {PARA 0 "
> " 0 "" {MPLTEXT 1 0 76 "display([seq(hexframe(t/10),t=0..10)],insequ
ence=true,\nscaling=constrained);" }}}{EXCHG {PARA 0 "> " 0 "" 
{MPLTEXT 1 0 107 "display([\nseq(triframe(t/10),t=0..10),\nseq(hexfram
e(t/10),t=0..10)\n],insequence=true,\nscaling=constrained);" }}}
{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 107 "triframe1:=t->display(\{cub
e,\npolygonplot3d(\n[[-1+2*t,-1,-1],[-1,-1+2*t,-1],[-1,-1,-1+2*t]],\nc
olor=red) \n\}):" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 139 "displa
y([\nseq(triframe(t/10),t=0..10),\nseq(hexframe(t/10),t=0..10),\nseq(t
riframe1(1-t/10),t=0..10)\n],insequence=true,\nscaling=constrained);" 
}}}}{SECT 1 {PARA 3 "" 0 "" {TEXT -1 29 "Degree two map of the sphere.
" }}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 102 "sq1 := animate3d([cos(v
)*cos(t*u), cos(v)*sin(t*u), sin(v)],\nu=0..Pi, v=-Pi/2..Pi/2, t=1..2,
\ncolor=u):" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 107 "sq2 := anim
ate3d([3+cos(v)*cos(t*u), cos(v)*sin(t*u), sin(v)],\nu=Pi..2*Pi, v=-Pi
/2..Pi/2, t=1..2,\ncolor=u):" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 
0 169 "display([sq1,sq2],\ninsequence=false, style=patchnogrid, scalin
g=constrained, \norientation=[-34,48],\ntitlefont=[TIMES,ROMAN,18], ti
tle=`Degree two map of  the sphere I`);" }}}}{PARA 264 "" 0 "" {TEXT 
-1 41 "We now consider more complex animations. " }}{SECT 1 {PARA 4 "
" 0 "" {TEXT -1 61 "The Klein Bottle is traced by a figure eight movin
g in space." }}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 314 "animate3d(\n
[(2+cos(t*u/2)*sin(v)-sin(t*u/2)*sin(2*v))*cos(t*u),\n (2+cos(t*u/2)*s
in(v)-sin(t*u/2)*sin(2*v))*sin(t*u),\n sin(t*u/2)*sin(v)+cos(t*u/2)*si
n(2*v)], u=0..2*Pi, v=0..2*Pi, t=0..1,\ngrid=[30,40], orientation=[-40
,53], scaling=constrained, \nstyle=patchnogrid,color=sin(v),\ntitle=`A
nimating the Klein Bottle`);" }}}}{SECT 1 {PARA 4 "" 0 "" {TEXT -1 66 
"Half of the Klein Bottle is traced by a figure S  moving in space." }
}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 325 "animate3d(\n[(2+cos(t*u/2)
*sin(v)-sin(t*u/2)*sin(2*v))*cos(t*u),\n (2+cos(t*u/2)*sin(v)-sin(t*u/
2)*sin(2*v))*sin(t*u),\n sin(t*u/2)*sin(v)+cos(t*u/2)*sin(2*v)], u=0..
2*Pi, v=-Pi/2..Pi/2, t=0..1,\ngrid=[30,20],orientation=[-40,53], scali
ng=constrained,\nstyle=patchnogrid, color=sin(v),\ntitle=`Animating Ha
lf of the Klein Bottle`);" }}}}{SECT 1 {PARA 4 "" 0 "" {TEXT -1 47 "Mo
bius strip bent to half of the Klein Bottle: " }}{EXCHG {PARA 0 "> " 
0 "" {MPLTEXT 1 0 34 "plot([sin(u),sin(2*u),u=0..2*Pi]);" }}}{EXCHG 
{PARA 0 "> " 0 "" {MPLTEXT 1 0 34 "plot([sin(u),sin(4*u),u=0..2*Pi]);
" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 125 "animate([sin(u),(1-t)*
cos(u)+t*sin(2*u),u=0..2*Pi], t=0..1,\nthickness=2, scaling=constraine
d, tickmarks=[0,0], numpoints=70);" }}}{EXCHG {PARA 0 "> " 0 "" 
{MPLTEXT 1 0 201 "animate(\{\n[sin(u),cos(u), u=0..2*Pi],\n[2.5+sin(u)
,sin(4*u), u=0..2*Pi],\n[2.5*t+sin(u),(1-t)*cos(u)+t*sin(4*u), u=0..2*
Pi]\n\}, \nt=0..1, thickness=2, \nscaling=constrained, tickmarks=[0,0]
, numpoints=120);" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 131 "anima
te([(1-t)*sin(u)+t*u,(1-t)*sin(2*u),u=-Pi/2..Pi/2],\nt=0..1,\nthicknes
s=2, scaling=constrained, tickmarks=[0,0], numpoints=40\n);" }}}
{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 338 "animate3d(\n[(2+cos(u/2)*si
n(t*v+Pi)-sin(u/2)*sin(2*(t*v+Pi)))*cos(u),(2+cos(u/2)*sin(t*v+Pi)-sin
(u/2)*sin(2*(t*v+Pi)))*sin(u),\nsin(u/2)*sin(t*v+Pi)+cos(u/2)*sin(2*(t
*v+Pi))], \nu=0..2*Pi, v=-Pi/2..Pi/2, t=1/4..1,\ngrid=[50,25], scaling
=constrained, style=patchnogrid, color=sin(v/2),\ntitle=`Mobius strip \+
bent to half of the Klein Bottle `);" }}}}{SECT 1 {PARA 4 "" 0 "" 
{TEXT -1 71 "The torus is obtained from a rectangle by side pairing tr
ansformations." }}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 136 "A := anim
ate3d(\n[(1-t)*x+t*exp(x)*cos(y), (1-t)*y+t*exp(x)*sin(y), 0],\nx=Pi/4
..Pi/2, y=0..Pi, t=0..1,\ncolor=x, frames=10, grid=[15,40]):" }}}
{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 55 "R:=(exp(Pi/2)+exp(Pi/4))/2:
\nr:=(exp(Pi/2)-exp(Pi/4))/2:" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 
0 255 "B := animate3d(\n[(R+(4*r/Pi)*sin((Pi/(4*r))*t*(exp(x)-R))/t)*c
os((1+t/4)*y),\n(R+(4*r/Pi)*sin((Pi/(4*r))*t*(exp(x)-R))/t)*sin((1+t/4
)*y),\n((4*r)/Pi)*(1-cos((Pi/(4*r))*t*(exp(x)-R)))/t], x=Pi/4..Pi/2, y
=0..Pi, t=-0.005..4,\ncolor=x, frames=10, grid=[15,40]):" }}}{EXCHG 
{PARA 0 "> " 0 "" {MPLTEXT 1 0 159 "display([A,B],\ninsequence=true, s
tyle=patchnogrid, scaling=constrained,\norientation=[-24,64],\ntitle=`
The Torus is a Rectangle with Opposite Sides Identified`);" }}}}{SECT 
1 {PARA 4 "" 0 "" {TEXT -1 43 "A less technical approach using procedu
res:" }}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 109 "f1 := proc(u,t) if \+
u<t then u else t+sin(u-t) fi; end:\nf2 := proc(u,t) if u<t then 0 els
e 1-cos(u-t) fi; end:" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 100 "a
nimate([f1,f2,0..2*Pi],0..2*Pi,\naxes=none, color=red, thickness=3, sc
aling=constrained, frames=20);" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 
1 0 139 "g1 := proc(u,v,t) if u<t then u else t+sin(u-t) fi; end:\ng2 \+
:= proc(u,v,t) v; end:\ng3 := proc(u,v,t) if u<t then 0 else 1-cos(u-t
) fi; end:" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 152 "animate3d([g
1,g2,g3],0..2*Pi,0..10,0..2*Pi,\nstyle=patchnogrid, grid=[40,50],shadi
ng=zhue,\ntitlefont=[TIMES,ROMAN,18], title=`Rolling out the Cylinder`
);" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 7 "r:=0.5:" }}}{EXCHG 
{PARA 0 "> " 0 "" {MPLTEXT 1 0 68 "h1:=proc(u,v,t) if u<t then u else \+
t+sin(u-t)*(1-r*cos(v)) fi; end: " }}}{EXCHG {PARA 0 "> " 0 "" 
{MPLTEXT 1 0 74 "h2:=proc(u,v,t) if u<t then r*cos(v) else 1-cos(u-t)*
(1-r*cos(v)) fi; end:" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 59 "h3
:=proc(u,v,t) if u<t then r*sin(v) else r*sin(v) fi: end:" }}}{EXCHG 
{PARA 0 "> " 0 "" {MPLTEXT 1 0 192 "animate3d([h1,h2,h3],0..2*Pi,0..10
,0..2*Pi,\nstyle=patchnogrid, grid=[40,50],shading=zhue, \norientation
=[40,75], scaling=constrained,\ntitlefont=[TIMES,ROMAN,18], title=`Rol
ling out the Torus`);" }}}}}{MARK "12" 0 }{VIEWOPTS 1 1 0 3 2 1804 1 
1 1 1 }{PAGENUMBERS 0 1 2 33 1 1 }

