Animating a 3D Plot
- To: mathgroup at smc.vnet.net
- Subject: [mg128707] Animating a 3D Plot
- From: Hugh Goyder <h.g.d.goyder at cranfield.ac.uk>
- Date: Mon, 19 Nov 2012 04:08:17 -0500 (EST)
- Delivered-to: l-mathgroup@mail-archive0.wolfram.com
- Delivered-to: l-mathgroup@wolfram.com
- Delivered-to: mathgroup-newout@smc.vnet.net
- Delivered-to: mathgroup-newsend@smc.vnet.net
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]]]
}]
]