Re: Animation of a rotating object. (Mathematica 6)
- To: mathgroup at smc.vnet.net
- Subject: [mg80769] Re: Animation of a rotating object. (Mathematica 6)
- From: "David Park" <djmpark at comcast.net>
- Date: Sat, 1 Sep 2007 00:27:38 -0400 (EDT)
- References: <fb83p8$849$1@smc.twtelecom.net>
With animation you almost always have to specify PlotRange (as you did) to prevent 'frame jitter'. To zoom in on the object use PlotRegion (in a somewhat unconventional manner). a = Plot3D[Sin[x y], {x, -5, 5}, {y, -5, 5}, MaxRecursion -> 1, PlotPoints -> 50, Mesh -> None] Manipulate[Graphics3D[Rotate[a[[1]], phi, {0, 0, 1}], Boxed -> False, PlotRange -> {{-7, 7}, {-7, 7}, {-1, 1}}, PlotRegion -> {{-0.2, 1.2}, {-0.2, 1.1}}], {phi, 0, Pi/2}] You can use Table instead of Manipulate to export your graphics. -- David Park djmpark at comcast.net http://home.comcast.net/~djmpark/ "Nacho" <ncc1701zzz at gmail.com> wrote in message news:fb83p8$849$1 at smc.twtelecom.net... > Hello. > > I'm trying to make an animation of a rotating 3D object and I'm having > some problems. > > I want to make a list of images to export them to an AVI file. > > For example, the following object: > > a = Plot3D[Sin[x y], {x, -5, 5}, {y, -5, 5}, MaxRecursion -> 1, > PlotPoints -> 50, Mesh -> None]; > > I want to rotate it around the z axis slowly. I've tried Rotate and > changing ViewPoint, but neither work for me because Rotate distorted > the scale of every image and changing ViewPoint only works if I want > to rotate everything at the same time. > > I think that I should use Rotate, so I can Rotate several objects in > different angles or speeds. But I would like to avoid the distortion > in the size of the image: > > I've tried specifying PlotRange, and it looks promising, but I have > two problems: calculating the best PlotRange paramters so everything > is included, and maximizing the plotted area (so the white region > around the objects is minimized). > > This is close, but a lot of white space is around the object, and I > have to set the limits of PlotRange by try-and-see. > > b = Table[ > Graphics3D[Rotate[a[[1]], phi, {0, 0, 1}], Boxed -> False, > PlotRange -> {{-7, 7}, {-7, 7}, {-1, 1}}], {phi, 0, 1/4 Pi, > 1/4 Pi /5}] > > > Any hint to do this? > > The object doesn't need to be this particular Plot3D. It could be a > ParametricPlot3D, several Graphics3D primitives, etc. > > Thanks a lot. > > Best regards. > >