1. Conic Sections: This shows the different curves obtained by intersecting a plane and a cone. The plane rotates about the point (1,0,1), which is also a point on the cone z2 = x2+y2. The only variables that might be interesting to play with are the number of frames, n, and the size of the cone, sz, both defined on the second line of the code. However, the MAPLE interface allows the user to view the animation from several angles via point-and-click.
  2. restart: with(plots):
    
    n:=24: sz := 2:                               # frames & size
    
    if sz<1 then sz=1: end if:
    an1 := plot3d([r*cos(t),r*sin(t), sqrt(r^2)],
           r=0..sz, t=0..2*Pi, grid=[2,19]):      # top of cone
    an2 := plot3d([r*cos(t),r*sin(t),-sqrt(r^2)],
           r=0..sz, t=0..2*Pi, grid=[2,19]):      # bottom of cone
    an3 := animate3d([x,y,tan(k)*x+1-tan(k)],
           x=-sz..sz, y=-sz..sz, k=Pi/n..Pi, grid=[2,2], frames=n,
           view=[-sz..sz,-sz..sz,-sz..sz], scaling=constrained,
           color=white):                          # rotating plane
    display(an1,an2,an3);
  3. Ellipse - Foci: This animation shows how the distance from the foci of an ellipse to the points on the ellipse remain constant, regardless of choice of point. This can also be accomplished using a piece of string, two thumbtacks, and a pencil.
  4. restart: with(plots):
    
    a := 3: b := 2:               # x & y intercepts
    n := 24:                      # number of frames
    
    c := sqrt(a^2-b^2):
    if b>a then c := sqrt(b^2-a^2) end if:
    an1 := plot([a*cos(t),b*sin(t),t=0..2*Pi],color=red,
           scaling=constrained,view=[-a..a,-b..b],tickmarks=[0,0]):
    if a>b then
      an2 := animate([c*(1-t)+a*cos(k*2*Pi)*t,b*sin(k*2*Pi)*t,
             t=0..1],k=1/n..1,color=blue,frames=n)
    else
      an2 := animate([a*cos(k*2*Pi)*t,c*(1-t)+b*sin(k*2*Pi)*t,
             t=0..1],k=1/n..1,color=blue,frames=n)
    end if:
    if a>b then
      an3 := animate([-c*(1-t)+a*cos(k*2*Pi)*t,b*sin(k*2*Pi)*t,
             t=0..1],k=1/n..1,color=blue,frames=n)
    else
      an3 := animate([a*cos(k*2*Pi)*t,-c*(1-t)+b*sin(k*2*Pi)*t,
             t=0..1],k=1/n..1,color=blue,frames=n)
    end if:
    display(an1,an2,an3);
  5. Hyperbola - Foci: This animation shows how the difference of distances from the foci of a hyperbola remains constant.
  6. restart: with(plots):
    
    a := 1: b := 1:               # x & y multiples
    p:=1.1: n := 24:              # begin & end, frames
    
    c := sqrt(a^2+b^2):
    an1 := plot([a*tan(t),b*sec(t),t=-p..p],color=red,
           scaling=constrained,view=[-2..3,-2..2.5],
           tickmarks=[0,0]):
    an2 := plot([a*tan(t),-b*sec(t),t=-p..p],color=red,
           scaling=constrained,view=[-2..3,-2..2.5],
           tickmarks=[0,0]):
    an3 := animate([a*tan(k)*t,c*(1-t)+b*sec(k)*t,t=0..1],
           k=-p..p,color=green,frames=n):
    an4 := animate([a*tan(k)*t,-c*(1-t)+b*sec(k)*t,t=0..1],
           k=-p..p,color=blue,frames=n):
    an5 := animate([2.5,-c+t*sqrt(a^2*tan(k)^2+
           (-c-b*sec(k))^2),t=0..1],k=-p..p,color=blue,
           frames=n):
    an6 := animate([2.6,-c+sqrt(a^2*tan(k)^2+
           (-c-b*sec(k))^2)-t*sqrt(a^2*tan(k)^2+
           (c-b*sec(k))^2),t=0..1],k=-p..p, color=green,
           frames=n):
    display(an1,an2,an3,an4,an5,an6);
  7. Parabola - Focus: The linked animation shows the graph of a parabola and light rays coming in from above, together with the reflection of the rays. Each of the reflected rays hits one particular point, which is the focus of the parabola. This experiment can be done with a parabolic mirror, at least one laser pointer (two is best), and chalk dust (so that the path of light of the lasers can be seen). In this animation, the variables a-d denote the domain and range, and n denotes the number of frames.

    If you want to see the second reflection of the light rays, just put a "#" symbol before the "display" command on the 4th to the last line and remove the same symbols from the beginnings of the last three lines.
  8. restart: with(plots):
    
    a := -1: b := 1:              # domain
    c := 0: d := 2:               # range
    n := 24:                      # frames
    
    an1 := plot(x^2,x=a..b,view=c..d,color=blue,
           scaling=constrained,tickmarks=[0,0]):
    an2 := animate([k,d*t+(1-t)*k^2,t=0..1],k=a..b,
           color=red,frames=n):
    an3 := animate([k*t-(1-t)/(4*k),t*k^2+(1-t)/(16*k^2),
           t=0..1],k=a..b,color=orange,frames=n):
    display(an1,an2,an3);
    # an4 := animate([-1/(4*k),d*t+(1-t)/(16*k^2),t=0..1],
           # k=a..b,color=tan,frames=n):
    # display(an1,an2,an3,an4);
  9. Parabola - Focus & Directrix: This animation shows the concept of the directrix of a parabola. It should be clear that the distance from focus to parabola equals the distance from directrix to parabola.
  10. restart: with(plots):
    
    a := -1: b := 1:              # domain
    c := -.5: d := 1:             # range
    n := 24:                      # frames
    
    an1 := plot(x^2,x=a..b,view=c..d,color=blue,
           scaling=constrained,tickmarks=[0,0]):
    an2 := plot(-1/4,x=a..b,color=green):
    an3 := animate([k,-t/4+(1-t)*k^2,t=0..1],
           k=a..b,color=red,frames=n):
    an4 := animate([t*k,t*k^2+(1-t)/4,t=0..1],
           k=a..b,color=red,frames=n):
    display(an1,an2,an3,an4);