#import "@local/handout:0.1.0": * #import "@preview/cetz:0.4.2" = Wallpaper Symmetries #definition() A _Euclidean isometry_ is a transformation of the plane that preserves distances. \ Intuitively, an isometry moves objects on the plane without deforming them. There are four classes of Euclidean isometries: - translations - reflections - rotations - glide reflections #note( [We can prove there are no others, but this is beyond the scope of this handout.], ) \ A simple example of each isometry is shown below: #let demo(c) = { let s = 0.5 cetz.draw.line( (0, 0), (3 * s, 0), (3 * s, 1 * s), (1 * s, 1 * s), (1 * s, 2 * s), (0, 2 * s), close: true, fill: c, stroke: black + 0mm * s, ) } #table( stroke: none, align: center, columns: (1fr, 1fr), rows: (3.5cm, 3.5cm), row-gutter: 2mm, [ #cetz.canvas({ import cetz.draw: * demo(ored) translate(x: -1.0, y: -1.0) demo(oblue) }) #v(1fr) Translation ], [ #cetz.canvas({ import cetz.draw: * circle((-2, 0), radius: 0.1, stroke: none, fill: black) arc( (-2, 0), radius: 1, anchor: "origin", start: 0deg, stop: -30deg, mode: "PIE", ) demo(ored) rotate(z: -30deg, origin: (-2, 0)) demo(oblue) }) #v(1fr) Rotation ], [ #cetz.canvas({ import cetz.draw: * line((-2, 0), (4, 0)) translate(x: 0, y: 0.25) demo(ored) set-transform(none) set-transform(( (1, 0, 0, 0), (0, 1, 0, 0), (0, 0, 1, 0), (0, 0, 0, 1), )) translate(x: 0, y: 0.25) demo(oblue) }) #v(1fr) Reflection ], [ #cetz.canvas({ import cetz.draw: * demo(ored) set-transform(( (1, 0, 0, 0), (0, 1, 0, 0), (0, 0, 0, 0), (0, 0, 0, 0), )) translate(x: 2, y: 0) demo(oblue) set-transform(none) line((-1, 0), (5, 0)) }) #v(1fr) Glide reflection ], ) #definition() A _wallpaper_ is a two-dimensional pattern that... - has translational symmetry in at least two non-parallel directions (and therefore fills the plane) \ #note[ "Translational symmetry" means that we can slide the entire wallpaper in some direction, \ eventually mapping the pattern to itself.] - has a countable number of reflection, rotation, or glide symmetries. \ #v(1fr) #pagebreak() #problem() Is a plain square grid a valid wallpaper? #solution([ Yes! - It has translational symmetry in the horizontal and vertical directions - It has a countable number of symmetries---namely, six distinct mirror lines (horizontal, vertical, and diagonal) duplicated once per square. - A square grid is #sym.convolve`442` ]) #v(1fr) #problem() Is the empty plane a valid wallpaper? #solution([ No, since it has uncountably many symmetries. ]) #v(1fr)