132 lines
2.4 KiB
Typst
132 lines
2.4 KiB
Typst
#import "@local/handout:0.1.0": *
|
|
#import "@preview/cetz:0.3.1"
|
|
|
|
= Wallpaper Symmetries
|
|
|
|
#definition()
|
|
A _Euclidean isometry_ is a transformation of the plane that preserves distances. \
|
|
Intuituvely, an isometry moves objects on the plane without deforming them.
|
|
|
|
There are four classes of _Euclidean isometries_:
|
|
- Translation
|
|
- Reflection
|
|
- Rotation
|
|
- Glide reflection
|
|
#note([We can prove that 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: 0, y: -1.5)
|
|
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: 1.5, 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 directions
|
|
#note([(and therefore fills the plane)])
|
|
- has a countable number of reflection, rotation, or glide symmetries. \
|
|
|
|
#problem()
|
|
Is the empty plane a valid wallpaper?
|
|
|
|
#solution([
|
|
No, since it has uncountably many symmetries.
|
|
])
|