#set document(title: "10.5 Tessellations", author: "OpenStax / XYZ Homework") #set page(width: 8.5in, height: auto, margin: 1in) #import "@preview/cetz:0.5.2" #set text(font: ("STIX Two Text", "Libertinus Serif", "New Computer Modern"), size: 10.5pt, lang: "en") #show math.equation: set text(font: ("STIX Two Math", "New Computer Modern Math")) #set par(justify: true, leading: 0.62em, spacing: 0.9em) #set enum(spacing: 1.1em) // room between list items so tall inline fractions don't collide #set list(spacing: 1.1em) #set table(stroke: 0.5pt + rgb("#c7ccd3")) #let BLUE = rgb("#183B6F") // brand navy — section bars + example/solution labels (white on navy 11.09:1) #let ORANGE = rgb("#A94509") // brand primary-700 — AA-safe deep orange for TEXT (5.93:1 on white; raw brand #F37021 is 2.94:1 and must never carry text) #let RED = rgb("#DC2626") // brand error-600 #let GREEN = rgb("#059669") // brand success-600 (decoration only; small green text uses green-text #007942) #show heading.where(level: 1): it => block(width: 100%, above: 0pt, below: 16pt, fill: gradient.linear(BLUE, rgb("#2C5AA0")), inset: (x: 14pt, y: 12pt), radius: 3pt, text(fill: white, weight: "bold", size: 19pt, it.body)) #show heading.where(level: 2): it => block(width: 100%, above: 18pt, below: 10pt, fill: BLUE, inset: (x: 10pt, y: 6pt), radius: 2pt, text(fill: white, weight: "bold", size: 12pt, it.body)) #show heading.where(level: 3): it => text(fill: ORANGE, weight: "bold", size: 12.5pt, it.body) #show heading.where(level: 4): it => text(fill: BLUE, weight: "bold", size: 10.5pt, it.body) #let examplebox(label, title, body) = block(width: 100%, breakable: true, fill: rgb("#EFF1F5"), stroke: 0.5pt + rgb("#CFDDF0"), radius: 4pt, inset: 10pt, above: 12pt, below: 12pt)[ #block(below: 6pt)[#box(fill: BLUE, inset: (x: 6pt, y: 2pt), radius: 2pt, text(fill: white, weight: "bold", size: 8.5pt, label)) #h(0.4em) #strong[#title]] #body] // rail = decorative left rule (raw brand token); labelcolor = AA-safe label text shade #let notebox(label, rail, labelcolor, tint, body) = block(width: 100%, breakable: true, fill: tint, stroke: (left: 3pt + rail), inset: (left: 10pt, rest: 8pt), radius: (right: 4pt), above: 11pt, below: 11pt)[ #text(fill: labelcolor, weight: "bold", size: 7.5pt, tracking: 0.5pt)[#upper(label)] #linebreak() #body] #let solutionbox(body) = block(above: 4pt, below: 8pt)[ #text(fill: BLUE, weight: "bold", size: 8.5pt)[Solution] #linebreak() #body] #let figph(msg) = block(width: 100%, height: 60pt, fill: rgb("#f6f7f9"), stroke: (paint: rgb("#c7ccd3"), dash: "dashed"), radius: 4pt, inset: 10pt)[ #align(center + horizon, text(fill: rgb("#889"), style: "italic", size: 9pt, msg))] // Standardize inlined figure sizes: measure the natural CeTZ canvas, then scale to a // consistent envelope (aspect-aware; see build_typst.py FIG_* constants). Unlike the // print preamble, dimensions are FLOORED: in an editor a user can trim a figure to a // degenerate 1-D shape (a bare line), and w/h or tw/w would then divide by zero. #let _STD_W = 3.5 #let _WIDE_W = 5.6 #let _MAX_H = 3.4 #let _ASPECT_WIDE = 2.2 #let _UPSCALE_MAX = 1.15 #let stdfig(body) = context { let m = measure(body) let w = calc.max(m.width / 1in, 0.01) let h = calc.max(m.height / 1in, 0.01) let tw = if w / h > _ASPECT_WIDE { _WIDE_W } else { _STD_W } let s = calc.min(tw / w, _MAX_H / h, _UPSCALE_MAX) align(center, box(scale(x: s * 100%, y: s * 100%, reflow: true, body))) } #show figure: set block(breakable: false) #set figure(gap: 8pt) #show figure.caption: set text(size: 8.5pt, fill: rgb("#555")) == 10.5#h(0.6em)Tessellations #figure(figph[A penrose tiling made up of parallelograms.], alt: "A penrose tiling made up of parallelograms.", caption: [Penrose tiling represents one type of tessellation.]) === Learning Objectives After completing this section, you should be able to: + Apply translations, rotations, and reflections. + Determine if a shape tessellates. The illustration shown above is an unusual pattern called a Penrose tiling. Notice that there are two types of shapes used throughout the pattern: smaller green parallelograms and larger blue parallelograms. What's interesting about this design is that although it uses only two shapes over and over, there is no repeating pattern. In this section, we will focus on patterns that do repeat. Repeated patterns are found in architecture, fabric, floor tiles, wall patterns, rug patterns, and many unexpected places as well. It may be a simple hexagon-shaped floor tile, or a complex pattern composed of several different motifs. These two-dimensional designs are called regular (or periodic) #strong[tessellations]. There are countless designs that may be classified as regular tessellations, and they all have one thing in common—their patterns repeat and cover the plane. We will explore how tessellations are created and experiment with making some of our own as well. The topic of tessellations belongs to a field in mathematics called transformational geometry, which is a study of the ways objects can be moved while retaining the same shape and size. These movements are termed #emph[rigid motions] and #emph[symmetries]. #notebox("Who Knew?", rgb("#183B6F"), rgb("#183B6F"), rgb("#EFF1F5"))[ #emph[M. C. Escher] A good place to start the study of tessellations is with the work of M. C. Escher. The Dutch graphic artist was famous for the dimensional illusions he created in his woodcuts and lithographs, and that theme is carried out in many of his tessellations as well. Escher became obsessed with the idea of the “regular division of the plane.” He sought ways to divide the plane with shapes that would fit snugly next to each other with no gaps or overlaps, represent beautiful patterns, and could be repeated infinitely to fill the plane. He experimented with practically every geometric shape imaginable and found the ones that would produce a regular division of the plane. The idea is similar to dividing a number by one of its factors. When a number divides another number evenly, there are no remainders, like there are no gaps when a shape divides or fills the plane. Escher went far beyond geometric shapes, beyond triangles and polygons, beyond irregular polygons, and used other shapes like figures, faces, animals, fish, and practically any type of object to achieve his goal; and he did achieve it, beautifully, and left it for the ages to appreciate. ] #notebox("Video", rgb("#DC2626"), rgb("#DC2626"), rgb("#f7f8fa"))[ #link("https://openstax.org/r/create_tessellation")[M.C. Escher: How to Create a Tessellation] #link("https://openstax.org/r/mathematical_art")[The Mathematical Art of M.C. Escher] ] === Tessellation Properties and Transformations A regular tessellation means that the pattern is made up of congruent regular polygons, same size and shape, including #emph[some type of movement]; that is, some type of transformation or symmetry. Here we consider the rigid motions of translations, rotations, reflections, or glide reflections. A plane of tessellations has the following properties: - Patterns are repeated and fill the plane. - There are no gaps or overlaps. Shapes must fit together perfectly. (It was Escher who determined that a proper tessellation could have no gaps and no overlaps.) - Shapes are combined using a transformation. - All the shapes are joined at a vertex. In other words, if you were to draw a circle around a vertex, it would include a corner of each shape touching at that vertex. - For a tessellation of regular congruent polygons, the sum of the measures of the interior angles that meet at a vertex equals #math.equation(block: false, alt: "360 degrees .")[$360^(∘) .$] In , the tessellation is made up of squares. There are four squares meeting at a vertex. An interior angle of a square is #math.equation(block: false, alt: "90 degrees")[$90^(∘)$] and the sum of four interior angles is #math.equation(block: false, alt: "360 degrees .")[$360^(∘) .$] In , the tessellation is made up of regular hexagons. There are three hexagons meeting at each vertex. The interior angle of a hexagon is #math.equation(block: false, alt: "120 degrees ,")[$120^(∘) ,$] and the sum of three interior angles is #math.equation(block: false, alt: "360 degrees .")[$360^(∘) .$] Both tessellations will fill the plane, there are no gaps, the sum of the interior angle meeting at the vertex is #math.equation(block: false, alt: "360 degrees ,")[$360^(∘) ,$] and both are achieved by translation transformations. These tessellations work because all the properties of a tessellation are present. #figure(figph[A square grid is made up of four rows of four squares, each. Points are marked at the bottom-right vertices of the first, second, and third squares in the first row. The second point is outlined. Points are marked at the bottom-right vertices of the first and third squares in the third row.], alt: "A square grid is made up of four rows of four squares, each. Points are marked at the bottom-right vertices of the first, second, and third squares in the first row. The second point is outlined. Points are marked at the bottom-right vertices of the first and third squares in the third row.", caption: [Tessellation – Squares]) #figure(figph[A tessellation pattern is made up of 23 hexagons. Eight points are marked at eight different vertices. One of the points is outlined.], alt: "A tessellation pattern is made up of 23 hexagons. Eight points are marked at eight different vertices. One of the points is outlined.", caption: [Tessellation – Hexagons]) The movements or rigid motions of the shapes that define tessellations are classified as translations, rotations, reflections, or glide reflections. Let’s first define these movements and then look at some examples showing how these transformations are revealed. ==== Translation A #strong[translation] is a movement that shifts the shape vertically, horizontally, or on the diagonal. Consider the trapezoid #math.equation(block: false, alt: "A B C D")[$A B C D$] in . We have translated it 3 units to the right and 3 units up. That means every corner is moved by the number of units and in the direction specified. Mathematicians will indicate this movement with a vector, an arrow that is drawn to illustrate the criteria and the magnitude of the translation. The location of the translated trapezoid is marked with the vertices, #math.equation(block: false, alt: "A prime B prime C prime D prime ,")[$A^(′) B^(′) C^(′) D^(′) ,$] but it is still the exact same shape and size as the original trapezoid #math.equation(block: false, alt: "A B C D")[$A B C D$]. #figure( stdfig([#grid(columns: 2, gutter: 1.5em, [#cetz.canvas({ import cetz.draw: * content((100.00pt, 180.67pt), text(font: sys.inputs.at("title-font", default: "STIX Two Text"), size: 11pt)[Original trapezoid ABCD]) line((0.00pt, 0.00pt), (0.00pt, 166.67pt), stroke: (paint: rgb("#B6D4DA"), thickness: 0.4pt)) line((33.33pt, 0.00pt), (33.33pt, 166.67pt), stroke: (paint: rgb("#B6D4DA"), thickness: 0.4pt)) line((66.67pt, 0.00pt), (66.67pt, 166.67pt), stroke: (paint: rgb("#B6D4DA"), thickness: 0.4pt)) line((100.00pt, 0.00pt), (100.00pt, 166.67pt), stroke: (paint: rgb("#B6D4DA"), thickness: 0.4pt)) line((133.33pt, 0.00pt), (133.33pt, 166.67pt), stroke: (paint: rgb("#B6D4DA"), thickness: 0.4pt)) line((166.67pt, 0.00pt), (166.67pt, 166.67pt), stroke: (paint: rgb("#B6D4DA"), thickness: 0.4pt)) line((200.00pt, 0.00pt), (200.00pt, 166.67pt), stroke: (paint: rgb("#B6D4DA"), thickness: 0.4pt)) line((0.00pt, 0.00pt), (200.00pt, 0.00pt), stroke: (paint: rgb("#B6D4DA"), thickness: 0.4pt)) line((0.00pt, 33.33pt), (200.00pt, 33.33pt), stroke: (paint: rgb("#B6D4DA"), thickness: 0.4pt)) line((0.00pt, 66.67pt), (200.00pt, 66.67pt), stroke: (paint: rgb("#B6D4DA"), thickness: 0.4pt)) line((0.00pt, 100.00pt), (200.00pt, 100.00pt), stroke: (paint: rgb("#B6D4DA"), thickness: 0.4pt)) line((0.00pt, 133.33pt), (200.00pt, 133.33pt), stroke: (paint: rgb("#B6D4DA"), thickness: 0.4pt)) line((0.00pt, 166.67pt), (200.00pt, 166.67pt), stroke: (paint: rgb("#B6D4DA"), thickness: 0.4pt)) line((66.67pt, 133.33pt), (133.33pt, 133.33pt), (33.33pt, 33.33pt), (166.67pt, 33.33pt), close: true, fill: none, stroke: 0.7pt + black) content((100.00pt, 142.33pt), anchor: "south", text(size: 9pt)[AB]) content((74.33pt, 83.33pt), anchor: "east", text(size: 9pt)[BC]) content((100.00pt, 24.33pt), anchor: "north", text(size: 9pt)[CD]) content((125.67pt, 83.33pt), anchor: "west", text(size: 9pt)[DA]) content((66.67pt, 137.33pt), anchor: "south", text(size: 9pt)[A]) content((133.33pt, 137.33pt), anchor: "south", text(size: 9pt)[B]) content((29.33pt, 29.33pt), anchor: "north-east", text(size: 9pt)[C]) content((162.67pt, 29.33pt), anchor: "north-east", text(size: 9pt)[D]) })], [#cetz.canvas({ import cetz.draw: * content((100.00pt, 180.67pt), text(font: sys.inputs.at("title-font", default: "STIX Two Text"), size: 11pt)[Translated trapezoid A′B′C′D′]) line((0.00pt, 0.00pt), (0.00pt, 166.67pt), stroke: (paint: rgb("#B6D4DA"), thickness: 0.4pt)) line((33.33pt, 0.00pt), (33.33pt, 166.67pt), stroke: (paint: rgb("#B6D4DA"), thickness: 0.4pt)) line((66.67pt, 0.00pt), (66.67pt, 166.67pt), stroke: (paint: rgb("#B6D4DA"), thickness: 0.4pt)) line((100.00pt, 0.00pt), (100.00pt, 166.67pt), stroke: (paint: rgb("#B6D4DA"), thickness: 0.4pt)) line((133.33pt, 0.00pt), (133.33pt, 166.67pt), stroke: (paint: rgb("#B6D4DA"), thickness: 0.4pt)) line((166.67pt, 0.00pt), (166.67pt, 166.67pt), stroke: (paint: rgb("#B6D4DA"), thickness: 0.4pt)) line((200.00pt, 0.00pt), (200.00pt, 166.67pt), stroke: (paint: rgb("#B6D4DA"), thickness: 0.4pt)) line((0.00pt, 0.00pt), (200.00pt, 0.00pt), stroke: (paint: rgb("#B6D4DA"), thickness: 0.4pt)) line((0.00pt, 33.33pt), (200.00pt, 33.33pt), stroke: (paint: rgb("#B6D4DA"), thickness: 0.4pt)) line((0.00pt, 66.67pt), (200.00pt, 66.67pt), stroke: (paint: rgb("#B6D4DA"), thickness: 0.4pt)) line((0.00pt, 100.00pt), (200.00pt, 100.00pt), stroke: (paint: rgb("#B6D4DA"), thickness: 0.4pt)) line((0.00pt, 133.33pt), (200.00pt, 133.33pt), stroke: (paint: rgb("#B6D4DA"), thickness: 0.4pt)) line((0.00pt, 166.67pt), (200.00pt, 166.67pt), stroke: (paint: rgb("#B6D4DA"), thickness: 0.4pt)) line((66.67pt, 133.33pt), (133.33pt, 133.33pt), (33.33pt, 33.33pt), (166.67pt, 33.33pt), close: true, fill: none, stroke: 0.7pt + black) content((100.00pt, 142.33pt), anchor: "south", text(size: 9pt)[A′B′]) content((74.33pt, 83.33pt), anchor: "east", text(size: 9pt)[B′C′]) content((100.00pt, 24.33pt), anchor: "north", text(size: 9pt)[C′D′]) content((125.67pt, 83.33pt), anchor: "west", text(size: 9pt)[D′A′]) content((66.67pt, 137.33pt), anchor: "south", text(size: 9pt)[A′]) content((133.33pt, 137.33pt), anchor: "south", text(size: 9pt)[B′]) content((29.33pt, 29.33pt), anchor: "north-east", text(size: 9pt)[C′]) content((162.67pt, 29.33pt), anchor: "north-east", text(size: 9pt)[D′]) })] )]), alt: "A trapezoid is translated on a rectangular grid. The vertices of the original trapezoid are A, B, C, and D. The trapezoid can be described as follows. The top side measures 2 units. From its right, it goes 3 units bottom-right, then goes 4 units left, and then goes 3 units to the top-right. The trapezoid is translated 3 units to the right and 3 units up. The vertices of the translated trapezoid are A prime, B prime, C prime, and D prime.", caption: [Translation], ) #examplebox("Example 1")[Creating a Translation][ Suppose you have a hexagon on a grid as in . Translate the hexagon 5 units to the right and 3 units up. #figure( stdfig([#cetz.canvas({ import cetz.draw: * line((28.75pt, 34.00pt), (86.25pt, 34.00pt), stroke: 0.7pt + black) line((86.25pt, 34.00pt), (143.75pt, 34.00pt), stroke: 0.7pt + black) line((143.75pt, 34.00pt), (143.75pt, 136.00pt), stroke: 0.7pt + black) line((143.75pt, 136.00pt), (86.25pt, 136.00pt), stroke: 0.7pt + black) line((86.25pt, 136.00pt), (28.75pt, 136.00pt), stroke: 0.7pt + black) line((28.75pt, 136.00pt), (28.75pt, 34.00pt), stroke: 0.7pt + black) circle((28.75pt, 34.00pt), radius: 3.0pt, fill: black, stroke: none) content((28.75pt, 44.00pt), anchor: "south", text(size: 8pt)[A]) circle((86.25pt, 34.00pt), radius: 3.0pt, fill: black, stroke: none) content((86.25pt, 44.00pt), anchor: "south", text(size: 8pt)[B]) circle((143.75pt, 34.00pt), radius: 3.0pt, fill: black, stroke: none) content((143.75pt, 44.00pt), anchor: "south", text(size: 8pt)[C]) circle((143.75pt, 136.00pt), radius: 3.0pt, fill: black, stroke: none) content((153.75pt, 136.00pt), anchor: "west", text(size: 8pt)[D]) circle((86.25pt, 136.00pt), radius: 3.0pt, fill: black, stroke: none) content((86.25pt, 146.00pt), anchor: "south", text(size: 8pt)[E]) circle((28.75pt, 136.00pt), radius: 3.0pt, fill: black, stroke: none) content((28.75pt, 146.00pt), anchor: "south", text(size: 8pt)[F]) line((0.00pt, 34.00pt), (234.00pt, 34.00pt), stroke: 0.7pt + black, mark: (end: ">", fill: black, size: 0.18)) line((28.75pt, 0.00pt), (28.75pt, 174.00pt), stroke: 0.7pt + black, mark: (end: ">", fill: black, size: 0.18)) line((0.00pt, 34.00pt), (0.00pt, 31.00pt), stroke: 0.5pt + black) content((0.00pt, 29.00pt), anchor: "north", text(size: 8pt)[−1]) line((57.50pt, 34.00pt), (57.50pt, 31.00pt), stroke: 0.5pt + black) content((57.50pt, 29.00pt), anchor: "north", text(size: 8pt)[1]) line((86.25pt, 34.00pt), (86.25pt, 31.00pt), stroke: 0.5pt + black) content((86.25pt, 24.50pt), anchor: "north", text(size: 8pt)[2]) line((115.00pt, 34.00pt), (115.00pt, 31.00pt), stroke: 0.5pt + black) content((115.00pt, 29.00pt), anchor: "north", text(size: 8pt)[3]) line((143.75pt, 34.00pt), (143.75pt, 31.00pt), stroke: 0.5pt + black) content((143.75pt, 24.50pt), anchor: "north", text(size: 8pt)[4]) line((172.50pt, 34.00pt), (172.50pt, 31.00pt), stroke: 0.5pt + black) content((172.50pt, 29.00pt), anchor: "north", text(size: 8pt)[5]) line((201.25pt, 34.00pt), (201.25pt, 31.00pt), stroke: 0.5pt + black) content((201.25pt, 29.00pt), anchor: "north", text(size: 8pt)[6]) line((230.00pt, 34.00pt), (230.00pt, 31.00pt), stroke: 0.5pt + black) content((230.00pt, 29.00pt), anchor: "north", text(size: 8pt)[7]) line((25.75pt, 0.00pt), (28.75pt, 0.00pt), stroke: 0.5pt + black) content((23.75pt, 0.00pt), anchor: "east", text(size: 8pt)[−1]) line((25.75pt, 68.00pt), (28.75pt, 68.00pt), stroke: 0.5pt + black) content((23.75pt, 68.00pt), anchor: "east", text(size: 8pt)[1]) line((25.75pt, 102.00pt), (28.75pt, 102.00pt), stroke: 0.5pt + black) content((23.75pt, 102.00pt), anchor: "east", text(size: 8pt)[2]) line((25.75pt, 136.00pt), (28.75pt, 136.00pt), stroke: 0.5pt + black) content((19.25pt, 136.00pt), anchor: "east", text(size: 8pt)[3]) line((25.75pt, 170.00pt), (28.75pt, 170.00pt), stroke: 0.5pt + black) content((23.75pt, 170.00pt), anchor: "east", text(size: 8pt)[4]) })]), alt: "Hexagon, A B C D E F is plotted on a grid. The bottom and top sides, A F and C D measure 3 units, each. The other sides, C B, B A, D E, and E F measure 2 units, each.", caption: none, ) #solutionbox[ The best way to do this is by translating the individual points #math.equation(block: false, alt: "A , B , C , D , E , F")[$A , B , C , D , E , F$]. Once translated, the points become #math.equation(block: false, alt: "A prime , B prime , C prime , D prime , E prime , F prime .")[$A^(′) , B^(′) , C^(′) , D^(′) , E^(′) , F^(′) .$] #figure( stdfig([#cetz.canvas({ import cetz.draw: * content((115.00pt, 192.00pt), text(font: sys.inputs.at("title-font", default: "STIX Two Text"), size: 11pt)[Hexagon Translation]) line((19.17pt, 21.25pt), (57.50pt, 21.25pt), stroke: 0.7pt + black) line((57.50pt, 21.25pt), (95.83pt, 63.75pt), stroke: 0.7pt + black) line((95.83pt, 63.75pt), (95.83pt, 106.25pt), stroke: 0.7pt + black) line((95.83pt, 106.25pt), (57.50pt, 106.25pt), stroke: 0.7pt + black) line((57.50pt, 106.25pt), (19.17pt, 63.75pt), stroke: 0.7pt + black) line((19.17pt, 63.75pt), (19.17pt, 21.25pt), stroke: 0.7pt + black) line((115.00pt, 85.00pt), (153.33pt, 85.00pt), stroke: 0.7pt + black) line((153.33pt, 85.00pt), (191.67pt, 127.50pt), stroke: 0.7pt + black) line((191.67pt, 127.50pt), (191.67pt, 170.00pt), stroke: 0.7pt + black) line((191.67pt, 170.00pt), (153.33pt, 170.00pt), stroke: 0.7pt + black) line((153.33pt, 170.00pt), (115.00pt, 127.50pt), stroke: 0.7pt + black) line((115.00pt, 127.50pt), (115.00pt, 85.00pt), stroke: 0.7pt + black) circle((19.17pt, 21.25pt), radius: 3.0pt, fill: black, stroke: none) content((19.17pt, 31.25pt), anchor: "south", text(size: 8pt)[A]) circle((57.50pt, 21.25pt), radius: 3.0pt, fill: black, stroke: none) content((57.50pt, 31.25pt), anchor: "south", text(size: 8pt)[B]) circle((95.83pt, 63.75pt), radius: 3.0pt, fill: black, stroke: none) content((88.41pt, 70.45pt), anchor: "south-east", text(size: 8pt)[C]) circle((95.83pt, 106.25pt), radius: 3.0pt, fill: black, stroke: none) content((105.83pt, 106.25pt), anchor: "west", text(size: 8pt)[D]) circle((57.50pt, 106.25pt), radius: 3.0pt, fill: black, stroke: none) content((57.50pt, 116.25pt), anchor: "south", text(size: 8pt)[E]) circle((19.17pt, 63.75pt), radius: 3.0pt, fill: black, stroke: none) content((29.17pt, 63.75pt), anchor: "west", text(size: 8pt)[F]) circle((115.00pt, 85.00pt), radius: 3.0pt, fill: black, stroke: none) content((115.00pt, 95.00pt), anchor: "south", text(size: 8pt)[A′]) circle((153.33pt, 85.00pt), radius: 3.0pt, fill: black, stroke: none) content((153.33pt, 95.00pt), anchor: "south", text(size: 8pt)[B′]) circle((191.67pt, 127.50pt), radius: 3.0pt, fill: black, stroke: none) content((184.24pt, 134.20pt), anchor: "south-east", text(size: 8pt)[C′]) circle((191.67pt, 170.00pt), radius: 3.0pt, fill: black, stroke: none) content((201.67pt, 170.00pt), anchor: "west", text(size: 8pt)[D′]) circle((153.33pt, 170.00pt), radius: 3.0pt, fill: black, stroke: none) content((153.33pt, 180.00pt), anchor: "south", text(size: 8pt)[E′]) circle((115.00pt, 127.50pt), radius: 3.0pt, fill: black, stroke: none) content((107.57pt, 134.20pt), anchor: "south-east", text(size: 8pt)[F′]) line((0.00pt, 21.25pt), (234.00pt, 21.25pt), stroke: 0.7pt + black, mark: (end: ">", fill: black, size: 0.18)) line((19.17pt, 0.00pt), (19.17pt, 174.00pt), stroke: 0.7pt + black, mark: (end: ">", fill: black, size: 0.18)) line((0.00pt, 21.25pt), (0.00pt, 18.25pt), stroke: 0.5pt + black) content((0.00pt, 16.25pt), anchor: "north", text(size: 8pt)[−1]) line((38.33pt, 21.25pt), (38.33pt, 18.25pt), stroke: 0.5pt + black) content((38.33pt, 16.25pt), anchor: "north", text(size: 8pt)[1]) line((57.50pt, 21.25pt), (57.50pt, 18.25pt), stroke: 0.5pt + black) content((57.50pt, 11.75pt), anchor: "north", text(size: 8pt)[2]) line((76.67pt, 21.25pt), (76.67pt, 18.25pt), stroke: 0.5pt + black) content((76.67pt, 16.25pt), anchor: "north", text(size: 8pt)[3]) line((95.83pt, 21.25pt), (95.83pt, 18.25pt), stroke: 0.5pt + black) content((95.83pt, 16.25pt), anchor: "north", text(size: 8pt)[4]) line((115.00pt, 21.25pt), (115.00pt, 18.25pt), stroke: 0.5pt + black) content((115.00pt, 16.25pt), anchor: "north", text(size: 8pt)[5]) line((134.17pt, 21.25pt), (134.17pt, 18.25pt), stroke: 0.5pt + black) content((134.17pt, 16.25pt), anchor: "north", text(size: 8pt)[6]) line((153.33pt, 21.25pt), (153.33pt, 18.25pt), stroke: 0.5pt + black) content((153.33pt, 16.25pt), anchor: "north", text(size: 8pt)[7]) line((172.50pt, 21.25pt), (172.50pt, 18.25pt), stroke: 0.5pt + black) content((172.50pt, 16.25pt), anchor: "north", text(size: 8pt)[8]) line((191.67pt, 21.25pt), (191.67pt, 18.25pt), stroke: 0.5pt + black) content((191.67pt, 16.25pt), anchor: "north", text(size: 8pt)[9]) line((210.83pt, 21.25pt), (210.83pt, 18.25pt), stroke: 0.5pt + black) content((210.83pt, 16.25pt), anchor: "north", text(size: 8pt)[10]) line((230.00pt, 21.25pt), (230.00pt, 18.25pt), stroke: 0.5pt + black) content((230.00pt, 16.25pt), anchor: "north", text(size: 8pt)[11]) line((16.17pt, 0.00pt), (19.17pt, 0.00pt), stroke: 0.5pt + black) content((14.17pt, 0.00pt), anchor: "east", text(size: 8pt)[−1]) line((16.17pt, 42.50pt), (19.17pt, 42.50pt), stroke: 0.5pt + black) content((14.17pt, 42.50pt), anchor: "east", text(size: 8pt)[1]) line((16.17pt, 63.75pt), (19.17pt, 63.75pt), stroke: 0.5pt + black) content((9.67pt, 63.75pt), anchor: "east", text(size: 8pt)[2]) line((16.17pt, 85.00pt), (19.17pt, 85.00pt), stroke: 0.5pt + black) content((14.17pt, 85.00pt), anchor: "east", text(size: 8pt)[3]) line((16.17pt, 106.25pt), (19.17pt, 106.25pt), stroke: 0.5pt + black) content((14.17pt, 106.25pt), anchor: "east", text(size: 8pt)[4]) line((16.17pt, 127.50pt), (19.17pt, 127.50pt), stroke: 0.5pt + black) content((14.17pt, 127.50pt), anchor: "east", text(size: 8pt)[5]) line((16.17pt, 148.75pt), (19.17pt, 148.75pt), stroke: 0.5pt + black) content((14.17pt, 148.75pt), anchor: "east", text(size: 8pt)[6]) line((16.17pt, 170.00pt), (19.17pt, 170.00pt), stroke: 0.5pt + black) content((14.17pt, 170.00pt), anchor: "east", text(size: 8pt)[7]) })]), alt: "Two hexagons are plotted on a grid. Hexagon, A B C D E F is plotted. The bottom and top sides, A F and C D measure 3 units, each. The other sides, C B, B A, D E, and E F measure 2 units, each. The hexagon is translated 5 units to the right and 3 units up. The vertices of the translated hexagon are A prime, B prime, C prime, D prime, E prime, and F prime.", caption: none, ) ] ] ==== Rotation The rotation transformation occurs when you rotate a shape about a point and at a predetermined angle. In , the triangle is rotated around the rotation point by #math.equation(block: false, alt: "90 degrees ,")[$90^(∘) ,$] and then translated 7 units up and 4 units over to the right. That means that each corner is translated to the new location by the same number of units and in the same direction. #figure( stdfig([#grid(columns: 2, gutter: 1.5em, [#cetz.canvas({ import cetz.draw: * content((100.00pt, 174.00pt), text(font: sys.inputs.at("title-font", default: "STIX Two Text"), size: 11pt)[Original Triangle]) line((0.00pt, 0.00pt), (0.00pt, 160.00pt), stroke: (paint: rgb("#B6D4DA"), thickness: 0.4pt)) line((40.00pt, 0.00pt), (40.00pt, 160.00pt), stroke: (paint: rgb("#B6D4DA"), thickness: 0.4pt)) line((80.00pt, 0.00pt), (80.00pt, 160.00pt), stroke: (paint: rgb("#B6D4DA"), thickness: 0.4pt)) line((120.00pt, 0.00pt), (120.00pt, 160.00pt), stroke: (paint: rgb("#B6D4DA"), thickness: 0.4pt)) line((160.00pt, 0.00pt), (160.00pt, 160.00pt), stroke: (paint: rgb("#B6D4DA"), thickness: 0.4pt)) line((200.00pt, 0.00pt), (200.00pt, 160.00pt), stroke: (paint: rgb("#B6D4DA"), thickness: 0.4pt)) line((0.00pt, 0.00pt), (200.00pt, 0.00pt), stroke: (paint: rgb("#B6D4DA"), thickness: 0.4pt)) line((0.00pt, 40.00pt), (200.00pt, 40.00pt), stroke: (paint: rgb("#B6D4DA"), thickness: 0.4pt)) line((0.00pt, 80.00pt), (200.00pt, 80.00pt), stroke: (paint: rgb("#B6D4DA"), thickness: 0.4pt)) line((0.00pt, 120.00pt), (200.00pt, 120.00pt), stroke: (paint: rgb("#B6D4DA"), thickness: 0.4pt)) line((0.00pt, 160.00pt), (200.00pt, 160.00pt), stroke: (paint: rgb("#B6D4DA"), thickness: 0.4pt)) line((0.00pt, 0.00pt), (160.00pt, 0.00pt), (0.00pt, 120.00pt), close: true, fill: none, stroke: 0.7pt + black) content((84.99pt, -7.49pt), anchor: "north", text(size: 9pt)[4]) content((87.20pt, 65.40pt), anchor: "west", text(size: 9pt)[3]) line((0.00pt, 0.00pt), (8.00pt, 0.00pt), (8.00pt, 8.00pt), (0.00pt, 8.00pt), close: true, stroke: 0.6pt + black, fill: none) content((9.90pt, 9.90pt), text(size: 9pt)[90°]) content((-4.00pt, -4.00pt), anchor: "north-east", text(size: 9pt)[A]) })], [#cetz.canvas({ import cetz.draw: * content((83.33pt, 214.00pt), text(font: sys.inputs.at("title-font", default: "STIX Two Text"), size: 11pt)[Rotated Triangle]) line((0.00pt, 0.00pt), (0.00pt, 200.00pt), stroke: (paint: rgb("#B6D4DA"), thickness: 0.4pt)) line((33.33pt, 0.00pt), (33.33pt, 200.00pt), stroke: (paint: rgb("#B6D4DA"), thickness: 0.4pt)) line((66.67pt, 0.00pt), (66.67pt, 200.00pt), stroke: (paint: rgb("#B6D4DA"), thickness: 0.4pt)) line((100.00pt, 0.00pt), (100.00pt, 200.00pt), stroke: (paint: rgb("#B6D4DA"), thickness: 0.4pt)) line((133.33pt, 0.00pt), (133.33pt, 200.00pt), stroke: (paint: rgb("#B6D4DA"), thickness: 0.4pt)) line((166.67pt, 0.00pt), (166.67pt, 200.00pt), stroke: (paint: rgb("#B6D4DA"), thickness: 0.4pt)) line((0.00pt, 0.00pt), (166.67pt, 0.00pt), stroke: (paint: rgb("#B6D4DA"), thickness: 0.4pt)) line((0.00pt, 33.33pt), (166.67pt, 33.33pt), stroke: (paint: rgb("#B6D4DA"), thickness: 0.4pt)) line((0.00pt, 66.67pt), (166.67pt, 66.67pt), stroke: (paint: rgb("#B6D4DA"), thickness: 0.4pt)) line((0.00pt, 100.00pt), (166.67pt, 100.00pt), stroke: (paint: rgb("#B6D4DA"), thickness: 0.4pt)) line((0.00pt, 133.33pt), (166.67pt, 133.33pt), stroke: (paint: rgb("#B6D4DA"), thickness: 0.4pt)) line((0.00pt, 166.67pt), (166.67pt, 166.67pt), stroke: (paint: rgb("#B6D4DA"), thickness: 0.4pt)) line((0.00pt, 200.00pt), (166.67pt, 200.00pt), stroke: (paint: rgb("#B6D4DA"), thickness: 0.4pt)) line((33.33pt, 33.33pt), (33.33pt, 166.67pt), (133.33pt, 33.33pt), close: true, fill: none, stroke: 0.7pt + black) content((25.84pt, 104.99pt), anchor: "east", text(size: 9pt)[4]) content((88.73pt, 107.20pt), anchor: "south", text(size: 9pt)[3]) line((33.33pt, 33.33pt), (33.33pt, 41.33pt), (41.33pt, 41.33pt), (41.33pt, 33.33pt), close: true, stroke: 0.6pt + black, fill: none) content((43.23pt, 43.23pt), text(size: 9pt)[90°]) content((29.33pt, 29.33pt), anchor: "north-east", text(size: 9pt)[A′]) })] )]), alt: "A triangle is rotated in a rectangular grid. The original triangle is plotted on a rectangular grid. The bottom-left vertex is labeled A and rotation point. The sides of the triangle measure 3 units. The base measures 4 units. The triangle is rotated 90 degrees about the rotation point. The triangle is moved 7 units up and 4 units to the right. In the rotated triangle, one of the vertices is labeled A prime.", caption: [Rotation], ) We can see that #math.equation(block: false, alt: "Δ A")[$"Δ" A$] is mapped to #math.equation(block: false, alt: "Δ A prime")[$"Δ" A^(′)$] by a rotation of #math.equation(block: false, alt: "90 degrees")[$90^(∘)$] up and to the right. If rotated again by #math.equation(block: false, alt: "90 degrees")[$90^(∘)$], the triangle would be upside down. #examplebox("Example 2")[Applying a Rotation][ illustrates a tessellation begun with an equilateral triangle. Explain how this pattern is produced. #figure( stdfig([#grid(columns: 2, gutter: 1.5em, [#cetz.canvas({ import cetz.draw: * content((88.89pt, 214.00pt), text(font: sys.inputs.at("title-font", default: "STIX Two Text"), size: 11pt)[First tessellation pattern]) line((88.89pt, 155.56pt), (155.56pt, 88.89pt), (88.89pt, 22.22pt), (22.22pt, 88.89pt), close: true, fill: none, stroke: 0.7pt + black) content((128.59pt, 128.59pt), anchor: "west", text(size: 9pt)[A]) content((128.59pt, 49.19pt), anchor: "west", text(size: 9pt)[B]) content((49.19pt, 49.19pt), anchor: "east", text(size: 9pt)[C]) line((88.89pt, 155.56pt), (155.56pt, 88.89pt), (88.89pt, 22.22pt), close: true, fill: none, stroke: 0.7pt + black) content((125.07pt, 130.76pt), anchor: "south", text(size: 9pt)[A]) content((125.07pt, 47.02pt), anchor: "north", text(size: 9pt)[B]) content((79.89pt, 88.89pt), anchor: "east", text(size: 9pt)[C]) line((88.89pt, 155.56pt), (22.22pt, 88.89pt), (88.89pt, 22.22pt), close: true, fill: none, stroke: 0.7pt + black) content((52.71pt, 130.76pt), anchor: "south", text(size: 9pt)[A]) content((52.71pt, 47.02pt), anchor: "north", text(size: 9pt)[B]) content((97.89pt, 88.89pt), anchor: "west", text(size: 9pt)[C]) line((155.56pt, 88.89pt), (88.89pt, 22.22pt), (22.22pt, 88.89pt), close: true, fill: none, stroke: 0.7pt + black) content((130.76pt, 52.71pt), anchor: "west", text(size: 9pt)[A]) content((47.02pt, 52.71pt), anchor: "east", text(size: 9pt)[B]) content((88.89pt, 97.89pt), anchor: "south", text(size: 9pt)[C]) line((88.89pt, 22.22pt), (22.22pt, 88.89pt), (88.89pt, 155.56pt), close: true, fill: none, stroke: 0.7pt + black) content((52.71pt, 47.02pt), anchor: "north", text(size: 9pt)[A]) content((52.71pt, 130.76pt), anchor: "south", text(size: 9pt)[B]) content((97.89pt, 88.89pt), anchor: "west", text(size: 9pt)[C]) line((22.22pt, 88.89pt), (88.89pt, 155.56pt), (155.56pt, 88.89pt), close: true, fill: none, stroke: 0.7pt + black) content((47.02pt, 125.07pt), anchor: "east", text(size: 9pt)[A]) content((130.76pt, 125.07pt), anchor: "west", text(size: 9pt)[B]) content((88.89pt, 79.89pt), anchor: "north", text(size: 9pt)[C]) circle((88.89pt, 88.89pt), radius: 1.8pt, fill: black, stroke: none) content((84.89pt, 84.89pt), anchor: "north-east", text(size: 9pt)[Center]) content((88.89pt, 177.78pt), anchor: "south", text(size: 9pt)[Counterclockwise arrows]) })], [#cetz.canvas({ import cetz.draw: * content((88.89pt, 214.00pt), text(font: sys.inputs.at("title-font", default: "STIX Two Text"), size: 11pt)[Second tessellation pattern]) line((22.22pt, 111.11pt), (88.89pt, 177.78pt), (155.56pt, 111.11pt), (155.56pt, 44.44pt), (88.89pt, -22.22pt), (22.22pt, 44.44pt), close: true, fill: none, stroke: 0.7pt + black) line((88.89pt, 177.78pt), (155.56pt, 111.11pt), (88.89pt, 44.44pt), (22.22pt, 111.11pt), close: true, fill: none, stroke: 0.7pt + black) line((88.89pt, 44.44pt), (22.22pt, 111.11pt), (88.89pt, 177.78pt), close: true, fill: none, stroke: 0.7pt + black) })] )]), alt: "Two tessellation patterns. The first tessellation pattern shows six equilateral triangles. The triangles are arranged in a circle and counterclockwise arrows are drawn. A point is marked at the center of the triangles. The second tessellation pattern is made up of three hexagons. Each hexagon is made up of six equilateral triangles.", caption: none, ) #solutionbox[ A rotation to the right or to the left around the vertex by #math.equation(block: false, alt: "60 degrees ,")[$60^(∘) ,$] six times, produces the hexagonal shape. The sixth rotation brings the triangle back to its original position. Then, a reflection up and another one on the diagonal will reproduce the pattern. When a shape returns to its original position by a rotation, we say that it has rotational symmetry. ] ] ==== Reflection A #strong[reflection] is the third transformation. A shape is reflected about a line and the new shape becomes a mirror image. You can reflect the shape vertically, horizontally, or on the diagonal. There are two shapes in . The quadrilateral is reflected horizontally; the arrow shape is reflected vertically. #figure( stdfig([#grid(columns: 2, gutter: 1.5em, [#cetz.canvas({ import cetz.draw: * content((100.00pt, 114.00pt), text(font: sys.inputs.at("title-font", default: "STIX Two Text"), size: 11pt)[Right trapezoid reflected vertically]) line((40.00pt, 0.00pt), (120.00pt, 0.00pt), (160.00pt, 60.00pt), (60.00pt, 60.00pt), close: true, fill: none, stroke: 0.7pt + black) content((75.98pt, -8.05pt), anchor: "north", text(size: 9pt)[4]) content((114.02pt, 68.05pt), anchor: "south", text(size: 9pt)[4]) content((41.00pt, 30.00pt), anchor: "east", text(size: 9pt)[3]) line((0.00pt, 80.00pt), (200.00pt, 80.00pt), stroke: (paint: black, thickness: 0.6pt, dash: "dashed")) })], [#cetz.canvas({ import cetz.draw: * content((100.00pt, 114.00pt), text(font: sys.inputs.at("title-font", default: "STIX Two Text"), size: 11pt)[Up arrow reflected horizontally]) line((80.00pt, 60.00pt), (100.00pt, 80.00pt), (120.00pt, 60.00pt), (100.00pt, 60.00pt), (100.00pt, 40.00pt), close: true, fill: none, stroke: 0.7pt + black) line((0.00pt, 20.00pt), (200.00pt, 20.00pt), stroke: (paint: black, thickness: 0.6pt, dash: "dashed")) })] )]), alt: "Two shapes are reflected vertically and horizontally about a dashed line. The first shape is a right trapezoid. The bottom side measures 4 units. From its left, it goes 2 and a half units, then goes 4 units top-right, and then goes 3 units down. The shape is reflected along a vertical dashed line. The second shape is an up arrow. The bottom side measures 2 units. From its left, it goes 1 unit up, then goes 1 and a quarter units left, then goes 2 and a quarter units top-right, then goes 2 and a quarter units bottom-right, then goes 1 and a quarter units left, and then goes 1 unit down. The arrow is reflected along a horizontal dashed line.", caption: [Reflection], ) ==== Glide Reflection The #strong[glide reflection] is the fourth transformation. It is a combination of a reflection and a translation. This can occur by first reflecting the shape and then gliding or translating it to its new location, or by translating first and then reflecting. The example in shows a trapezoid, which is reflected over the dashed line, so it appears upside down. Then, we shifted the shape horizontally by 6 units to the right. Whether we use the glide first or the reflection first, the end result is the same in most cases. However, the tessellation shown in the next example can only be achieved by a reflection first and then a translation. #figure( stdfig([#grid(columns: 2, gutter: 1.5em, [#cetz.canvas({ import cetz.draw: * content((100.00pt, 114.00pt), text(font: sys.inputs.at("title-font", default: "STIX Two Text"), size: 11pt)[Original trapezoid ABCD]) line((0.00pt, 0.00pt), (0.00pt, 100.00pt), stroke: (paint: rgb("#B6D4DA"), thickness: 0.4pt)) line((20.00pt, 0.00pt), (20.00pt, 100.00pt), stroke: (paint: rgb("#B6D4DA"), thickness: 0.4pt)) line((40.00pt, 0.00pt), (40.00pt, 100.00pt), stroke: (paint: rgb("#B6D4DA"), thickness: 0.4pt)) line((60.00pt, 0.00pt), (60.00pt, 100.00pt), stroke: (paint: rgb("#B6D4DA"), thickness: 0.4pt)) line((80.00pt, 0.00pt), (80.00pt, 100.00pt), stroke: (paint: rgb("#B6D4DA"), thickness: 0.4pt)) line((100.00pt, 0.00pt), (100.00pt, 100.00pt), stroke: (paint: rgb("#B6D4DA"), thickness: 0.4pt)) line((120.00pt, 0.00pt), (120.00pt, 100.00pt), stroke: (paint: rgb("#B6D4DA"), thickness: 0.4pt)) line((140.00pt, 0.00pt), (140.00pt, 100.00pt), stroke: (paint: rgb("#B6D4DA"), thickness: 0.4pt)) line((160.00pt, 0.00pt), (160.00pt, 100.00pt), stroke: (paint: rgb("#B6D4DA"), thickness: 0.4pt)) line((180.00pt, 0.00pt), (180.00pt, 100.00pt), stroke: (paint: rgb("#B6D4DA"), thickness: 0.4pt)) line((200.00pt, 0.00pt), (200.00pt, 100.00pt), stroke: (paint: rgb("#B6D4DA"), thickness: 0.4pt)) line((0.00pt, 0.00pt), (200.00pt, 0.00pt), stroke: (paint: rgb("#B6D4DA"), thickness: 0.4pt)) line((0.00pt, 20.00pt), (200.00pt, 20.00pt), stroke: (paint: rgb("#B6D4DA"), thickness: 0.4pt)) line((0.00pt, 40.00pt), (200.00pt, 40.00pt), stroke: (paint: rgb("#B6D4DA"), thickness: 0.4pt)) line((0.00pt, 60.00pt), (200.00pt, 60.00pt), stroke: (paint: rgb("#B6D4DA"), thickness: 0.4pt)) line((0.00pt, 80.00pt), (200.00pt, 80.00pt), stroke: (paint: rgb("#B6D4DA"), thickness: 0.4pt)) line((0.00pt, 100.00pt), (200.00pt, 100.00pt), stroke: (paint: rgb("#B6D4DA"), thickness: 0.4pt)) line((40.00pt, 20.00pt), (20.00pt, 80.00pt), (60.00pt, 80.00pt), (80.00pt, 20.00pt), close: true, fill: none, stroke: 0.7pt + black) content((21.00pt, 50.00pt), anchor: "east", text(size: 9pt)[AD]) content((37.15pt, 88.54pt), anchor: "south", text(size: 9pt)[AB]) content((79.00pt, 50.00pt), anchor: "west", text(size: 9pt)[BC]) content((62.85pt, 11.46pt), anchor: "north", text(size: 9pt)[CD]) line((0.00pt, 60.00pt), (200.00pt, 60.00pt), stroke: (paint: black, thickness: 0.6pt, dash: "dashed")) content((36.00pt, 16.00pt), anchor: "north-east", text(size: 9pt)[A]) content((20.00pt, 84.00pt), anchor: "south", text(size: 9pt)[B]) content((60.00pt, 84.00pt), anchor: "south", text(size: 9pt)[C]) content((76.00pt, 16.00pt), anchor: "north-east", text(size: 9pt)[D]) })], [#cetz.canvas({ import cetz.draw: * content((80.00pt, 214.00pt), text(font: sys.inputs.at("title-font", default: "STIX Two Text"), size: 11pt)[Reflected trapezoid A′B′C′D′]) line((0.00pt, 0.00pt), (0.00pt, 200.00pt), stroke: (paint: rgb("#B6D4DA"), thickness: 0.4pt)) line((40.00pt, 0.00pt), (40.00pt, 200.00pt), stroke: (paint: rgb("#B6D4DA"), thickness: 0.4pt)) line((80.00pt, 0.00pt), (80.00pt, 200.00pt), stroke: (paint: rgb("#B6D4DA"), thickness: 0.4pt)) line((120.00pt, 0.00pt), (120.00pt, 200.00pt), stroke: (paint: rgb("#B6D4DA"), thickness: 0.4pt)) line((160.00pt, 0.00pt), (160.00pt, 200.00pt), stroke: (paint: rgb("#B6D4DA"), thickness: 0.4pt)) line((0.00pt, 0.00pt), (160.00pt, 0.00pt), stroke: (paint: rgb("#B6D4DA"), thickness: 0.4pt)) line((0.00pt, 40.00pt), (160.00pt, 40.00pt), stroke: (paint: rgb("#B6D4DA"), thickness: 0.4pt)) line((0.00pt, 80.00pt), (160.00pt, 80.00pt), stroke: (paint: rgb("#B6D4DA"), thickness: 0.4pt)) line((0.00pt, 120.00pt), (160.00pt, 120.00pt), stroke: (paint: rgb("#B6D4DA"), thickness: 0.4pt)) line((0.00pt, 160.00pt), (160.00pt, 160.00pt), stroke: (paint: rgb("#B6D4DA"), thickness: 0.4pt)) line((0.00pt, 200.00pt), (160.00pt, 200.00pt), stroke: (paint: rgb("#B6D4DA"), thickness: 0.4pt)) line((80.00pt, 40.00pt), (40.00pt, 160.00pt), (120.00pt, 160.00pt), (160.00pt, 40.00pt), close: true, fill: none, stroke: 0.7pt + black) content((51.00pt, 100.00pt), anchor: "east", text(size: 9pt)[A′D′]) content((77.15pt, 168.54pt), anchor: "south", text(size: 9pt)[A′B′]) content((149.00pt, 100.00pt), anchor: "west", text(size: 9pt)[B′C′]) content((122.85pt, 31.46pt), anchor: "north", text(size: 9pt)[C′D′]) content((76.00pt, 36.00pt), anchor: "north-east", text(size: 9pt)[A′]) content((40.00pt, 164.00pt), anchor: "south", text(size: 9pt)[B′]) content((120.00pt, 164.00pt), anchor: "south", text(size: 9pt)[C′]) content((156.00pt, 36.00pt), anchor: "north-east", text(size: 9pt)[D′]) })] )]), alt: "A trapezoid is reflected across a dashed line on a rectangular grid. The original trapezoid, A B C D is described as follows. The bottom side, A D measures 4 units. The left side, A B measures 3 units. The top side, B C measures 2 units. The right side, C D measures 3 units. The original trapezoid is reflected across a dashed line above it. The reflected trapezoid is shifted 6 units to the right.", caption: [Glide Reflection], ) #examplebox("Example 3")[Applying the Glide Reflection][ An obtuse triangle is reflected about the dashed line, and the two shapes are joined together. How does the tessellation shown in materialize? #figure( stdfig([#grid(columns: 2, gutter: 1.5em, [#cetz.canvas({ import cetz.draw: * content((100.00pt, 154.00pt), text(font: sys.inputs.at("title-font", default: "STIX Two Text"), size: 11pt)[Obtuse triangle reflected about a dashed line]) line((60.00pt, 20.00pt), (140.00pt, 20.00pt), (100.00pt, 120.00pt), close: true, fill: none, stroke: 0.7pt + black) content((100.00pt, 11.00pt), anchor: "north", text(size: 9pt)[a]) content((126.91pt, 75.76pt), anchor: "west", text(size: 9pt)[b]) content((73.09pt, 75.76pt), anchor: "east", text(size: 9pt)[c]) line((60.00pt, 20.00pt), (140.00pt, 20.00pt), (100.00pt, 120.00pt), close: true, fill: none, stroke: (paint: black, thickness: 0.6pt, dash: "dashed")) content((100.00pt, 11.00pt), anchor: "north", text(size: 9pt)[a′]) content((126.91pt, 75.76pt), anchor: "west", text(size: 9pt)[b′]) content((73.09pt, 75.76pt), anchor: "east", text(size: 9pt)[c′]) line((0.00pt, 100.00pt), (200.00pt, 100.00pt), stroke: (paint: black, thickness: 0.6pt, dash: "dashed")) arc((100.00pt, 120.00pt), start: 248.20deg, stop: 291.80deg, radius: 14.00pt, anchor: "origin", stroke: 0.6pt + black) content((100.00pt, 97.00pt), text(size: 9pt)[120°]) })], [#cetz.canvas({ import cetz.draw: * content((100.00pt, 214.00pt), text(font: sys.inputs.at("title-font", default: "STIX Two Text"), size: 11pt)[Tessellation pattern of arrowheads]) line((50.00pt, 50.00pt), (150.00pt, 50.00pt), (100.00pt, 150.00pt), close: true, fill: none, stroke: 0.7pt + black) content((100.00pt, 41.00pt), anchor: "north", text(size: 9pt)[a]) content((132.49pt, 104.99pt), anchor: "west", text(size: 9pt)[b]) content((67.51pt, 104.99pt), anchor: "east", text(size: 9pt)[c]) line((50.00pt, 50.00pt), (150.00pt, 50.00pt), (100.00pt, 150.00pt), close: true, fill: none, stroke: (paint: black, thickness: 0.6pt, dash: "dashed")) content((100.00pt, 41.00pt), anchor: "north", text(size: 9pt)[a′]) content((132.49pt, 104.99pt), anchor: "west", text(size: 9pt)[b′]) content((67.51pt, 104.99pt), anchor: "east", text(size: 9pt)[c′]) })] )]), alt: "An obtuse triangle is reflected about a dashed line. The shapes are joined together and it resembles a down arrowhead. The joined shapes are reflected horizontally and it resembles an up arrowhead. A tessellation pattern is made up of three rows of four down arrowheads, each and three rows of three up arrowheads, each.", caption: none, ) #solutionbox[ The new shape is reflected horizontally and joined with the original shape. It is then translated vertically and horizontally to make up the tessellation. Notice the blank spaces next to the vertical pattern. These areas are made up of the exact original shape rotated #math.equation(block: false, alt: "180 degrees ,")[$180^(∘) ,$] but with no line up the center. These rotated shapes are translated horizontally and vertically, and thus, the plane is tessellated with no gaps. This is an example of a glide reflection where the order of the transformations matters. ] ] #examplebox("Example 4")[Applying More Than One Tessellation][ Show how this tessellation can be achieved. #figure( stdfig([#cetz.canvas({ import cetz.draw: * content((100.00pt, 80.67pt), text(font: sys.inputs.at("title-font", default: "STIX Two Text"), size: 11pt)[Tessellation Pattern]) line((0.00pt, 0.00pt), (0.00pt, 66.67pt), stroke: (paint: rgb("#B6D4DA"), thickness: 0.4pt)) line((16.67pt, 0.00pt), (16.67pt, 66.67pt), stroke: (paint: rgb("#B6D4DA"), thickness: 0.4pt)) line((33.33pt, 0.00pt), (33.33pt, 66.67pt), stroke: (paint: rgb("#B6D4DA"), thickness: 0.4pt)) line((50.00pt, 0.00pt), (50.00pt, 66.67pt), stroke: (paint: rgb("#B6D4DA"), thickness: 0.4pt)) line((66.67pt, 0.00pt), (66.67pt, 66.67pt), stroke: (paint: rgb("#B6D4DA"), thickness: 0.4pt)) line((83.33pt, 0.00pt), (83.33pt, 66.67pt), stroke: (paint: rgb("#B6D4DA"), thickness: 0.4pt)) line((100.00pt, 0.00pt), (100.00pt, 66.67pt), stroke: (paint: rgb("#B6D4DA"), thickness: 0.4pt)) line((116.67pt, 0.00pt), (116.67pt, 66.67pt), stroke: (paint: rgb("#B6D4DA"), thickness: 0.4pt)) line((133.33pt, 0.00pt), (133.33pt, 66.67pt), stroke: (paint: rgb("#B6D4DA"), thickness: 0.4pt)) line((150.00pt, 0.00pt), (150.00pt, 66.67pt), stroke: (paint: rgb("#B6D4DA"), thickness: 0.4pt)) line((166.67pt, 0.00pt), (166.67pt, 66.67pt), stroke: (paint: rgb("#B6D4DA"), thickness: 0.4pt)) line((183.33pt, 0.00pt), (183.33pt, 66.67pt), stroke: (paint: rgb("#B6D4DA"), thickness: 0.4pt)) line((200.00pt, 0.00pt), (200.00pt, 66.67pt), stroke: (paint: rgb("#B6D4DA"), thickness: 0.4pt)) line((0.00pt, 0.00pt), (200.00pt, 0.00pt), stroke: (paint: rgb("#B6D4DA"), thickness: 0.4pt)) line((0.00pt, 16.67pt), (200.00pt, 16.67pt), stroke: (paint: rgb("#B6D4DA"), thickness: 0.4pt)) line((0.00pt, 33.33pt), (200.00pt, 33.33pt), stroke: (paint: rgb("#B6D4DA"), thickness: 0.4pt)) line((0.00pt, 50.00pt), (200.00pt, 50.00pt), stroke: (paint: rgb("#B6D4DA"), thickness: 0.4pt)) line((0.00pt, 66.67pt), (200.00pt, 66.67pt), stroke: (paint: rgb("#B6D4DA"), thickness: 0.4pt)) line((33.33pt, 16.67pt), (66.67pt, 16.67pt), (83.33pt, 50.00pt), (16.67pt, 50.00pt), close: true, fill: none, stroke: 0.7pt + black) line((100.00pt, 16.67pt), (133.33pt, 16.67pt), (150.00pt, 50.00pt), (83.33pt, 50.00pt), close: true, fill: none, stroke: 0.7pt + black) line((166.67pt, 16.67pt), (200.00pt, 16.67pt), (216.67pt, 50.00pt), (150.00pt, 50.00pt), close: true, fill: none, stroke: 0.7pt + black) line((66.67pt, 16.67pt), (100.00pt, 16.67pt), stroke: (paint: black, thickness: 0.6pt, dash: "dashed")) content((29.33pt, 12.67pt), anchor: "north-east", text(size: 9pt)[A1]) content((62.67pt, 46.00pt), anchor: "north-east", text(size: 9pt)[A2]) content((96.00pt, 12.67pt), anchor: "north-east", text(size: 9pt)[A3]) })]), alt: "A tessellation pattern made up of six trapezoids is plotted on a rectangular grid. The sides of each square measure 2 units. The sides of each equilateral triangle measure 2 units. The square A 1 is rotated 30 degrees to the right to form a new square A 2. The new square is reflected horizontally to form a new square A 3. These 3 squares are reflected vertically along a dashed line. The spaces in between the squares resemble triangles.", caption: none, ) #solutionbox[ This is a tessellation that has one color on the front of the trapezoid and a different color on the back. There is a translation on the diagonal, and a reflection vertically. These are two separate transformations resulting in two new placements of the trapezoid. We can call this a combination of two transformations or a glide reflection. ] ] === Interior Angles The sum of the interior angles of a tessellation is #math.equation(block: false, alt: "360 degrees")[$360^(∘)$]. In , the tessellation is made of six triangles formed into the shape of a hexagon. Each angle inside a triangle equals #math.equation(block: false, alt: "60 degrees")[$60^(∘)$], and the six vertices meet the sum of those interior angles, #math.equation(block: false, alt: "6 open parenthesis 60 degrees close parenthesis equals 360 degrees")[$6 ( 60^(°) ) = 360^(°)$]. #figure( stdfig([#cetz.canvas({ import cetz.draw: * line((100.00pt, 20.00pt), (180.00pt, 80.00pt), (160.00pt, 140.00pt), (40.00pt, 140.00pt), (20.00pt, 80.00pt), (100.00pt, 20.00pt), close: true, fill: none, stroke: 0.7pt + black) circle((100.00pt, 80.00pt), radius: 1.8pt, fill: black, stroke: none) content((96.00pt, 76.00pt), anchor: "north-east", text(size: 9pt)[Center]) })]), alt: "A hexagon is made up of six equilateral triangles. A point is marked at the center of the hexagon and it is outlined.", caption: [Interior Angles at the Vertex of Triangles], ) In , the tessellation is made up of trapezoids, such that two of the interior angles of each trapezoid equals #math.equation(block: false, alt: "75 degrees")[$75^(°)$] and the other two angles equal #math.equation(block: false, alt: "105 degrees")[$105^(°)$]. Thus, the sum of the interior angles where the vertices of four trapezoids meet equals #math.equation(block: false, alt: "105 degrees plus 75 degrees plus 75 degrees plus 105 degrees equals 360 degrees")[$105^(°) + 75^(°) + 75^(°) + 105^(°) = 360^(°)$]. #figure( stdfig([#cetz.canvas({ import cetz.draw: * line((100.00pt, 20.00pt), (180.00pt, 100.00pt), (100.00pt, 180.00pt), (20.00pt, 100.00pt), close: true, fill: none, stroke: 0.7pt + black) circle((100.00pt, 100.00pt), radius: 1.8pt, fill: black, stroke: none) content((96.00pt, 96.00pt), anchor: "north-east", text(size: 9pt)[Center]) })]), alt: "A hexagon is made up of six equilateral triangles. A point is marked at the center of the hexagon and it is outlined.", caption: [Interior Angles at the Vertex of Trapezoids], ) These tessellations illustrate the property that the shapes meet at a vertex where the interior angles sum to #math.equation(block: false, alt: "360 degrees")[$360^(°)$]. === Tessellating Shapes We might think that all regular polygons will tessellate the plane by themselves. We have seen that squares do and hexagons do. The pattern of squares in is a translation of the shape horizontally and vertically. The hexagonal pattern in , is translated horizontally, and then on the diagonal, either to the right or to the left. This particular pattern can also be formed by rotations. Both tessellations are made up of congruent shapes and each shape fits in perfectly as the pattern repeats. #figure(figph[A rectangular grid is made up of three rows of four squares, each. Points are marked at the bottom-right vertices of the first, and third squares in the first row. Points are marked at the bottom-right vertices of the first and third squares in the third row.], alt: "A rectangular grid is made up of three rows of four squares, each. Points are marked at the bottom-right vertices of the first, and third squares in the first row. Points are marked at the bottom-right vertices of the first and third squares in the third row.", caption: [Translation Horizontally and Vertically]) #figure(figph[A tessellation pattern is made up of 18 hexagons. Four points are marked at eight different vertices.], alt: "A tessellation pattern is made up of 18 hexagons. Four points are marked at eight different vertices.", caption: [Translation Horizontally and Slide Diagonally]) We have also seen that equilateral triangles will tessellate the plane without gaps or overlaps, as shown. The pattern is made by a reflection and a translation. The darker side is the face of the triangle and the lighter side is the back of the triangle, shown by the reflection. Each triangle is reflected and then translated on the diagonal. #figure( stdfig([#cetz.canvas({ import cetz.draw: * line((20.00pt, 20.00pt), (60.00pt, 20.00pt), (40.00pt, 60.00pt), close: true, fill: none, stroke: 0.7pt + black) line((80.00pt, 20.00pt), (120.00pt, 20.00pt), (100.00pt, 60.00pt), close: true, fill: none, stroke: 0.7pt + black) line((20.00pt, 80.00pt), (60.00pt, 80.00pt), (40.00pt, 120.00pt), close: true, fill: none, stroke: 0.7pt + black) line((80.00pt, 80.00pt), (120.00pt, 80.00pt), (100.00pt, 120.00pt), close: true, fill: none, stroke: 0.7pt + black) line((20.00pt, 140.00pt), (60.00pt, 140.00pt), (40.00pt, 180.00pt), close: true, fill: none, stroke: 0.7pt + black) line((80.00pt, 140.00pt), (120.00pt, 140.00pt), (100.00pt, 180.00pt), close: true, fill: none, stroke: 0.7pt + black) line((140.00pt, 20.00pt), (180.00pt, 20.00pt), (160.00pt, 60.00pt), close: true, fill: none, stroke: 0.7pt + black) line((140.00pt, 80.00pt), (180.00pt, 80.00pt), (160.00pt, 120.00pt), close: true, fill: none, stroke: 0.7pt + black) line((140.00pt, 140.00pt), (180.00pt, 140.00pt), (160.00pt, 180.00pt), close: true, fill: none, stroke: 0.7pt + black) line((140.00pt, 200.00pt), (180.00pt, 200.00pt), (160.00pt, 160.00pt), close: true, fill: none, stroke: 0.7pt + black) })]), alt: "A tessellation pattern is made up of 10 red triangles and 10 white triangles.", caption: [Reflection and Glide Translation], ) Escher experimented with all regular polygons and found that only the ones mentioned, the equilateral triangle, the square, and the hexagon, will tessellate the plane by themselves. Let’s try a few other regular polygons to observe what Escher found. #examplebox("Example 5")[Tessellating the Plane][ Do regular pentagons tessellate the plane by themselves ? #figure(figph[A tessellation pattern is made up of eight pentagons.], alt: "A tessellation pattern is made up of eight pentagons.", caption: none) #solutionbox[ We can see that regular pentagons do not tessellate the plane by themselves. There is a gap, a gap in the shape of a parallelogram. We conclude that regular pentagons will not tessellate the plane by themselves. ] ] #examplebox("Example 6")[Tessellating Octagons][ Do regular octagons tessellate the plane by themselves ? #figure(figph[A tessellation pattern is made up of 12 octagons. The octagons are arranged in such a way that 3 squares are formed.], alt: "A tessellation pattern is made up of 12 octagons. The octagons are arranged in such a way that 3 squares are formed.", caption: none) #solutionbox[ Again, we see that regular octagons do not tessellate the plane by themselves. The gaps, however, are squares. So, two regular polygons, an octagon and a square, do tessellate the plane. ] ] Just because regular pentagons do not tessellate the plane by themselves does not mean that there are no pentagons that tessellate the plane, as we see in . #figure(figph[A tessellation pattern is made up of 48 pentagons.], alt: "A tessellation pattern is made up of 48 pentagons.", caption: [Tessellation of Pentagons]) Another example of an irregular polygon that tessellates the plane is by using the obtuse irregular triangle from a previous example. What transformations should be performed to produce the tessellation shown in ? #figure( stdfig([#grid(columns: 2, gutter: 1.5em, [#cetz.canvas({ import cetz.draw: * content((100.00pt, 114.00pt), text(font: sys.inputs.at("title-font", default: "STIX Two Text"), size: 11pt)[Two triangles]) line((20.00pt, 20.00pt), (80.00pt, 20.00pt), (50.00pt, 80.00pt), close: true, fill: none, stroke: 0.7pt + black) content((50.00pt, 11.00pt), anchor: "north", text(size: 9pt)[a]) content((72.49pt, 54.99pt), anchor: "west", text(size: 9pt)[b]) content((27.51pt, 54.99pt), anchor: "east", text(size: 9pt)[c]) line((120.00pt, 20.00pt), (180.00pt, 20.00pt), (150.00pt, 80.00pt), close: true, fill: none, stroke: 0.7pt + black) content((150.00pt, 11.00pt), anchor: "north", text(size: 9pt)[d]) content((172.49pt, 54.99pt), anchor: "west", text(size: 9pt)[e]) content((127.51pt, 54.99pt), anchor: "east", text(size: 9pt)[f]) arc((20.00pt, 20.00pt), start: 0.00deg, stop: 63.43deg, radius: 14.00pt, anchor: "origin", stroke: 0.6pt + black) arc((120.00pt, 20.00pt), start: 0.00deg, stop: 63.43deg, radius: 14.00pt, anchor: "origin", stroke: 0.6pt + black) content((50.00pt, 84.00pt), anchor: "south", text(size: 9pt)[A]) content((150.00pt, 84.00pt), anchor: "south", text(size: 9pt)[A]) })], [#cetz.canvas({ import cetz.draw: * content((100.00pt, 214.00pt), text(font: sys.inputs.at("title-font", default: "STIX Two Text"), size: 11pt)[Tessellation pattern of triangles]) line((0.00pt, 0.00pt), (50.00pt, 0.00pt), (25.00pt, 25.00pt), close: true, fill: none, stroke: 0.7pt + black) line((50.00pt, 0.00pt), (100.00pt, 0.00pt), (75.00pt, 25.00pt), close: true, fill: none, stroke: 0.7pt + black) line((100.00pt, 0.00pt), (150.00pt, 0.00pt), (125.00pt, 25.00pt), close: true, fill: none, stroke: 0.7pt + black) line((150.00pt, 0.00pt), (200.00pt, 0.00pt), (175.00pt, 25.00pt), close: true, fill: none, stroke: 0.7pt + black) line((0.00pt, 50.00pt), (50.00pt, 50.00pt), (25.00pt, 75.00pt), close: true, fill: none, stroke: 0.7pt + black) line((50.00pt, 50.00pt), (100.00pt, 50.00pt), (75.00pt, 75.00pt), close: true, fill: none, stroke: 0.7pt + black) line((100.00pt, 50.00pt), (150.00pt, 50.00pt), (125.00pt, 75.00pt), close: true, fill: none, stroke: 0.7pt + black) line((150.00pt, 50.00pt), (200.00pt, 50.00pt), (175.00pt, 75.00pt), close: true, fill: none, stroke: 0.7pt + black) line((0.00pt, 100.00pt), (50.00pt, 100.00pt), (25.00pt, 125.00pt), close: true, fill: none, stroke: 0.7pt + black) line((50.00pt, 100.00pt), (100.00pt, 100.00pt), (75.00pt, 125.00pt), close: true, fill: none, stroke: 0.7pt + black) line((100.00pt, 100.00pt), (150.00pt, 100.00pt), (125.00pt, 125.00pt), close: true, fill: none, stroke: 0.7pt + black) line((150.00pt, 100.00pt), (200.00pt, 100.00pt), (175.00pt, 125.00pt), close: true, fill: none, stroke: 0.7pt + black) line((0.00pt, 150.00pt), (50.00pt, 150.00pt), (25.00pt, 175.00pt), close: true, fill: none, stroke: 0.7pt + black) line((50.00pt, 150.00pt), (100.00pt, 150.00pt), (75.00pt, 175.00pt), close: true, fill: none, stroke: 0.7pt + black) line((100.00pt, 150.00pt), (150.00pt, 150.00pt), (125.00pt, 175.00pt), close: true, fill: none, stroke: 0.7pt + black) line((150.00pt, 150.00pt), (200.00pt, 150.00pt), (175.00pt, 175.00pt), close: true, fill: none, stroke: 0.7pt + black) })] )]), alt: "Two figures. The first figure shows two triangles. In each triangle, a vertex is labeled A. The second figure is a tessellation pattern made up of 16 triangles.", caption: [Tessellating with Obtuse Irregular Triangles], ) First, the triangle is reflected over the tip at point #math.equation(block: false, alt: "A")[$A$], and then translated to the right and joined with the original triangle to form a parallelogram. The parallelogram is then translated on the diagonal and to the right and to the left. ==== Naming A tessellation of squares is named by choosing a vertex and then counting the number of sides of each shape touching the vertex. Each square in the tessellation shown in has four sides, so starting with square #math.equation(block: false, alt: "A")[$A$], the first number is 4, moving around counterclockwise to the next square meeting the vertex, square #math.equation(block: false, alt: "B")[$B$], we have another 4, square #math.equation(block: false, alt: "C")[$C$] adds another 4, and finally square #math.equation(block: false, alt: "D")[$D$] adds a fourth 4. So, we would name this tessellation a 4.4.4.4. The hexagon tessellation, shown in has six sides to the shape and three hexagons meet at the vertex. Thus, we would name this a 6.6.6. The triangle tessellation, shown in has six triangles meeting the vertex. Each triangle has three sides. Thus, we name this a 3.3.3.3.3.3. #figure(figph[A figure made up of 3 rows of squares. The first two rows have 3 squares, each. The last row has 2 squares. The first two squares in the first row are labeled D and C. A point is marked at the bottom-right vertex of the first square. The second two squares in the second row are labeled A and B.], alt: "A figure made up of 3 rows of squares. The first two rows have 3 squares, each. The last row has 2 squares. The first two squares in the first row are labeled D and C. A point is marked at the bottom-right vertex of the first square. The second two squares in the second row are labeled A and B.", caption: [4.4.4.4]) #figure( stdfig([#cetz.canvas({ import cetz.draw: * line((40.00pt, 60.00pt), (80.00pt, 60.00pt), (100.00pt, 100.00pt), (80.00pt, 140.00pt), (40.00pt, 140.00pt), (20.00pt, 100.00pt), close: true, fill: none, stroke: 0.7pt + black) line((100.00pt, 60.00pt), (140.00pt, 60.00pt), (160.00pt, 100.00pt), (140.00pt, 140.00pt), (100.00pt, 140.00pt), (80.00pt, 100.00pt), close: true, fill: none, stroke: 0.7pt + black) line((20.00pt, 20.00pt), (60.00pt, 20.00pt), (80.00pt, 60.00pt), (60.00pt, 100.00pt), (20.00pt, 100.00pt), (0.00pt, 60.00pt), close: true, fill: none, stroke: 0.7pt + black) line((80.00pt, 20.00pt), (120.00pt, 20.00pt), (140.00pt, 60.00pt), (120.00pt, 100.00pt), (80.00pt, 100.00pt), (60.00pt, 60.00pt), close: true, fill: none, stroke: 0.7pt + black) line((140.00pt, 20.00pt), (180.00pt, 20.00pt), (200.00pt, 60.00pt), (180.00pt, 100.00pt), (140.00pt, 100.00pt), (120.00pt, 60.00pt), close: true, fill: none, stroke: 0.7pt + black) circle((40.00pt, 60.00pt), radius: 1.8pt, fill: black, stroke: none) })]), alt: "A tessellation pattern is made up of five hexagons. In the first row, two hexagons are present. In the second row, three hexagons are present. A point is marked at the bottom vertex of the first hexagon.", caption: [6.6.6], ) #figure( stdfig([#cetz.canvas({ import cetz.draw: * line((100.00pt, 20.00pt), (180.00pt, 100.00pt), (100.00pt, 180.00pt), (20.00pt, 100.00pt), close: true, fill: none, stroke: 0.7pt + black) content((100.00pt, 100.00pt), anchor: "center", text(size: 9pt)[Hexagon made of six equilateral triangles]) })]), alt: "A hexagon is made up of six equilateral triangles.", caption: [3.3.3.3.3.3], ) #examplebox("Example 7")[Creating Your Own Tessellation][ Create a tessellation using two colors and two shapes. #solutionbox[ We used a parallelogram and an isosceles triangle. The parallelogram is reflected vertically and horizontally so that only every other corner touches. The triangles are reflected vertically and horizontally and then translated over the parallelogram. The result is alternating vertical columns of parallelograms and then triangles . #figure( stdfig([#cetz.canvas({ import cetz.draw: * line((0.00pt, 0.00pt), (40.00pt, 0.00pt), (20.00pt, 20.00pt), close: true, fill: none, stroke: 0.7pt + black) content((20.00pt, -9.00pt), anchor: "north", text(size: 9pt)[A]) content((38.54pt, 12.85pt), anchor: "west", text(size: 9pt)[B]) content((1.46pt, 12.85pt), anchor: "east", text(size: 9pt)[C]) line((40.00pt, 0.00pt), (80.00pt, 0.00pt), (100.00pt, 20.00pt), (60.00pt, 20.00pt), close: true, fill: none, stroke: 0.7pt + black) content((53.64pt, -6.36pt), anchor: "east", text(size: 9pt)[D]) content((99.00pt, 10.00pt), anchor: "west", text(size: 9pt)[E]) content((86.36pt, 26.36pt), anchor: "west", text(size: 9pt)[F]) content((41.00pt, 10.00pt), anchor: "east", text(size: 9pt)[G]) line((80.00pt, 0.00pt), (120.00pt, 0.00pt), (100.00pt, 20.00pt), close: true, fill: none, stroke: 0.7pt + black) content((100.00pt, -9.00pt), anchor: "north", text(size: 9pt)[H]) content((118.54pt, 12.85pt), anchor: "west", text(size: 9pt)[I]) content((81.46pt, 12.85pt), anchor: "east", text(size: 9pt)[J]) line((120.00pt, 0.00pt), (160.00pt, 0.00pt), (140.00pt, 20.00pt), (100.00pt, 20.00pt), close: true, fill: none, stroke: 0.7pt + black) content((146.36pt, -6.36pt), anchor: "west", text(size: 9pt)[K]) content((159.00pt, 10.00pt), anchor: "west", text(size: 9pt)[L]) content((113.64pt, 26.36pt), anchor: "east", text(size: 9pt)[M]) content((101.00pt, 10.00pt), anchor: "east", text(size: 9pt)[N]) line((160.00pt, 0.00pt), (200.00pt, 0.00pt), (180.00pt, 20.00pt), close: true, fill: none, stroke: 0.7pt + black) content((180.00pt, -9.00pt), anchor: "north", text(size: 9pt)[O]) content((198.54pt, 12.85pt), anchor: "west", text(size: 9pt)[P]) content((161.46pt, 12.85pt), anchor: "east", text(size: 9pt)[Q]) })]), alt: "A tessellation pattern. The pattern has four rows. Each row has a triangle, a parallelogram, a triangle, a parallelogram, a triangle, a parallelogram, and a triangle.", caption: none, ) ] ] === Key Terms - tessellation - translation - reflection - rotation - glide reflection === Key Concepts - A tessellation is a particular pattern composed of shapes, usually polygons, that repeat and cover the plane with no gaps or overlaps. - Properties of tessellations include rigid motions of the shapes called transformations. Transformations refer to translations, rotations, reflections, and glide reflections. Shapes are transformed in such a way to create a pattern. === Videos - #link("https://openstax.org/r/create_tessellation")[M.C. Escher: How to Create a Tessellation] - #link("https://openstax.org/r/mathematical_art")[The Mathematical Art of M.C. Escher]