Dismiss Notice
Join Physics Forums Today!
The friendliest, high quality science and math community on the planet! Everyone who loves science is here!

Mathematica Animation for power point?

  1. Aug 1, 2010 #1
    Is there a way to animate and export a 3D plot such that it rotates about the z axis automatically? A friend is doing a presentation and I'd like to make some animated files of the 3D plots we've been making to include in a power-point. I've looked through help files and some google searches and only been able to find animation for parameters.
     
  2. jcsd
  3. Aug 1, 2010 #2
    The default ViewPoint is:

    In[1]:= ViewPoint/.Options[Plot3D]
    Out[1]= {1.3,-2.4,2.}

    We hit it with a rotation about the z-axis and animate. Note that I fixed the ViewAngle so that the graphics does not zoom in and out as the projection of the plot fits better and worse in the rectangular bounding box.

    Animate[Plot3D[Sin[x]Sin[y],{x,0,2Pi},{y,0,2Pi},PlotRange->1,Ticks->None,ViewPoint->{1.3 Cos[a]-2.4Sin[a],-2.4 Cos[a]-1.3 Sin[a],2},ViewAngle->20*Degree],{a,0,2\[Pi]}]
     
  4. Aug 1, 2010 #3
    To export, there is a few different ways.

    g = Animate[Plot3D[Sin[x]Sin[y],{x,0,2Pi},{y,0,2Pi},PlotRange->1,Ticks->None,
    ViewPoint->{1.3 Cos[a]-2.4Sin[a],-2.4 Cos[a]-1.3 Sin[a],2},ViewAngle->20*Degree],
    {a,0,2\[Pi],\[Pi]/10}, AnimationRepetitions->1,AnimationDirection->Forward]

    Then export to a video filetype, eg "avi", "mov", "swf"
    $HomeDirectory is the user's home directory.
    Another useful directory is NotebookDirectory[]

    Export[ToFileName[$HomeDirectory,"test.swf"],g]

    The above export has the animation slider and frame/panel in it. You can get rid of the panel by using Paneled -> False. To get rid of the slider is more difficult. One solution - that also gives you more control is to create a list of frames:

    gTable=Table[Plot3D[Sin[x]Sin[y],{x,0,2Pi},{y,0,2Pi},PlotRange->1,Ticks->None,ViewPoint->{1.3 Cos[a]-2.4Sin[a],-2.4 Cos[a]-1.3 Sin[a],2},ViewAngle->20*Degree],{a,0,2\[Pi],\[Pi]/10}];

    This can be animated using ListAnimate and exported using, eg as an animated gif:

    Export[ToFileName[$HomeDirectory,"gTable.gif"],gTable,ImageSize->350];

    To get the best control, you can export each individual frame as an image and animate using an external program. An example is http://groups.google.com/group/comp.soft-sys.math.mathematica/browse_thread/thread/474806f64be15759" [Broken].
     
    Last edited by a moderator: May 4, 2017
  5. Aug 1, 2010 #4
    alright, I've got one plot spinning around(thanks so much for that snippet)--is it possible to do an overlay animation?
     
    Last edited: Aug 1, 2010
  6. Aug 2, 2010 #5
    I doubt that producing an overlay animation is built into mathematica.
    You probably could make your own code to get mathematica to make one - but maybe an external specialised tool might be better....
     
  7. Aug 2, 2010 #6
    No worries--you've already helped a ton.
     
  8. Aug 15, 2010 #7
    Oh, I forgot to come back and say that you can in fact do an overlay if you define it as a single graphic. I had to install the old animate package to use the "SpinShow" command.

    g3 = Show[plot1, plot2, plot3]

    SpinShow[g3]
     
  9. Aug 30, 2012 #8
    Simon Tyler your method works really good but I'd like a smoother animation with more FPS. How can this be done?

    Thank you so much!
     
Share this great discussion with others via Reddit, Google+, Twitter, or Facebook