One neat thing you can do is define a group structure (multiplication, identity, inversion) on rectangles. The geometric results of these operations depend on how you set up your coordinate systems, but when you use them to describe affine transformations, e.g. the affine transform taking one rectangle to another, the coordinate system doesn't matter anymore.
We can model a rectangle as a 4-tuple (x,y,w,h) comprised by the coordinates of (the upper left) corner and a width and height. Then the identity element is (0,0,1,1), multiplication is (x1,y1,w1,h1)(x2,y2,w2,h2) = (x1+w1x2, y1+h1y2, w1w2, h1h2), and inversion is (x,y,w,h)^{-1} = (-x/w, -y/h, 1/w, 1/h). Given two rectangles a and b there is a unique affine transform of the plane taking a to b,. If we apply that affine transform takes a third rectangle c, then the result can also be given by the formula ba^{-1}c.
The other neat thing about this is we don't have to implement rectangles and affine transformations as separate entities because rectangles also act as affine transformations. I think this is reminiscent of some ideas from geometric algebra, although that wasn't intentional at all.