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]]] }] ]