Date: Nov 19, 2012 5:06 PM
Author: Goyder Dr HGD
Subject: Animating a 3D Plot

Below I show three attempts to animate a 3 D Plot. 1. The Dynamic simplifies the plot while the animation is running spoiling the quality. 2. To avoid this I do a ListAnimate which works. 3. However, when I try to alter one of the parameters dynamically I am back to the problem of oversimplification
of the plot. Any ideas to make this work?
Thanks Hugh Goyder

Animate[
With[{sf = 0.3, n = 4},
ParametricPlot3D[
a = Cos[t] Cos[th] Sin[n 2 Pi x]; {x, Cos[th] + sf a Cos[th],
Sin[th] + sf a Sin[th]}, {x, 0, 1}, {th, -Pi, Pi},
PlotRange -> {All, {-2, 2}, {-2, 2}}, BoxRatios -> {10, 2, 2},
PlotPoints -> 3, ImageSize -> 10 72]
],
{t, 0, 2 Pi},
DisplayAllSteps -> True]

dd = Table[With[{sf = 0.3},
ParametricPlot3D[
a = Cos[t] Cos[th] Sin[Pi x]; {x, Cos[th] + sf a Cos[th],
Sin[th] + sf a Sin[th]}, {x, 0, 4}, {th, -Pi, Pi},
PlotRange -> {All, {-2, 2}, {-2, 2}}, BoxRatios -> {10, 2, 2},
ImageSize -> 10 72, PlotPoints -> 3]
], {t, 0, 2 Pi, Pi/16}]; ListAnimate[dd]



DynamicModule[{n = 5, dd, t = 1, sf = 0.3},

dd[n_] := Table[
ParametricPlot3D[
a = Cos[t] Cos[th] Sin[n 2 Pi x]; {x, Cos[th] + sf a Cos[th],
Sin[th] + sf a Sin[th]}, {x, 0, 1}, {th, -Pi, Pi},
PlotRange -> {All, {-2, 2}, {-2, 2}}, BoxRatios -> {10, 2, 2},
ImageSize -> 10 72, PlotPoints -> 5]
, {t, 0., 2. Pi, Pi/16.}];
Column[{
Row[{"Number of longitudinal waves = ",
Slider[Dynamic[n], {0, 10, 1}], Dynamic[n]}],

Animator[Dynamic[t], {1, 33, 1}],
Dynamic[dd[n][[t]]]
}]
]