This commit is contained in:
2025-04-22 18:51:59 -07:00
parent 99344f9aed
commit 88c11cf828
32 changed files with 150112 additions and 0 deletions

View File

@ -0,0 +1,9 @@
#import "@local/handout:0.1.0": *
#show: handout.with(
title: [Wallpaper Symmetries],
by: "Mark",
)
#include "parts/00 arithmetic.typ"
#pagebreak()

View File

@ -0,0 +1,7 @@
[metadata]
title = "Wallpaper Symmetries"
[publish]
handout = true
solutions = true

View File

@ -0,0 +1,254 @@
#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.75
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,
)
}
#box(
height: 10cm,
align(
center,
table(
stroke: none,
align: center,
columns: (1fr, 1fr),
rows: (1fr, 1fr),
cetz.canvas({
import cetz.draw: *
demo(ored)
translate(x: 0, y: -2.5)
demo(oblue)
})
+ [Translation],
cetz.canvas({
import cetz.draw: *
circle((-2, 0), radius: 0.2, stroke: none, fill: black)
demo(ored)
rotate(z: -45deg, origin: (-2, 0))
demo(oblue)
})
+ [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)
})
+ [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.5, y: 0)
demo(oblue)
set-transform(none)
line((-1, 0), (5, 0))
})
+ [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 countably many reflection, rotation, or glide symmetries. \
#problem()
Is the empty plane a valid wallpaper?
#solution([
No, since it has an uncountable number of symmetries.
])
#pagebreak()
#definition()
A _mirror symmetry_ is a reflection about a line.
Its signature is `*`.
An integer $n$ following `*` denotes $n$-fold mirror symmetry, the intersection of $n$ mirror lines.
Two intersections of mirror lines are considered the same if we can perform a translation and rotation that sends one to the other, while leaving the pattern the same. There are various possible combinations of mirror symmetries.
This flower pattern has signature `*632`: there are
three distinct point of intersecting mirror lines with 6, 3, and 2 mirror lines respectively.
#table(
stroke: none,
align: center,
columns: (1fr, 1fr),
rows: 50mm,
image("../res/*632-a.png", height: 100%),
image("../res/*632-b.png", height: 100%),
)
#problem()
Design a wallpaper pattern with signature `*2222`
#pagebreak()
Another symmetry is n-fold rotational symmetry about a point, whose signature is written n. Multiple bold numbers means multiple points of rotational symmetry.
Two points of rotational symmetry are considered the same if we can perform a translation + rotation sending one to the other, while leaving the pattern the same.
There are also patterns with both kinds of symmetries. To classify such patterns, first find all the mirror symmetries, then all the rotational symmetries that are not accounted
for by the mirror symmetries.
By convention we write the rotational symmetries before
the `*`.
#table(
stroke: none,
align: center,
columns: (1fr, 1fr),
rows: 50mm,
image("../res/333.png", height: 100%), image("../res/3*3.png", height: 100%),
)
#problem()
Mark the three rotation points in Figure 1.
#problem()
Find the signature of the pattern in Figure 2.
#solution([`3 *3`])
#pagebreak()
Some exceptional cases: It is possible to have two different parallel mirror lines. In
this situation the signature is
#table(
stroke: none,
align: center,
columns: 1fr,
rows: 60mm,
image("../res/**.png", height: 100%),
)
#problem()
Draw another wallpaper pattern with signature `**`
#pagebreak()
There are two other types of symmetries. The first called a miracle whose signature is
written ×. It is the result of a glide reflection, which is translation along a line followed
by reflection about that line.
This occurs when there is orientation-reversing symmetry not accounted for by a mirror.
For example, if we modify Figure 3 slightly we get a signature of ×
#table(
stroke: none,
align: center,
columns: (1fr, 1fr),
rows: 60mm,
image("../res/*x-b.png", height: 100%),
image("../res/*x-a.png", height: 100%),
)
Signature ×. There is a glide reflection (shown by the by the dotted line)
taking the clockwise spiral to the counter-clockwise spiral, reversing orientation
#pagebreak()
#problem()
Find the signatures of the following patterns:
#table(
stroke: none,
align: center,
columns: (1fr, 1fr),
rows: 60mm,
image("../res/wiki/Wallpaper_group-cm-4.jpg", height: 100%),
image("../res/wiki/Wallpaper_group-p4g-2.jpg", height: 100%),
)
#pagebreak()
There is another exceptional case with two miracles, where there are two glide reflection
symmetries along distinct lines. There are other glide reflections, but they can be obtained
by composing the two marked in the diagram.
#table(
stroke: none,
align: center,
columns: (1fr, 1fr),
rows: 60mm,
image("../res/xx-b.png", height: 100%),
image("../res/xx-a.png", height: 100%),
)
Figure 7: There are two distinct mirrorless crossings, so the signature is `xx`.
Lastly, if none of the above symmetries appear in the pattern, then there is only regular
translational symmetry, which we denote by O.
In summary, to find the signature of a pattern:
- Find the mirror lines () and the distinct intersections
- Find the rotational points of symmetry not account for by reflections.
- Look for any miracles (×) i.e. glide reflections that do not cross a mirror line.
- If you found none of the above, it is just O

Binary file not shown.

After

Width:  |  Height:  |  Size: 535 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 484 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 280 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 666 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 160 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 533 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 568 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 800 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 436 KiB

File diff suppressed because it is too large Load Diff

After

Width:  |  Height:  |  Size: 991 KiB

File diff suppressed because it is too large Load Diff

After

Width:  |  Height:  |  Size: 233 KiB

File diff suppressed because it is too large Load Diff

After

Width:  |  Height:  |  Size: 236 KiB

File diff suppressed because it is too large Load Diff

After

Width:  |  Height:  |  Size: 196 KiB

File diff suppressed because it is too large Load Diff

After

Width:  |  Height:  |  Size: 178 KiB

File diff suppressed because it is too large Load Diff

After

Width:  |  Height:  |  Size: 205 KiB

File diff suppressed because it is too large Load Diff

After

Width:  |  Height:  |  Size: 299 KiB

File diff suppressed because it is too large Load Diff

After

Width:  |  Height:  |  Size: 264 KiB

File diff suppressed because it is too large Load Diff

After

Width:  |  Height:  |  Size: 268 KiB

File diff suppressed because it is too large Load Diff

After

Width:  |  Height:  |  Size: 204 KiB

File diff suppressed because it is too large Load Diff

After

Width:  |  Height:  |  Size: 229 KiB

File diff suppressed because it is too large Load Diff

After

Width:  |  Height:  |  Size: 273 KiB

File diff suppressed because it is too large Load Diff

After

Width:  |  Height:  |  Size: 379 KiB

File diff suppressed because it is too large Load Diff

After

Width:  |  Height:  |  Size: 176 KiB

File diff suppressed because it is too large Load Diff

After

Width:  |  Height:  |  Size: 147 KiB

File diff suppressed because it is too large Load Diff

After

Width:  |  Height:  |  Size: 163 KiB

File diff suppressed because it is too large Load Diff

After

Width:  |  Height:  |  Size: 178 KiB

File diff suppressed because it is too large Load Diff

After

Width:  |  Height:  |  Size: 226 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 81 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 406 KiB