On 06/12/2008, at 6:32 AM, Andrew Coppin wrote:
Tim Docker wrote:
If you implement your drawing logic as a
function from time to the appropriate render actions, ie
| import qualified Graphics.Rendering.Cairo as C
| | type Animation = Time -> C.Render ()
then you just need to call this function multiple times to generate
sucessive frames.
That was my initial idea... but I'm not sure how well it would
work. I want to do stuff like fade elements in and out, move
complex structures around on the screen, etc. I think it might end
up being a little tangled if I go with this approach. I might be
wrong though...
This model of animation as "a function of time to a picture" is
probably described in many places. I first saw it described in Paul
Hudaks book "The haskell School of Expression: Learning functional
programming through multimedia". It shows how primitive animations
can be combined in various ways, including overlays and time
transformations. You can download the code from the books web-site,
which might be of interest even if you can't get hold of a copy of
the book. It's intended for pedagogical purposes, rather than a
comprehensive animation system, of course.
Tim
_______________________________________________
Haskell-Cafe mailing list
Haskell-Cafe@haskell.org
http://www.haskell.org/mailman/listinfo/haskell-cafe