imj-animation-0.1.0.2: src/Imj/Graphics/Animation/Design/Color.hs
{-# OPTIONS_HADDOCK hide #-}
{-# LANGUAGE NoImplicitPrelude #-}
module Imj.Graphics.Animation.Design.Color
( colorFromFrame
) where
import Imj.Prelude
import Imj.Graphics.Color
import Imj.Iteration
-- | Returns the color used to draw an animation, based on the frame number
-- (relative to the parent animation, if any).
colorFromFrame :: Frame -> LayeredColor
colorFromFrame (Frame f) = onBlack $ rgb r g b
where
r = assert (f >= 0) 4
g = fromIntegral $ (0 + quot f 6) `mod` 2 -- [0..1] , slow changes
b = fromIntegral $ (0 + quot f 3) `mod` 3 -- [0..2] , 2x faster changes