Technique: Scaling Around a Center Point

While it’s possible to rotate around a point other than
the origin, there is no corresponding capability to scale around a point. You can, however, make
concentric symbols with a simple series of transformations. To scale an
object by a given factor around a center point, do this:

translate(-centerX*(factor-1), -centerY*(factor-1))
scale(factor)

You may also want to divide the stroke-width by the scaling factor so the
outline stays the same width while the object becomes larger. Example 5-11 draws the set of
concentric rectangles shown in Figure 5-19.[6]