The canvas gives you zooming "for free"; it is included
in the world-to-canvas and canvas-to-world coordinate
system conversions. You can set the zoom factor with
gnome_canvas_set_pixels_per_unit() (Figure 7). By default,
there ratio of pixels to canvas units is 1.0, meaning
no zoom. Specifying a value less than 1.0 means reduced
size; greater than 1.0 means increased size.
In antialiased mode, you could achieve the same visual
effect by applying a scaling affine transformation to
the root canvas group. The
pixels_per_unit member of the GnomeCanvas struct predates the
canvas's use of affines. Still,
gnome_canvas_set_pixels_per_unit() is a bit more
convenient than the affine transform method, and it
does work in GDK mode. (Because GDK mode uses Xlib
primitives, it's nontrivial to implement arbitrary
affine transformations; a future version of Gnome may
do so, however.)