-- Repeatedly transform an animation. Each transformation
-- stretches and speeds up the given image, and puts two
-- copies into orbit.
repSpinner :: RealB -> RealB -> ImageB -> Int -> ImageB
repSpinner r s im n = iterate spinner im !! n
where
spinner im = orbit `over` later 1 orbit
where
orbit = move path (faster r (stretch s im))
path = vector2Polar 0.5 (pi*time)

repSpinner (-1) 0.5 charlotte 3

repSpinner (1.5) 0.6 pat 4

repSpinner (-0.5) 0.6 becky 4

repSpinner (- sqrt 2) (sqrt 2 / 2) jake 4