Animate[
Manipulate[
ParametricPlot[ Evaluate[{x[t], v[t]} /.
Quiet @ NDSolve[
{x'[t] == v[t],
v'[t] == μ (1 - x[t]^2) v[t] - x[t] + A*Cos[ω*t],
x[0] == xv0[[1]], v[0] == xv0[[2]]}, {x[t], v[t]}, {t, 0, tt}]],
{t, 0, tt}, ImageSize -> {450, 450}, PlotRange -> 4,
AxesLabel -> {TraditionalForm[x[t]], TraditionalForm[v[t]]},
PlotStyle -> PointSize[.5]
],
{{μ, 0.75, "parameter μ"}, 0, 3, 0.01, Appearance -> "Labeled"},
{{ω, 0.75, "parameter ω"}, 0, 3, 0.01, Appearance -> "Labeled"},
{{A, 0.75, "parameter A"}, 0, 3, 0.01, Appearance -> "Labeled"},
{{xv0, {1, 1}}, {-4, -4}, {4, 4}, Locator}], {tt, 0, 200},
AnimationRate -> 3, AnimationRepetitions -> 3, AnimationRunning -> True
]
You have to set values which are dynamic in Manipulate
.
μ = .75; ω = .75; A = .075; xv0 = {1, 1};
Table pictures for different tt
:
sol = Quiet@NDSolve[{x'[t] == v[t], v'[t] == μ (1 - x[t]^2) v[t] - x[t] + A*Cos[ω*t],
x[0] == xv0[[1]], v[0] == xv0[[2]]
}, {x[t], v[t]}, {t, 0, 20}];
dat = Table[
ParametricPlot[Evaluate[{x[t], v[t]} /. sol, {t, 0, tt},
PlotRange -> 4, AxesLabel -> {x[t], v[t]}]
, {tt, .1, 20, .2}];
Create gif.
SetDirectory@NotebookDirectory[]
Export["gif.gif", dat]
-
$\begingroup$ Can you include a slider by this method too where you can decide the speed of the animation? So other format needed too then. Any possibilities with Mathematica? $\endgroup$ – Léo Léopold Hertz 준영 Dec 29 '14 at 21:29
-
1$\begingroup$ @Masi You can add DisplayDurations option: mathematica.stackexchange.com/a/29485/5478 $\endgroup$ – Kuba♦ Dec 29 '14 at 21:30
-
$\begingroup$ But I want the user to decide real-time the speed of animation. So I think gif is not a choice. $\endgroup$ – Léo Léopold Hertz 준영 Dec 29 '14 at 21:34
-
$\begingroup$ @Masi you can save
Manipulate/Animate
as CDF. If not then it does not matter if you use gif or other movie extension, you need a player able to specify frames per second. (I hope I get your question) $\endgroup$ – Kuba♦ Dec 29 '14 at 21:49 -
$\begingroup$ Do You mean that you can have this kind of speed bar in the animation in Gif too? stackoverflow.com/q/27680783/54964 $\endgroup$ – Léo Léopold Hertz 준영 Dec 29 '14 at 22:09
You can capture the frames as you manually manipulate like this:
frames = {}
Animate[Manipulate[(AppendTo[frames, ParametricPlot[ ... ] ])[[-1]] .. ] ]
disable dynamic updating when done, then
Export["test.gif",frames]
warning this will quickly generate a large number of frames..
You can adjust the step size by changing the increment in the Table
and you can adjust the animation rate using "DisplayDurations", e.g. for the Table above.
Export["dat.gif",dat, "DisplayDurations"->Table[t,{Length[dat]}]]
where t is display duration in seconds (frame rate: 1/t). Other options for exporting are in the GIF documentation
I came across this very helpful video when perusing Wolfram's documentation:
I did not take a deep look at your code,but since you are using animate command,I suppose that your code is producing an animation which you can export it as movie into your powerpoint slides.
Export["test.avi",%]
which produces an .avi movie in your document folder.
-
$\begingroup$ works for me, while .mov does not work. Takes a long time to finish though. $\endgroup$ – ivbc May 16 '17 at 18:05
Export
etc.), but I moved from GIF to MOV which works nicely as described here: mathematica.stackexchange.com/a/4236/131. The quicktime movies have true color and integrate nicely into Powerpoint. $\endgroup$ – Yves Klett Jun 18 '13 at 14:32Export
should be list of pictures. It is written in help. $\endgroup$ – Kuba♦ Jun 18 '13 at 14:46