From ed87b42461e58d3f4a4020d3bfe60efc37060eee Mon Sep 17 00:00:00 2001 From: Mark Date: Wed, 7 May 2025 22:48:16 -0700 Subject: [PATCH] More edits --- src/Advanced/Wallpaper/main.typ | 5 + src/Advanced/Wallpaper/parts/03 problems.typ | 66 ++++++++++++ src/Advanced/Wallpaper/parts/04 theorem.typ | 100 +++++++++++++++++++ 3 files changed, 171 insertions(+) create mode 100644 src/Advanced/Wallpaper/parts/03 problems.typ create mode 100644 src/Advanced/Wallpaper/parts/04 theorem.typ diff --git a/src/Advanced/Wallpaper/main.typ b/src/Advanced/Wallpaper/main.typ index 0d8b264..8314a99 100644 --- a/src/Advanced/Wallpaper/main.typ +++ b/src/Advanced/Wallpaper/main.typ @@ -19,3 +19,8 @@ #include "parts/02 rotate.typ" #pagebreak() + +#include "parts/03 problems.typ" +#pagebreak() + +#include "parts/04 theorem.typ" diff --git a/src/Advanced/Wallpaper/parts/03 problems.typ b/src/Advanced/Wallpaper/parts/03 problems.typ new file mode 100644 index 0000000..19b47cc --- /dev/null +++ b/src/Advanced/Wallpaper/parts/03 problems.typ @@ -0,0 +1,66 @@ +#import "@local/handout:0.1.0": * +#import "@preview/cetz:0.3.1" + +#let pat(img, sol) = { + problem() + + table( + stroke: none, + align: center, + columns: (1fr, 1fr), + rows: 80mm, + image(img, height: 100%), image(img, height: 100%), + ) + + solution(sol) + v(1fr) +} + += A few problems + +Find the signatures of the following patterns. Mark all mirror nodes, rotation centers, and glide reflections. \ +Each pattern is provided twice for convenience. + + +#pat("../res/wolfram/cm.svg", [#sym.times#sym.convolve]) +#pat("../res/wolfram/cmm.svg", [#sym.diamond.stroked`2`#sym.convolve`22`]) +#pagebreak() + + + + +#pat("../res/wolfram/p3.svg", [#sym.diamond.stroked`333`]) +#pat("../res/wolfram/p3m1.svg", [#sym.convolve`333`]) +#pagebreak() + +#pat("../res/wolfram/p4.svg", [#sym.diamond.stroked`442`]) +#pat("../res/wolfram/p4m.svg", [#sym.convolve`442`]) +#pagebreak() + +#pat("../res/wolfram/p6.svg", [#sym.diamond.stroked`632`]) +#pat("../res/wolfram/p6m.svg", [#sym.convolve`632`]) +#pagebreak() + +#pat("../res/wolfram/p4g.svg", [#sym.diamond.stroked`4`#sym.convolve`2`]) +#pat("../res/wolfram/p31m.svg", [#sym.diamond.stroked`3`#sym.convolve`3`]) +#pagebreak() + +#problem() +Draw a wallpaper with the signature #sym.convolve`442` +#v(1fr) +#pagebreak() + + +#pat("../res/wolfram/pgg.svg", [#sym.diamond.stroked`22`#sym.times]) +#pat("../res/wolfram/pmg.svg", [#sym.diamond.stroked`22`#sym.convolve]) +#pagebreak() + +#pat("../res/wolfram/pg.svg", [#sym.times#sym.times]) +#pat("../res/wolfram/pm.svg", [#sym.convolve#sym.convolve]) +#pagebreak() + +#pat("../res/wolfram/p2.svg", [#sym.diamond.stroked`2222`]) +#pat("../res/wolfram/pmm.svg", [#sym.convolve`2222`]) +#pagebreak() + +#pat("../res/wolfram/p1.svg", [#sym.circle.small]) diff --git a/src/Advanced/Wallpaper/parts/04 theorem.typ b/src/Advanced/Wallpaper/parts/04 theorem.typ new file mode 100644 index 0000000..15b748b --- /dev/null +++ b/src/Advanced/Wallpaper/parts/04 theorem.typ @@ -0,0 +1,100 @@ +#import "@local/handout:0.1.0": * +#import "@preview/cetz:0.3.1" + += The Signature-Cost Theorem + +#definition() +First, we'll associate a _cost_ to each type of symmetry in orbifold notation: + +#v(4mm) +#align( + center, + table( + stroke: (1pt, 1pt), + align: center, + columns: (auto, auto, auto, auto), + [*Symbol*], [*Cost*], [*Symbol*], [*Cost*], + [#sym.circle.small], [2], [#sym.times or #sym.convolve], [1], + [#sym.diamond.stroked.small`2`], [1/2], [#sym.convolve`2`], [1/4], + [#sym.diamond.stroked.small`3`], [2/3], [#sym.convolve`3`], [1/3], + [#sym.dots], [#sym.dots], [#sym.dots], [#sym.dots], + [#sym.diamond.stroked.small`n`], + [$(n-1) / n$], + [#sym.convolve`n`], + [$(n-1) / (2n)$], + ), +) + + +We then calculate the total "cost" of a signature by adding up the costs of each component. + +For example, a pattern with signature #sym.convolve`333` has cost 2: + +#v(2mm) + +$ + 2 / 3 + 2 / 3 + 2 / 3 = 2 +$ + +#problem() +Calculate the costs of the following signatures: +- #sym.diamond.stroked.small`3`#sym.convolve`3` +- #sym.convolve#sym.convolve +- #sym.diamond.stroked.small`4`#sym.convolve`2`: + +#solution([ + - #sym.diamond.stroked.small`3`#sym.convolve`3`: $2/3 + 1 + 1/3 = 2$ + - #sym.convolve#sym.convolve: $1 + 1 = 2$ + - #sym.diamond.stroked.small`4`#sym.convolve`2`: $3/4 + 1 + 1/4 = 2$ +]) + +#v(1fr) + +#theorem(name: "Signature Cost Theorem") +The signatures of planar wallpaper patterns are exactly those with total cost 2. \ +#note([We will not prove this theorem today, accept it without proof.]) + +#problem() +Consider the 4 symmetries (translation, reflection, rotation, and glide reflection). \ +Which preserve orientation? Which reverse orientation? + +#solution([ + - Reflections and glide reflections reverse orientation (directions of spirals). + - Translation and rotation preserve orientation. +]) + +#v(1fr) +#pagebreak() + +#problem() +Use the signature-cost theorem to find all the signatures consisting of only #sym.circle.small or rotational symmetries. + +#solution([ + #sym.diamond.stroked.small`632`, #sym.diamond.stroked.small`442`, #sym.diamond.stroked.small`333`, #sym.diamond.stroked.small`2222`, #sym.circle.small +]) + +#v(1fr) + + +#problem() +Find all the signatures consisting of only mirror symmetries. + +#solution([ + #sym.convolve`632`, #sym.convolve`442`, #sym.convolve`333`, #sym.convolve`2222`, #sym.convolve#sym.convolve +]) + +#v(1fr) + + +#problem() +Find all the remaining signatures. \ +Each must be a mix of of mirror symmetries, rotational symmetries, or glide reflections. \ +#hint([They are all shown in the problems section.]) + +#solution([ + #sym.diamond.stroked.small`3`#sym.convolve`3`, #sym.diamond.stroked.small`4`#sym.convolve`2`, + #sym.diamond.stroked.small`22`#sym.times, #sym.diamond.stroked.small`22`#sym.convolve, + #sym.times#sym.times, #sym.times#sym.convolve +]) + +#v(1fr)