10
$\begingroup$

I'm trying to make an animated gif of a 3D plot by rotating the plot in its middle, around a vertical axis. I used the tricks gave by F'x and Heike in this thread autorotating 3D plot but I encountered some difficulties to get the right axis (parallel to the Axis3 in code). My need is to rotate my 3D plot slowly as a spinning top from its center.

rotateMeHarder1[g_, vertical_, viewpoint0_, center_List: {0, 0, 0}, nframes_Integer: 15, opts : OptionsPattern[]] :=  Module[{grlist},  grlist = Table[ Show[g, ViewVertical -> vertical,  ViewVector -> {RotationMatrix[2 Pi/nframes i,  vertical].(viewpoint0 - center) + center, center}, SphericalRegion -> True, opts], {i, 0, nframes - 1}]]

p = ListPlot3D[data, Mesh -> All, AxesLabel -> {"Axis1", "Axis2", "Axis3"}, PlotRange -> Full]
grlist = rotateMeHarder1[p, {0, 0, 1}, {1, 1, 1}, {0, 0, 0}, 10, ViewAngle -> 110 Degree]

ListAnimate[grlist]
$\endgroup$
18
$\begingroup$

I suppose you don't want something like this? (Sorry about the 750KB GIF...)

stupid animated gif

data = Table[Sin[x y], {x , 0, Pi, Pi/20},  {y, 0, Pi, Pi/20}];
animation = Table[ListPlot3D[data,
    DataRange -> {{-1, 1}, {-1, 1}},
    SphericalRegion -> True,
    Axes -> False, Boxed -> False,
    ViewVector -> {5 Sin[t], 5 Cos[t], Sin[10 t]}], {t , 0, Pi, 
    Pi/40}];
Export["animated.gif", animation, "DisplayDurations" -> .1]
$\endgroup$
  • 2
    $\begingroup$ Are we drunk, or on a ship? $\endgroup$ – Mr.Wizard Apr 21 '12 at 6:45
  • 6
    $\begingroup$ @Mr.Wizard It's "Plot like a pirate" day... $\endgroup$ – cormullion Apr 21 '12 at 7:24
  • $\begingroup$ Drink up, me 'earties, yo ho. :-) $\endgroup$ – Mr.Wizard Apr 21 '12 at 14:07
  • $\begingroup$ will be perfect if it gave me an infinite rotating style and a sailing on a smoother sea ;-) Really thanks for the helps guys and Yo-ho-ho! $\endgroup$ – sol May 10 '12 at 8:50

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.