packages feed

gruff-examples-0.4: src/gruff-zoom.hs

import System.Environment (getArgs)

import Fractal.GRUFF

main :: IO ()
main = do
  [fn, nfs] <- getArgs
  i0 <- read `fmap` readFile fn
  let nf = read nfs
      r0 = 4
      r1 = radius (imageLocation i0)
      dr = r1 / r0
      zoom f =
        let t = fromIntegral f / fromIntegral (nf - 1)
            r = r0 * dr ** t
        in  i0{ imageLocation = (imageLocation i0){ radius = r } }
      name = (++ ".ppm") . reverse . take 8 . (++ "00000000") . reverse . show
  defaultMain [ (zoom f, name f) | f <- [0 .. nf - 1] ]