MathGroup Archive 2001

[Date Index] [Thread Index] [Author Index]

Search the Archive

Re: Spinshow Output to Animated GIF

  • To: mathgroup at smc.vnet.net
  • Subject: [mg30427] Re: Spinshow Output to Animated GIF
  • From: Mark Fisher <mark at markfisher.net>
  • Date: Fri, 17 Aug 2001 03:10:03 -0400 (EDT)
  • References: <9ld1tq$2h0$1@smc.vnet.net>
  • Sender: owner-wri-mathgroup at wolfram.com

I wrote a function called SpinGraphics to deal with this problem:

(* :Title: SpinGraphics *)

(* :Author: Mark Fisher *)

(* :Version: 1.0 August 2001 *)

(* :Discussion:
	SpinGraphics is an enhanced version of SpinShow (from the standard
	package Graphics`Animation`.) SpinShow is useful for spinning
	SurfaceGraphcs and Graphics3D objects. Unfortunately, since
	SpinShow does not return the list of graphics objects it produces,
	it cannot be used as a front end to create, for example, animated
	GIFs, since the necessary input to Display or Export is absent. In
	addition, SpinShow does not behave properly with the option
	DisplayFunction -> Identity.

	The problem is to create a function that has all of the
	functionality of SpinShow, but that also (1) returns the list of
	graphics objects it created and (2) responds to the option
	DisplayFunction the way other graphics functions do.

	In principle, the behavior of SpinShow could be controlled through
	the options to ShowAnimation: RasterFunction and
	AnimationFunction. In fact the usage statements for these two
	options say they are used by SpinShow (among other functions).
	Notwithstanding this claim, they have no effect, since SpinShow
	does not pass them on to Animate. The defaults for these options
	are $RasterFunction and $AnimationFunction. The solution is to
	call SpinShow within a Block where $RasterFunction and
	$AnimationFunction have been given the appropriate values.
*)

Needs["Graphics`Animation`"]

SpinGraphics::usage = "SpinGraphics works exactly like SpinShow with
	two exceptions. (1) SpinGraphics returns the list of graphics
	objects created. (SpinShow does not). (2) The option
	DisplayFunction -> Identity will suppress the display of the
	graphics. (SpinShow ignores the option DisplayFunction.) For usage
	information, refer to SpinShow."

Options[SpinGraphics] = Append[Options[SpinShow],
	DisplayFunction :> $DisplayFunction]

SpinGraphics[theGraphic_, opts___?OptionQ] :=
	Block[{$AnimationFunction = Identity,
	$RasterFunction = DisplayFunction /. {opts} /. Options[SpinGraphics]},
	SpinShow[theGraphic, opts]
	]

(It can be downloaded from
http://www.markfisher.net/~mefisher/mma/mathematica.html if it doesn't
reproduce well here.)

--Mark


Omega Consulting wrote:
> 
> At 02:40 AM 8/11/2001, Patrick Spicer wrote:
> >Has anyone ever directed a SpinShow output to an animated GIF?  I can
> >generate a SpinShow array and create an animated GIF, but the wedding
> >of the two is beyond me.  Thanks in advance for any tips.
> >
> >Best Regards,
> >
> >Pat
> 
> To create an animated GIF you need a list of Graphics expressions, but the
> default output of SpinShow is not a list of Graphics. I'm not sure what the
> purpose of this is, except perhaps to save memory. (All output is stored in
> memory so that it can be referenced with %n.) To make the output a list of
> graphics, do
> 
> SetOptions[ShowAnimation, RasterFunction :> $AnimationDisplayFunction]
> 
> This works because SpinShow calls ShowAnimation.


  • Prev by Date: Looking for Mathematica Wavelet Notebooks/Files
  • Next by Date: Re: Re: Rotation3D, MatrixRotation3D ?
  • Previous by thread: Re: Spinshow Output to Animated GIF
  • Next by thread: NLP package