wumpus-core-0.52.0: demo/ClipPic.hs
{-# OPTIONS -Wall #-}
module ClipPic where
import Wumpus.Core
import Wumpus.Core.Colour
import System.Directory
main :: IO ()
main = do
createDirectoryIfMissing True "./out"
writeEPS "./out/clip_path01.eps" pic1
writeSVG "./out/clip_path01.svg" pic1
pic1 :: Picture
pic1 = frame [ body ]
where
body = clipPrim dog_house $
primGroup [ red_circle, green_circle, blue_circle ]
red_circle :: Primitive
red_circle = fillEllipse red 60 60 $ P2 (-20) 0
green_circle :: Primitive
green_circle = fillEllipse green 60 60 $ P2 30 80
blue_circle :: Primitive
blue_circle = fillEllipse blue 60 60 $ P2 80 0
dog_house :: PrimPath
dog_house = absPrimPath zeroPt $
[ absLineTo (P2 0 60)
, absLineTo (P2 40 100)
, absLineTo (P2 80 60)
, absLineTo (P2 80 0)
, absLineTo (P2 60 0)
, absLineTo (P2 60 30)
, absCurveTo (P2 60 50) (P2 50 60) (P2 40 60)
, absCurveTo (P2 30 60) (P2 20 50) (P2 20 30)
, absLineTo (P2 20 0)
]