{-# LANGUAGE NoMonomorphismRestriction #-}
import Diagrams.Prelude
import Diagrams.Backend.Cairo.CmdLine
import qualified Data.Colour as C
{-
d = mconcat . map alignBR
$ [ dBody
, rect 0.5 6.5 # fc black
]
blues = iterate (C.blend 0.1 white) blue
# take 11 # reverse
dBody = mconcat . reverse . zipWith fc blues . take 11 . iterate (rotateBy (-1/20)) . rotateBy (-1/4) $ halfC
halfC = arc 0 (1/2 :: CircleFrac)
# scale 1.8
# stroke
# lw 0
-}
i = (circle 1 === strutY 0.5 === roundedRect (2,4) 0.4)
# lw 0.05
# lc blue
# fc yellow
sierpinski 1 = polygon with { sides = 3, orientation = OrientToX }
sierpinski n = s === (s ||| s)
where s = sierpinski (n-1)
a = sierpinski 4
# fc black
# scale (1/2)
grid = verts # centerXY <> horiz # centerXY
where verts = hcat' with {sep=0.5} $ replicate 20 (vrule 10)
horiz = rotateBy (1/4) verts
g = grid
# lc gray
# rotateBy (-1/20)
# clipBy p
# withBounds (p :: Path R2)
where p = polygon with {sides = 4, orientation = OrientToX} # scaleToX 5 # scaleToY 5
m = square 5.5 <>
text "m"
# fontSize 6 # italic # font "freeserif" # fc green
logo = (hcat' with {sep = 0.5} . map alignB $ [ i, a, g, m ])
# centerXY
main = defaultMain (pad 1.1 logo)