module Screen where import Graphics.PS import Graphics.PS.Cairo drawPath :: (GS -> a -> b) -> Double -> a -> b drawPath m g p = m (greyGS g) p drawCircle :: Pt -> Double -> Image drawCircle p r = let c = arc p r 0 (2 * pi) in drawPath Stroke 0.2 c drawRectangle :: Pt -> Double -> Double -> Double -> Image drawRectangle p w h a = let r = rectangle p w h in drawPath Fill 0.4 (rotate a r) drawText :: Pt -> [Glyph] -> Double -> Image drawText p t n = let t' = Text (Font "Times" n) t in drawPath Stroke 0.2 (MoveTo p +++ t') scena :: Double -> [Image] scena n = let p = Pt 250 250 r = map (\a -> drawRectangle p 25 35 (pi/12*n*a)) [0..4] in [ drawCircle p (25 * n) , drawCircle p (65 * n) , drawText p "Some text" (24 * n) ] ++ r main :: IO () main = cg "test.ps" (Paper 900 600) (scena 1.0)