Animate curve parametric plot on a surface

I have a surface

s = Plot3D[{x,y,F[x,y]},{x,-1,1},{y,-1,1}]

with FF predefined, and a curve

c = ParametricPlot3D[{g1[t],g2[t],F[g1[t],g2[t]]},{t,0,1}]

with g1,g2g1,g2 predefined. cc is therefore a curve on the surface ss. If I want to show both the objects together I can use


but how can I animate the trajectory described by the curve cc on the surface ss?




Check out Animate and replace {t,0,1} with {t,0,u}, and let u be the changing variable in Animate.
– C. E.
Oct 27 ’13 at 16:21



Read the documentation.
– Sektor
Oct 27 ’13 at 16:32


1 Answer


Without functions, let’s make up our own. I’m going to take a guess here that the definition of s in the question really requires ParametricPlot3D:

F[x_, y_] := Sin[x] Cos[y];
g1[t_] := t;
g2[t_] := Cos[t];

Generate the surface:

s = ParametricPlot3D[{x, y, Sin[x] Cos[y]}, {x, -Pi, Pi}, {y, -Pi,
Pi}, Mesh -> None, PlotStyle -> Opacity[0.9]]

Create an animate of the contour by animating over the end value of the contour:

Show[s, ParametricPlot3D[{g1[u], g2[u], F[g1[u], g2[u]]}, {u, -Pi,
endu}, PlotStyle -> Thick, BoxRatios -> {1, 1, 1}]], {endu, -Pi,

Use a Table instead of Animate to create a series of images that can be exported as an animated gif as described in the documentation.



Thanks! Just one last question: how can I export it into a gif?
– albatross
Oct 27 ’13 at 16:47



If you’re new to Mathematica you’ll want to have a look around this site for lots of good information. Creating animated gifs can be found here among other places.
– bobthechemist
Oct 27 ’13 at 17:01