Skip to content

Instantly share code, notes, and snippets.

@fryguybob
fryguybob / flow.hs
Last active February 16, 2019 20:11
{-# LANGUAGE TemplateHaskell #-}
{-# LANGUAGE FlexibleInstances #-}
{-# LANGUAGE FlexibleContexts #-}
{-# LANGUAGE GADTs #-}
{-# LANGUAGE ViewPatterns #-}
import Diagrams.Prelude
import Diagrams.Backend.PGF.CmdLine
import Control.Monad (forM_)
import Control.Lens
import Data.List (sortBy, groupBy)
@fryguybob
fryguybob / Measure.hs
Last active June 21, 2018 16:48
Measuring distance on a diagram using names.
{-# LANGUAGE FlexibleInstances #-}
{-# LANGUAGE MultiParamTypeClasses #-}
{-# LANGUAGE TypeFamilies #-}
{-# LANGUAGE TypeOperators #-}
import Diagrams.Prelude
newtype M = M { unM :: Last (P2 Double) }
type instance V M = V2
type instance N M = Double
{-# LANGUAGE FlexibleContexts #-}
{-# LANGUAGE OverloadedStrings #-}
{-# LANGUAGE ScopedTypeVariables #-}
import Data.Pool
import Control.Concurrent
import Control.Concurrent.Async
import Data.Monoid
import Data.Time.Clock
@fryguybob
fryguybob / parallel.hs
Created April 28, 2017 00:30
Diagram with timelines.
{-# LANGUAGE TemplateHaskell #-}
{-# LANGUAGE FlexibleInstances #-}
import Diagrams.Prelude
import Diagrams.Backend.PGF.CmdLine
import Control.Lens
import Data.List (sortBy, groupBy)
import Data.Ord (comparing)
import Data.Default.Class
import Data.Maybe (isJust, listToMaybe)
{-# LANGUAGE NoMonomorphismRestriction #-}
{-# LANGUAGE TypeFamilies #-}
{-# LANGUAGE FlexibleContexts #-}
import Diagrams.Prelude hiding (radius)
import Diagrams.Backend.PGF.CmdLine
import Data.List
--f x | x < -1 = x * sin x
-- | x < 0 = 5 * x
{-# LANGUAGE NoMonomorphismRestriction #-}
import Development.Shake
import Development.Shake.Command
import Development.Shake.FilePath
import Development.Shake.Util
import Control.Monad (forM_)
base = "IFL2016"
name = "ryates-" ++ base
{-# LANGUAGE NoMonomorphismRestriction #-}
{-# LANGUAGE MultiParamTypeClasses #-}
{-# LANGUAGE FlexibleInstances #-}
{-# LANGUAGE FlexibleContexts #-}
{-# LANGUAGE TypeFamilies #-}
{-# LANGUAGE TupleSections #-}
{-# LANGUAGE ViewPatterns #-}
{-# LANGUAGE BangPatterns #-}
import Control.Monad
import Control.Monad.Random
@fryguybob
fryguybob / arcTest.hs
Created November 8, 2014 19:18
Tests for `arcDCCW` and `arcDCW`
import Control.Monad
import Diagrams.Coordinates
import Diagrams.BoundingBox
-- import Diagrams.Backend.Postscript.CmdLine
-- import Diagrams.Backend.SVG.CmdLine
import Diagrams.Backend.Rasterific.CmdLine
import Diagrams.Backend.CmdLine
import Data.Default.Class
@fryguybob
fryguybob / offsetCubicSegment.hs
Last active December 13, 2015 17:09
Offsetting Cubic segments.
{-# LANGUAGE NoMonomorphismRestriction, ViewPatterns #-}
import Diagrams.Prelude
import Diagrams.Backend.Postscript.CmdLine
import Diagrams.Solve
import Diagrams.TwoD.Curvature
import Data.Monoid.PosInf
import qualified Debug.Trace as T
@fryguybob
fryguybob / RoundedPaths.hs
Last active October 12, 2015 04:18
Start of rounded paths.
{-# LANGUAGE TypeFamilies
, MultiParamTypeClasses
, FlexibleInstances
#-}
module RoundedPaths
( offsetPath
, fromFixed
-- , roundedCornerPath
) where