matrix(a, b, c, d, e, f) = [a b c d e f]
translate(tx, ty=0) = [1 0 0 1 tx ty]
scale(sx, sy=sx) = [sx 0 0 sy 0 0]
rotate(α) = [cos(α) sin(α) -sin(α) cos(α) 0 0]
rotate(α, cx=0, cy=0) = [1 0 0 1 cx cy] [cos(α) sin(α) -sin(α) cos(α) 0 0] [1 0 0 1 -cx -cy]
skewX(α) = [1 0 tan(α) 1 0 0]
skewY(α) = [1 tan(α) 0 1 0 0]
mirror(a, b=-a) = [a 0 0 b width*(1-a)/2 height*(1-b)/2]
flipX() = mirror(-1,1) = [-1 0 0 1 width 0]
flipY() = mirror(1,-1) = [1 0 0 -1 0 height]
mirror(a, b=1-a) = [1-2*a 0 0 1-2*b width*a height*b]
flipX() = mirror(1,0) = [-1 0 0 1 width 0]
flipY() = mirror(0,1) = [1 0 0 -1 0 height]