import Graphics.Diagrams.SVG
-- autoLab s i = do
-- o <- labelObj s
-- -- stroke "red" $ path $ polyline [o # BaseW, o # BaseE]
-- -- stroke "blue" $ path $ polygon [o # NW, o # NE, o # SE, o # SW]
-- autoLabelObj o i
autoLab = autoLabel
testDiagram :: SvgDiagram ()
testDiagram = do
-- draw $ path $ circle (Point 0 0) 5
a <- labelObj $ "ha"
b <- labelObj $ "b"
a' <- draw $ circleShape -- labelObj $ ensureMath $ "c"
width a' === 15
b' <- labelObj $ "b'"
a'' <- labelObj $ "."
b'' <- labelObj $ "."
-- c <- texObj $ ensureMath $ "c"
-- Center ▸ c === MP.center [E ▸ a'', E ▸ b''] + (20 +: 0)
let width = 70
vdist b a === 30
hdist a a' === width
hdist a' a'' === width
alignMatrix $ map (map (#Center)) $ [[a,a',a'']
,[b, b',b'']]
autoLab "aa'" =<< arrow a a'
autoLab "bb'" =<< arrow b b'
autoLab "ab" . turn180 =<< arrow a b
autoLab "a'a''" =<< arrow a' a''
autoLab "b'b''" =<< arrow b' b''
draw $ do
autoLab "equal" =<< edge a'' b''
return ()
main :: IO ()
main = renderMain testDiagram
-- fonts which fail with 'not enough bytes'
-- Cantarell, FreeSans, Asana Math
-- fonts which do work: Amiri, Roboto, DejaVu Sans, Droid Sans