applications.collages.collageAlgebra:
{
  ntColour = const(.8),
  
  n = const(3),
  alpha = const(90/(#n + .5)),
  c = const(1/(1+2*cos(#alpha))),
  
  p = { polyline((-1,0),(1,0)) },
  interior = { filledPolygon((-1,0),(0,tan(#alpha)),(1,0),(0,-tan(#alpha)))%
                                           [#ntColour,#ntColour,#ntColour] },
  outline = { polygon((-1,0),(0,tan(#alpha)),(1,0),(0,-tan(#alpha))) },
  arrow = { filledPolygon((0,0), (.3,-.1), (.3,.1)) },
  arrowtrans = rotate(#alpha) . translate(-1,0),
  id = rotate(0),
  S  = #p,%#interior + #outline + #arrow transformed by arrowtrans,
  A = #p,%#outline + #arrow transformed by arrowtrans,
  S  = <#S, id>,
  A = <#A, id>,

  f1 = translate(1,0) . rotate(#alpha) . scale(#c) . translate(-1,0),
  f2 = use(f1) . scale(1,-1),
  f3 = translate(0,-tan(#alpha)) . scale(#c) . translate(0,tan(#alpha)),
  f4 = use(f3) . scale(1,-1),
  f5 = scale(-1,1) . use(f1) . scale(-1,1),
  f6 = use(f5) . scale(1,-1),
  F = <f1,f2,f3,f4,f5,f6>,
  G = <f1,f3,f5>,
  H = <f2,f4,f6>
}
