2

I have a surface

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

with $F$ predefined, and a curve

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

with $g1,g2$ predefined. $c$ is therefore a curve on the surface $s$. If I want to show both the objects together I can use

Show[s,c]

but how can I animate the trajectory described by the curve $c$ on the surface $s$?

albatross
  • 21
  • 1
  • 2

1 Answers1

7

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:

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

enter image description here

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.

bobthechemist
  • 19,693
  • 4
  • 52
  • 138