First two sections
This commit is contained in:
		
							
								
								
									
										12
									
								
								src/Advanced/Wallpaper/main.typ
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										12
									
								
								src/Advanced/Wallpaper/main.typ
									
									
									
									
									
										Normal file
									
								
							@ -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()
 | 
			
		||||
							
								
								
									
										7
									
								
								src/Advanced/Wallpaper/meta.toml
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										7
									
								
								src/Advanced/Wallpaper/meta.toml
									
									
									
									
									
										Normal file
									
								
							@ -0,0 +1,7 @@
 | 
			
		||||
[metadata]
 | 
			
		||||
title = "Wallpaper Symmetries"
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
[publish]
 | 
			
		||||
handout = true
 | 
			
		||||
solutions = true
 | 
			
		||||
							
								
								
									
										131
									
								
								src/Advanced/Wallpaper/parts/00 intro.typ
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										131
									
								
								src/Advanced/Wallpaper/parts/00 intro.typ
									
									
									
									
									
										Normal file
									
								
							@ -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.
 | 
			
		||||
])
 | 
			
		||||
							
								
								
									
										99
									
								
								src/Advanced/Wallpaper/parts/01 reflect.typ
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										99
									
								
								src/Advanced/Wallpaper/parts/01 reflect.typ
									
									
									
									
									
										Normal file
									
								
							@ -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)
 | 
			
		||||
							
								
								
									
										
											BIN
										
									
								
								src/Advanced/Wallpaper/res/*632-a.png
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										
											BIN
										
									
								
								src/Advanced/Wallpaper/res/*632-a.png
									
									
									
									
									
										Normal file
									
								
							
										
											Binary file not shown.
										
									
								
							| 
		 After Width: | Height: | Size: 484 KiB  | 
							
								
								
									
										
											BIN
										
									
								
								src/Advanced/Wallpaper/res/*632-b.png
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										
											BIN
										
									
								
								src/Advanced/Wallpaper/res/*632-b.png
									
									
									
									
									
										Normal file
									
								
							
										
											Binary file not shown.
										
									
								
							| 
		 After Width: | Height: | Size: 280 KiB  | 
							
								
								
									
										86
									
								
								src/Advanced/Wallpaper/res/escher/pmm.svg
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										86
									
								
								src/Advanced/Wallpaper/res/escher/pmm.svg
									
									
									
									
									
										Normal file
									
								
							@ -0,0 +1,86 @@
 | 
			
		||||
<?xml version="1.0" standalone="no"?>
 | 
			
		||||
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 20001102//EN" "http://www.w3.org/TR/2000/CR-SVG-20001102/DTD/svg-20001102.dtd">
 | 
			
		||||
<svg xmlns:svg="http://www.w3.org/2000/svg" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="10.16cm" height="5.08cm" viewBox="0 0 384 192">
 | 
			
		||||
<title>pmm</title>
 | 
			
		||||
<desc>Exported by Tess 1.70.</desc>
 | 
			
		||||
<clipPath id="mainclip"><rect x="0" y="0" width="384" height="192"/></clipPath>
 | 
			
		||||
<g style="fill-rule:evenodd; stroke-linejoin:round; stroke-linecap:round; clip-path:url(#mainclip)">
 | 
			
		||||
<defs>
 | 
			
		||||
<g id="Tess0p">
 | 
			
		||||
<path d="
 | 
			
		||||
M7.1306642022,-41.0013191628 
 | 
			
		||||
L7.1306642022,-7.1306642022 
 | 
			
		||||
L89.1333025278,-7.1306642022 
 | 
			
		||||
L7.1306642022,-42.7839852134 
 | 
			
		||||
"/></g>
 | 
			
		||||
<g id="Tess0" style="fill:none; stroke:none"><use xlink:href="#Tess0p"/></g>
 | 
			
		||||
<g id="Tess1" style="fill:none; stroke:rgb(0,0,0); stroke-width:1.7826660506"><use xlink:href="#Tess0p"/></g>
 | 
			
		||||
</defs>
 | 
			
		||||
<g transform="translate(192,96) rotate(0) scale(0.5609575611,0.5609575611)">
 | 
			
		||||
<g transform="translate(-405.2631578947,-100)"><use xlink:href="#Tess1"/></g>
 | 
			
		||||
<g transform="translate(-405.2631578947,0)"><use xlink:href="#Tess1"/></g>
 | 
			
		||||
<g transform="translate(-405.2631578947,100)"><use xlink:href="#Tess1"/></g>
 | 
			
		||||
<g transform="translate(-405.2631578947,200)"><use xlink:href="#Tess1"/></g>
 | 
			
		||||
<g transform="translate(-202.6315789474,-100)"><use xlink:href="#Tess1"/></g>
 | 
			
		||||
<g transform="translate(-202.6315789474,0)"><use xlink:href="#Tess1"/></g>
 | 
			
		||||
<g transform="translate(-202.6315789474,100)"><use xlink:href="#Tess1"/></g>
 | 
			
		||||
<g transform="translate(-202.6315789474,200)"><use xlink:href="#Tess1"/></g>
 | 
			
		||||
<g transform="translate(0,-100)"><use xlink:href="#Tess1"/></g>
 | 
			
		||||
<g><use xlink:href="#Tess1"/></g>
 | 
			
		||||
<g transform="translate(0,100)"><use xlink:href="#Tess1"/></g>
 | 
			
		||||
<g transform="translate(0,200)"><use xlink:href="#Tess1"/></g>
 | 
			
		||||
<g transform="translate(202.6315789474,-100)"><use xlink:href="#Tess1"/></g>
 | 
			
		||||
<g transform="translate(202.6315789474,0)"><use xlink:href="#Tess1"/></g>
 | 
			
		||||
<g transform="translate(202.6315789474,100)"><use xlink:href="#Tess1"/></g>
 | 
			
		||||
<g transform="translate(202.6315789474,200)"><use xlink:href="#Tess1"/></g>
 | 
			
		||||
<g transform="translate(-202.6315789474,-200) rotate(180)"><use xlink:href="#Tess1"/></g>
 | 
			
		||||
<g transform="translate(-202.6315789474,-100) rotate(180)"><use xlink:href="#Tess1"/></g>
 | 
			
		||||
<g transform="translate(-202.6315789474,0) rotate(180)"><use xlink:href="#Tess1"/></g>
 | 
			
		||||
<g transform="translate(-202.6315789474,100) rotate(180)"><use xlink:href="#Tess1"/></g>
 | 
			
		||||
<g transform="translate(0,-200) rotate(180)"><use xlink:href="#Tess1"/></g>
 | 
			
		||||
<g transform="translate(0,-100) rotate(180)"><use xlink:href="#Tess1"/></g>
 | 
			
		||||
<g transform="rotate(180)"><use xlink:href="#Tess1"/></g>
 | 
			
		||||
<g transform="translate(0,100) rotate(180)"><use xlink:href="#Tess1"/></g>
 | 
			
		||||
<g transform="translate(202.6315789474,-200) rotate(180)"><use xlink:href="#Tess1"/></g>
 | 
			
		||||
<g transform="translate(202.6315789474,-100) rotate(180)"><use xlink:href="#Tess1"/></g>
 | 
			
		||||
<g transform="translate(202.6315789474,0) rotate(180)"><use xlink:href="#Tess1"/></g>
 | 
			
		||||
<g transform="translate(202.6315789474,100) rotate(180)"><use xlink:href="#Tess1"/></g>
 | 
			
		||||
<g transform="translate(405.2631578947,-200) rotate(180)"><use xlink:href="#Tess1"/></g>
 | 
			
		||||
<g transform="translate(405.2631578947,-100) rotate(180)"><use xlink:href="#Tess1"/></g>
 | 
			
		||||
<g transform="translate(405.2631578947,0) rotate(180)"><use xlink:href="#Tess1"/></g>
 | 
			
		||||
<g transform="translate(405.2631578947,100) rotate(180)"><use xlink:href="#Tess1"/></g>
 | 
			
		||||
<g transform="translate(-202.6315789474,-100) rotate(180) scale(1,-1)"><use xlink:href="#Tess1"/></g>
 | 
			
		||||
<g transform="translate(-202.6315789474,0) rotate(180) scale(1,-1)"><use xlink:href="#Tess1"/></g>
 | 
			
		||||
<g transform="translate(-202.6315789474,100) rotate(180) scale(1,-1)"><use xlink:href="#Tess1"/></g>
 | 
			
		||||
<g transform="translate(-202.6315789474,200) rotate(180) scale(1,-1)"><use xlink:href="#Tess1"/></g>
 | 
			
		||||
<g transform="translate(0,-100) rotate(180) scale(1,-1)"><use xlink:href="#Tess1"/></g>
 | 
			
		||||
<g transform="rotate(180) scale(1,-1)"><use xlink:href="#Tess1"/></g>
 | 
			
		||||
<g transform="translate(0,100) rotate(180) scale(1,-1)"><use xlink:href="#Tess1"/></g>
 | 
			
		||||
<g transform="translate(0,200) rotate(180) scale(1,-1)"><use xlink:href="#Tess1"/></g>
 | 
			
		||||
<g transform="translate(202.6315789474,-100) rotate(180) scale(1,-1)"><use xlink:href="#Tess1"/></g>
 | 
			
		||||
<g transform="translate(202.6315789474,0) rotate(180) scale(1,-1)"><use xlink:href="#Tess1"/></g>
 | 
			
		||||
<g transform="translate(202.6315789474,100) rotate(180) scale(1,-1)"><use xlink:href="#Tess1"/></g>
 | 
			
		||||
<g transform="translate(202.6315789474,200) rotate(180) scale(1,-1)"><use xlink:href="#Tess1"/></g>
 | 
			
		||||
<g transform="translate(405.2631578947,-100) rotate(180) scale(1,-1)"><use xlink:href="#Tess1"/></g>
 | 
			
		||||
<g transform="translate(405.2631578947,0) rotate(180) scale(1,-1)"><use xlink:href="#Tess1"/></g>
 | 
			
		||||
<g transform="translate(405.2631578947,100) rotate(180) scale(1,-1)"><use xlink:href="#Tess1"/></g>
 | 
			
		||||
<g transform="translate(405.2631578947,200) rotate(180) scale(1,-1)"><use xlink:href="#Tess1"/></g>
 | 
			
		||||
<g transform="translate(-405.2631578947,-200) scale(1,-1)"><use xlink:href="#Tess1"/></g>
 | 
			
		||||
<g transform="translate(-405.2631578947,-100) scale(1,-1)"><use xlink:href="#Tess1"/></g>
 | 
			
		||||
<g transform="translate(-405.2631578947,0) scale(1,-1)"><use xlink:href="#Tess1"/></g>
 | 
			
		||||
<g transform="translate(-405.2631578947,100) scale(1,-1)"><use xlink:href="#Tess1"/></g>
 | 
			
		||||
<g transform="translate(-202.6315789474,-200) scale(1,-1)"><use xlink:href="#Tess1"/></g>
 | 
			
		||||
<g transform="translate(-202.6315789474,-100) scale(1,-1)"><use xlink:href="#Tess1"/></g>
 | 
			
		||||
<g transform="translate(-202.6315789474,0) scale(1,-1)"><use xlink:href="#Tess1"/></g>
 | 
			
		||||
<g transform="translate(-202.6315789474,100) scale(1,-1)"><use xlink:href="#Tess1"/></g>
 | 
			
		||||
<g transform="translate(0,-200) scale(1,-1)"><use xlink:href="#Tess1"/></g>
 | 
			
		||||
<g transform="translate(0,-100) scale(1,-1)"><use xlink:href="#Tess1"/></g>
 | 
			
		||||
<g transform="scale(1,-1)"><use xlink:href="#Tess1"/></g>
 | 
			
		||||
<g transform="translate(0,100) scale(1,-1)"><use xlink:href="#Tess1"/></g>
 | 
			
		||||
<g transform="translate(202.6315789474,-200) scale(1,-1)"><use xlink:href="#Tess1"/></g>
 | 
			
		||||
<g transform="translate(202.6315789474,-100) scale(1,-1)"><use xlink:href="#Tess1"/></g>
 | 
			
		||||
<g transform="translate(202.6315789474,0) scale(1,-1)"><use xlink:href="#Tess1"/></g>
 | 
			
		||||
<g transform="translate(202.6315789474,100) scale(1,-1)"><use xlink:href="#Tess1"/></g>
 | 
			
		||||
</g>
 | 
			
		||||
</g>
 | 
			
		||||
</svg>
 | 
			
		||||
| 
		 After Width: | Height: | Size: 6.3 KiB  | 
		Reference in New Issue
	
	Block a user