Wallpaper groups (#23)
Reviewed-on: #23
This commit was merged in pull request #23.
This commit is contained in:
151
src/Advanced/Wallpaper/parts/00 intro.typ
Normal file
151
src/Advanced/Wallpaper/parts/00 intro.typ
Normal file
@@ -0,0 +1,151 @@
|
||||
#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. \
|
||||
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)
|
||||
Reference in New Issue
Block a user