7.3.6 2D Scaling
The strategy we used to scale a point (x, y) relative to some arbitrary point
(px, py) was to first, translate (−px,−py); second, perform the scaling; and
third, translate (px, py). These three transforms can be represented in matrix
form as follows: