This group of zoom operations is $Z \simeq (\mathbb R, \times 1)$.I'll show this by stacking copies of the real line next to each other:
^
| ^
| | ^
Z---[z=1]---[z=1/2]--[z=1/4]----...
| | V
| V P
v P
P
- So we show the group
Z
on the horizontal axis, which zooms the real line. We "attach" a copy of P
to each element z
of Z
, appropriately scaled.
- How should I write the pan-and-zoom operation as a single unit? I'll denote by
(z, p)
the operation of panning by p
and then zooming by z
. Why not the other order? Well, if I zoom first by z
and then pan by p
, the pan p
gets "disturbed" by the zoom, since the pan would like to talk about the initial state of the world, but we now need to pan with respect to the world after zooming. So we prefer the order where we can pan first (with no zoom interfering with our affairs), and then zoom. - How do these combine? If we have
(1, p) . (1, p')
we get (1, p + p')
since combining pans at zoom level 1x
is like us not having zooming. Similarly, combining (z, 0) . (z', 0)
is (zz', 0)
, since zooming by z
with no pan followed by z'
is the same as zooming in one shot by zz'
. - What about
(z, p). (z', p')
? What does it mean? It means we should (a) pan by p
, (b) zoom z
, (c) pan by p'
, (d) zoom z'
. See that the total zoom will be zz'
at the end of this operation. What about the total pan? the second pan by p'
happens after we have already zoomed by z
. So relative to no zoom, this is a pan by zp'
. So in total, we can replace by an operation which (1) pans by p + zp'
, and then (2) zooms by zz'
. So we have that (z, p).(z', p') = (zz', zp + p')
. This is a semidirect product. - If we stare at the picture above, we see that we have many copies of
p
, one for each z
. So the full group is like Z x P
. - It's hopefully clear that if we "squish" the
P
s, (ie, quotient by P
) down towards the Z
, we'll still have a fully functioning Z
group. - On the other hand, if we attempt to "squish" the
Z
s(ie, quotient by Z
) down towards a single P
, we'll be left with incompatible copies of P
, each at different scales! This tells us that we can quotient by P
(so P
is normal), but not by Z
(so Z
is not normal). - So, this is sort of like a vector bundle
P -> Z |x P -> Z
where the fibers are P
and the base space is Z
. We can remove the fibers to recover the base space. You can't delete the base space, since there's no way to make the fibers "compatible".