diff --git a/src/Advanced/Wallpaper/main.typ b/src/Advanced/Wallpaper/main.typ new file mode 100644 index 0000000..7614037 --- /dev/null +++ b/src/Advanced/Wallpaper/main.typ @@ -0,0 +1,12 @@ +#import "@local/handout:0.1.0": * + +#show: handout.with( + title: [Wallpaper Symmetry], + by: "Mark", +) + +#include "parts/00 intro.typ" +#pagebreak() + +#include "parts/01 reflect.typ" +#pagebreak() diff --git a/src/Advanced/Wallpaper/meta.toml b/src/Advanced/Wallpaper/meta.toml new file mode 100644 index 0000000..f0630ae --- /dev/null +++ b/src/Advanced/Wallpaper/meta.toml @@ -0,0 +1,7 @@ +[metadata] +title = "Wallpaper Symmetries" + + +[publish] +handout = true +solutions = true diff --git a/src/Advanced/Wallpaper/parts/00 intro.typ b/src/Advanced/Wallpaper/parts/00 intro.typ new file mode 100644 index 0000000..b3bfc7c --- /dev/null +++ b/src/Advanced/Wallpaper/parts/00 intro.typ @@ -0,0 +1,131 @@ +#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. +]) diff --git a/src/Advanced/Wallpaper/parts/01 reflect.typ b/src/Advanced/Wallpaper/parts/01 reflect.typ new file mode 100644 index 0000000..c35f8bf --- /dev/null +++ b/src/Advanced/Wallpaper/parts/01 reflect.typ @@ -0,0 +1,99 @@ +#import "@local/handout:0.1.0": * +#import "@preview/cetz:0.3.1" + += Mirror Symmetry + +#definition() +A _mirror symmetry_ is a reflection about a line. \ +If $n$ mirror symmetries intersect at a point, we say that point is an _$n$-fold mirror node_. + +#v(3mm) + +Two mirror nodes are identical if we can map one to the other with a translation and a rotation \ +while preserving the pattern on the wallpaper. + +#problem(label: "pat333") +Find all three three distinct mirror nodes in the following pattern. \ +What is the order of each intersection? \ +#hint([ + You may notice rotational symmetry in this pattern. \ + Don't worry about that for now. +]) + +#table( + stroke: none, + align: center, + columns: 1fr, + rows: 50mm, + image("../res/wolfram/p3m1.svg", height: 100%), +) + +#solution([This is `*333`]) + +#v(1fr) + + +#definition() +_Orbifold notation_ gives us a way to write down the symmetries of a wallpaper. \ +We will introduce orbifold notation one symmetry at a time. + +#definition() +In orbifold notation, mirror nodes are denoted by a `*` followed by at least one integer. \ +Every integer $n$ following a `*` denotes a mirror node of order $n$. + +#v(3mm) + +The order of these integers doesn't matter. `*234` and `*423` are the same signature. \ +However, we usually denote $n$-fold symmetries in descending order (that is, like `*432`). + +#problem() +What is the signature of the wallpaper in @pat333? +#solution([It is `*333`]) + + +// MARK: page +#v(1fr) +#pagebreak() + +#problem() +Find the signature of the following pattern. + +#table( + stroke: none, + align: center, + columns: 1fr, + rows: 50mm, + image("../res/*632-a.png", height: 100%), +) + + +#solution([ + It is `*632`: + #table( + stroke: none, + align: center, + columns: 1fr, + rows: 40mm, + image("../res/*632-b.png", height: 100%), + ) +]) + +#v(1fr) + +#problem() +Draw a wallpaper pattern with signature `*2222` + +#solution([ + Sample solutions are below. + + #table( + stroke: none, + align: center, + columns: (1fr, 1fr), + rows: 50mm, + image("../res/wolfram/pmm.svg", height: 100%), + image("../res/escher/pmm.svg", height: 100%), + ) +]) + +#v(1fr) diff --git a/src/Advanced/Wallpaper/res/*632-a.png b/src/Advanced/Wallpaper/res/*632-a.png new file mode 100644 index 0000000..142a4f3 Binary files /dev/null and b/src/Advanced/Wallpaper/res/*632-a.png differ diff --git a/src/Advanced/Wallpaper/res/*632-b.png b/src/Advanced/Wallpaper/res/*632-b.png new file mode 100644 index 0000000..8dd5c53 Binary files /dev/null and b/src/Advanced/Wallpaper/res/*632-b.png differ diff --git a/src/Advanced/Wallpaper/res/escher/pmm.svg b/src/Advanced/Wallpaper/res/escher/pmm.svg new file mode 100644 index 0000000..1426cbf --- /dev/null +++ b/src/Advanced/Wallpaper/res/escher/pmm.svg @@ -0,0 +1,86 @@ + + + +pmm +Exported by Tess 1.70. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +