Two-Tile Rotation Tessellation with Symmetric Matching

Two-Tile Rotation Tessellation with Symmetric Matching
Loading the math board and drawing, please wait…
2021-01-14 03:45
This example demonstrates how to tessellate the plane using two types of tiles by combining rotation and translation, producing a repeating pattern where edges and angles match consistently. The key mathematical ideas are rotational symmetry, congruence (same shape and size), vector-based geometry, and geometric construction that preserves tile structure under transformation. In GeoGebra, the workflow builds Polygon objects for the two tile shapes (poly1 and poly2), uses Vector together with PointIn to define relevant points and determine where points lie, and then applies Rotate and Translate to generate rotated and shifted copies. Sequence is used to drive the iterative/ordered placement of tiles, creating many matched instances (e.g., points like A, B, C, D and derived points such as u, v, j, k, l, m, along with supporting construction objects like f, g, h, i). This makes the tessellation stable and clearly illustrates how two distinct but congruently related tiles can fill the plane through transformation rules. Suitable for upper-secondary and early university audiences, especially for lessons on geometry transformations and dynamic constructions in GeoGebra.

GeoGebra Commands & Parameters

  1. Polygon(A, B, 4) → poly1, f, g, h, i, C, D
  2. Vector(B, C) → u
  3. PointIn(Polygon[A + u, A - u, B - u, B + u]) → G
  4. Rotate(G, 180°, A) → G''
  5. PointIn(Polygon[A + u, A - u, B - u, B + u]) → H
  6. PointIn(Polygon[A + u, A - u, B - u, B + u]) → I
  7. PointIn(Polygon[C + u, C - u, D - u, D + u]) → P
  8. PointIn(Polygon[C + u, C - u, D - u, D + u]) → Q
  9. PointIn(Polygon[C + u, C - u, D - u, D + u]) → R
  10. PointIn(Circle[B, f]) → S
  11. PointIn(Circle[D, f]) → T
  12. Vector(B, A) → v
  13. PointIn(Polygon[B + v, B - v, C - v, C + v]) → J
  14. PointIn(Polygon[B + v, B - v, C - v, C + v]) → K
  15. PointIn(Polygon[B + v, B - v, C - v, C + v]) → L
  16. Rotate(L, 180°, C) → L''
  17. PointIn(Polygon[A + v, A - v, D - v, D + v]) → M
  18. PointIn(Polygon[A + v, A - v, D - v, D + v]) → N
  19. PointIn(Polygon[A + v, A - v, D - v, D + v]) → O
  20. Polygon(B, A, 4) → poly2, j, k, l, m, E, F
  21. Rotate(L, 180°, B) → L'
  22. Rotate(K, 180°, B) → K'
  23. Rotate(J, 180°, B) → J'
  24. Rotate(M, 180°, A) → M'
  25. Rotate(N, 180°, A) → N'
  26. Rotate(O, 180°, A) → O'
  27. Translate(P, Vector[(-2 * u)]) → P'
  28. Translate(Q, Vector[(-2 * u)]) → Q'
  29. Translate(R, Vector[(-2 * u)]) → R'
  30. Rotate(S, 180°, B) → S'
  31. Polygon(S, J, N, M, G'', G, H, I, K, L, L'', R, Q, P, T, O) → poly3, n, d, e, f_1, g_1, h_1, i_1, j_1, p, q, r, s, t, a, b, c
  32. Rotate(T, 180°, A) → T'
  33. Translate(T, Vector[(-2 * u)]) → T'_1
  34. Polygon(T', T'_1, I, H, G, M', N', O', P', Q', R', L', K', J', S', S) → poly4, t', s_1, i_2, h_2, g_2, m', n', o', t'_1, p', q', r', l', k', j', s'
  35. Rotate(T', 180°, B) → T''
  36. Rotate(T'_1, 180°, B) → U
  37. Rotate(P', 180°, B) → P''
  38. Rotate(Q', 180°, B) → Q''
  39. Rotate(R', 180°, B) → R''
  40. Rotate(L', 180°, B) → L''_2
  41. Rotate(K', 180°, B) → K''
  42. Rotate(J', 180°, B) → J''
  43. Rotate(S', 180°, B) → S''
  44. Rotate(S, 180°, B) → S'_1
  45. Rotate(I, 180°, B) → I'
  46. Rotate(H, 180°, B) → H'
  47. Rotate(G, 180°, B) → G'
  48. Rotate(M', 180°, B) → M''
  49. Rotate(N', 180°, B) → N''
  50. Rotate(O', 180°, B) → O''
  51. Polygon(T'', U, I', H', G', M'', N'', O'', P'', Q'', R'', L''_2, K'', J'', S'', S'_1) → poly4', t'', s'_1, i', h', g', m'', n'', o'', u_1, p'', q'', r'', l'', k'', j'', s''
  52. Rotate(T', 180°, A) → T''_1
  53. Rotate(G, 180°, A) → G'_1
  54. Rotate(S, 180°, B) → S'_2
  55. Rotate(J, 180°, B) → J'_1
  56. Rotate(K, 180°, B) → K'_1
  57. Rotate(L, 180°, B) → L'_1
  58. Rotate(L'', 180°, B) → L'''_1
  59. Rotate(R, 180°, B) → R'_1
  60. Rotate(Q, 180°, B) → Q'_1
  61. Rotate(P, 180°, B) → P'_3
  62. Rotate(T, 180°, B) → T'_4
  63. Rotate(O, 180°, B) → O'_3
  64. Rotate(N, 180°, B) → N'_3
  65. Rotate(M, 180°, B) → M'_3
  66. Rotate(G'', 180°, B) → G'''
  67. Rotate(G, 180°, B) → G'_4
  68. Rotate(H, 180°, B) → H'_1
  69. Rotate(I, 180°, B) → I'_1
  70. Polygon(S'_2, J'_1, N'_3, M'_3, G''', G'_4, H'_1, I'_1, K'_1, L'_1, L'''_1, R'_1, Q'_1, P'_3, T'_4, O'_3) → poly3', s'_2, o'_3, n'_3, m'_3, g''', g'_4, h'_1, i'_1, j'_1, k'_1, l'_1, l'''_1, r'_1, q'_1, p'_3, t'_4
  71. Sequence(Sequence[Polygon[Translate[S, Vector[((i * 2) * u) + ((j * 2) * v)]], Translate[J, Vector[((i * 2) * u) + ((j * 2) * v)]], Translate[K, Vector[((i * 2) * u) + ((j * 2) * v)]], Translate[L, Vector[((i * 2) * u) + ((j * 2) * v)]], Translate[L'', Vector[((i * 2) * u) + ((j * 2) * v)]], Translate[R, Vector[((i * 2) * u) + ((j * 2) * v)]], Translate[Q, Vector[((i * 2) * u) + ((j * 2) * v)]], Translate[P, Vector[((i * 2) * u) + ((j * 2) * v)]], Translate[T, Vector[((i * 2) * u) + ((j * 2) * v)]], Translate[O, Vector[((i * 2) * u) + ((j * 2) * v)]], Translate[N, Vector[((i * 2) * u) + ((j * 2) * v)]], Translate[M, Vector[((i * 2) * u) + ((j * 2) * v)]], Translate[G'', Vector[((i * 2) * u) + ((j * 2) * v)]], Translate[G, Vector[((i * 2) * u) + ((j * 2) * v)]], Translate[H, Vector[((i * 2) * u) + ((j * 2) * v)]], Translate[I, Vector[((i * 2) * u) + ((j * 2) * v)]]], i, (-w), w], j, (-w), w) → l1
  72. Sequence(Sequence[Polygon[Translate[S'_2, Vector[((i * 2) * u) + ((j * 2) * v)]], Translate[J'_1, Vector[((i * 2) * u) + ((j * 2) * v)]], Translate[K'_1, Vector[((i * 2) * u) + ((j * 2) * v)]], Translate[L'_1, Vector[((i * 2) * u) + ((j * 2) * v)]], Translate[L'''_1, Vector[((i * 2) * u) + ((j * 2) * v)]], Translate[R'_1, Vector[((i * 2) * u) + ((j * 2) * v)]], Translate[Q'_1, Vector[((i * 2) * u) + ((j * 2) * v)]], Translate[P'_3, Vector[((i * 2) * u) + ((j * 2) * v)]], Translate[T'_4, Vector[((i * 2) * u) + ((j * 2) * v)]], Translate[O'_3, Vector[((i * 2) * u) + ((j * 2) * v)]], Translate[N'_3, Vector[((i * 2) * u) + ((j * 2) * v)]], Translate[M'_3, Vector[((i * 2) * u) + ((j * 2) * v)]], Translate[G''', Vector[((i * 2) * u) + ((j * 2) * v)]], Translate[G'_4, Vector[((i * 2) * u) + ((j * 2) * v)]], Translate[H'_1, Vector[((i * 2) * u) + ((j * 2) * v)]], Translate[I'_1, Vector[((i * 2) * u) + ((j * 2) * v)]]], i, (-w), w], j, (-w), w) → l2
  73. Sequence(Sequence[Polygon[Translate[T'', Vector[((i * 2) * u) + ((j * 2) * v)]], Translate[U, Vector[((i * 2) * u) + ((j * 2) * v)]], Translate[P'', Vector[((i * 2) * u) + ((j * 2) * v)]], Translate[Q'', Vector[((i * 2) * u) + ((j * 2) * v)]], Translate[R'', Vector[((i * 2) * u) + ((j * 2) * v)]], Translate[L''_2, Vector[((i * 2) * u) + ((j * 2) * v)]], Translate[K'', Vector[((i * 2) * u) + ((j * 2) * v)]], Translate[J'', Vector[((i * 2) * u) + ((j * 2) * v)]], Translate[S'', Vector[((i * 2) * u) + ((j * 2) * v)]], Translate[S'_1, Vector[((i * 2) * u) + ((j * 2) * v)]], Translate[I', Vector[((i * 2) * u) + ((j * 2) * v)]], Translate[H', Vector[((i * 2) * u) + ((j * 2) * v)]], Translate[G', Vector[((i * 2) * u) + ((j * 2) * v)]], Translate[M'', Vector[((i * 2) * u) + ((j * 2) * v)]], Translate[N'', Vector[((i * 2) * u) + ((j * 2) * v)]], Translate[O'', Vector[((i * 2) * u) + ((j * 2) * v)]]], i, (-w), w], j, (-w), w) → l3
  74. Sequence(Sequence[Polygon[Translate[T', Vector[((i * 2) * u) + ((j * 2) * v)]], Translate[T'_1, Vector[((i * 2) * u) + ((j * 2) * v)]], Translate[P', Vector[((i * 2) * u) + ((j * 2) * v)]], Translate[Q', Vector[((i * 2) * u) + ((j * 2) * v)]], Translate[R', Vector[((i * 2) * u) + ((j * 2) * v)]], Translate[L', Vector[((i * 2) * u) + ((j * 2) * v)]], Translate[K', Vector[((i * 2) * u) + ((j * 2) * v)]], Translate[J', Vector[((i * 2) * u) + ((j * 2) * v)]], Translate[S', Vector[((i * 2) * u) + ((j * 2) * v)]], Translate[S, Vector[((i * 2) * u) + ((j * 2) * v)]], Translate[I, Vector[((i * 2) * u) + ((j * 2) * v)]], Translate[H, Vector[((i * 2) * u) + ((j * 2) * v)]], Translate[G, Vector[((i * 2) * u) + ((j * 2) * v)]], Translate[M', Vector[((i * 2) * u) + ((j * 2) * v)]], Translate[N', Vector[((i * 2) * u) + ((j * 2) * v)]], Translate[O', Vector[((i * 2) * u) + ((j * 2) * v)]]], i, (-w), w], j, (-w), w) → l4

AI Drawing Prompt Reference

Create a plane tessellation using two congruent quadrilateral tiles. Start with two adjacent squares as base tiles, one rotated 180 degrees to match the other. Replicate these tiles through translation and rotation, arranging them alternately along horizontal and diagonal directions to form a continuous pattern with aligned edges and corners. Select key points inside and on tile boundaries, then rotate them symmetrically around vertices to generate matching edge point sets. Finally, connect these points to form two complementary complex polygons that seamlessly cover the plane, demonstrating symmetric tessellation through combined rotation and translation.
The prompt above was compiled from the original drawing commands and is for reference only.