-- Erzeugt ein einfarbiges Bild bestimmter Dimensionen blank :: Pixel a => (Height,Width) -> a -> Picture a blank (h,w) = (replicate h . replicate w) -- Konkateniert eine Liste von Bildern übereinander stack :: [Picture a] -> Picture a stack = foldr1 above -- Konkateniert eine Liste von Bildern übereinander und fügt Leerzeilen zwischen den Bildern ein stackWith :: Int -> [Picture a] -> Picture a stackWith h = foldr1 (#) where p # q = p `above` (blank (h,width q) `above` q) -- Konkateniert eine Liste von Bildern nebeneinander spread :: [Picture a] -> Picture a spread = foldr1 sideBySide -- Konkateniert eine Liste von Bildern nebeneinander und fügt Leerspalten zwischen den Bildern ein spreadWith :: Width -> [Picture a] -> Picture a spreadWith w = foldr1 (#) where p # q = p `sideBySide` (blank (height q,w) `sideBySide` q) -- Teilt ein Bild in eine Liste einer definierten Anzahl von Bildern auf group :: Int -> [a] -> [[a]] group n xs = if null ys then [] else ys : group n zs where (ys,zs) = splitAt n xs