This lesson needs WebGL2, which your browser has disabled or does not support.
Please open the page in a current version of Chrome or Firefox.

Groups of translations

Groups G = ⟨a, b⟩ generated by two complex numbers a and b acting by translation: zz + a and zz + b. The two generators may not lie on one line through 0, for the translates of a fundamental region would then fail to fill the plane. When one of them (never both) is dragged close enough to 0 it snaps to 0, and G = ⟨a⟩ becomes an infinite cyclic group of translations whose fundamental region is an unbounded strip.

One-parameter subgroup 
direction  m    n 

What to look for

Every motion in play here has the form z ↦ z + m·a + n·b: a composite of m steps by the gold generator a and n steps by the blue generator b, either of which may be taken backwards. Switching on “the group G” marks the orbit of the point 0 — one dot m·a + n·b per motion — a bona fide picture of the group, drawn inside the very plane it acts on.

Closure, inverses, identity. Step by a and then by b and you land exactly on a third marked point, a + b; composites never leave the collection (closure). Each step can be undone, and the undoing is again one of the marked steps — note the dot −a (inverses). Doing nothing at all also counts as a step: the dot at 0 (identity). These three observations are what make the collection a group; associativity costs nothing, since composition of transformations is automatically associative.

One point per orbit. Each parallelogram of the colored tessellation contains exactly one point of every orbit, and each pixel is colored by that representative; the pattern therefore repeats exactly, tile by tile, with no copying involved. A single tile is thus a faithful portrait of the quotient: the plane, viewed up to the motions of the group.

Two pictures, one group. The dots and the flags are pictures of the same thing seen twice. The dots need the origin — they are the group drawn as a set of vectors out of a distinguished point. The flags need no origin whatever: drag z₀ anywhere and the orbit is still a perfectly good lattice of copies. Watch both stay in lock-step as you drag a generator.

Generators are not the group. Different pairs generate the identical lattice. Drag b to a + b (for instance from i to 1 + i): every dot stays exactly where it was, because m·a + n·b = m·(a+b) + (n−m)·b — yet the fundamental parallelogram visibly shears. The tiling depends on the generators; the group does not.

Gliding versus hopping. The slider drives the continuous family z ↦ z + t·(m·a + n·b); its ghost flag glides along a straight line and, at integer values of t, lands on the discrete copies. The discrete group hops, leaving gaps — the tiles make those gaps visible — while the one-parameter group moves through them without interruption.

Choosing the direction. The coefficients m and n pick which one-parameter subgroup is animated: the line through 0 and the group element m·a + n·b. Every choice glides through a different subfamily of the copies — (1,0) walks along one row, (1,1) along a diagonal, (2,−1) along a longer, sparser one. Note that the ghost meets a discrete copy exactly at the whole numbers, whatever the direction: the continuous subgroup contains the cyclic subgroup generated by m·a + n·b, and passes through everything between. Setting both coefficients to 0 leaves the trivial subgroup, which does nothing at all — the identity is a one-parameter family too, if a dull one.

The two degenerate cases. Drag b onto the line through 0 and a: it is refused, and the forbidden line is drawn in red. Were the two collinear, every translate would slide along that one direction and the copies would never fill the plane. Drag b to 0 instead and it snaps: the group collapses to the infinite cyclic group ⟨a⟩, and the fundamental region opens out into an unbounded strip of width |a|, each line parallel to a carrying a single color.