ArrowHead(a, b)
: if d == (- 0.238, - 0.508) rel (a, b)
, c == (- 0.238, 0.508) rel (a, b)
| T
-> fill (c, a), (a, d), (d, b), (b, c) fi
Arrow(c, d, a, b, g, f)
: if e == (0.893, 0.) rel (a, b), x == (0, 3) rel (a)
| (a, e) para (e, b) and (f, g) cong (e, b)
-> ArrowHead(e, b); a, x width stroke (c, d, a, e) fi
QuarterCircle(a, b)
: if k == (1., 0.552) rel (a, b)
, f == (0.552, 1.) rel (a, b)
, c == (0., 1.) rel (a, b)
| T
-> draw (c, f, k, b) fi
Circle(a, b)
: if e == (0., 1.) rel (a, b)
, d == (0., - 1.) rel (a, b)
, c == (- 1., - 0.) rel (a, b)
| T
-> QuarterCircle(a, e)
; QuarterCircle(a, c)
; QuarterCircle(a, d)
; QuarterCircle(a, b) fi
fill3(a, b, c): fill (a, b), (b, c)
fill5(a, b, c, d, e): fill (a, b), (b, c, d, e)
roundstroke(a, b, c, d)
: round ends c, d width stroke (a, b)
buttstroke(a, b, c, d)
: butt ends c, d width stroke (a, b)