Interactive Paving on the Cube

Interactive Paving on the Cube
Loading the math board and drawing, please wait…
2020-11-03 17:39
This example demonstrates interactive paving on a cube surface, where users can drag sliders to observe how polygonal tiles cover each face dynamically. The core mathematical concepts involve solid geometry (cube structure), geometric transformations (translation, rotation, reflection, similarity), and sequence generation, highlighting positional relationships and symmetry among points, lines, and planes. The construction uses GeoGebra commands such as Circle, Line, Intersect, Polygon, Vector, Point, Segment, Midpoint, Mirror, Translate, Join, Rotate, Sequence, and Cube, with objects like A, B, C, poly1, poly2, and sliders n, u, v to control tile density and orientation. This is suitable for high school or early college students learning 3D geometry and transformations, or for visual exploration of symmetry and tessellation in a spatial context.

GeoGebra Commands & Parameters

  1. Circle(A, Zoom) → c
  2. Line(A, xAxis) → b
  3. Intersect(c, b) → B, C
  4. Line(A, yAxis) → d
  5. Intersect(c, d) → D, E
  6. Line(B, yAxis) → e
  7. Line(C, d) → f
  8. Line(D, b) → g
  9. Line(E, b) → h
  10. Intersect(g, e) → F
  11. Intersect(f, g) → G
  12. Intersect(h, f) → H
  13. Intersect(e, h) → I
  14. Polygon(F, G, H, I) → poly1, f_1, g_1, h_1, i
  15. Vector(I, H) → u
  16. Vector(I, F) → v
  17. Point(i) → J
  18. Point(f_1) → K
  19. Segment(I, G) → j
  20. Point(j) → L
  21. Segment(D, B) → k
  22. Segment(F, A) → l
  23. Intersect(k, l) → M
  24. Midpoint(D, M) → N
  25. Midpoint(M, B) → O
  26. Polygon(F, N, K, L, J, O) → poly2, f_2, n_1, k_1, l_1, j_1, o
  27. Mirror(F, A) → F'_1
  28. Mirror(O, A) → O'_1
  29. Mirror(F, j) → F'_2
  30. Mirror(N, j) → N'_1
  31. Mirror(K, j) → K'_1
  32. Mirror(L, j) → L'_1
  33. Mirror(J, j) → J'_1
  34. Mirror(O, j) → O'_2
  35. Polygon(F'_2, N'_1, K'_1, L'_1, J'_1, O'_2) → poly2'_1, f', n', k', l', j', o'
  36. Vector(A, P) → w
  37. Translate(F, w) → F'_3
  38. Translate(N, w) → N'
  39. Translate(K, w) → K'
  40. Translate(L, w) → L'
  41. Translate(J, w) → J'
  42. Translate(O, w) → O'
  43. Polygon(F'_3, N', K', L', J', O') → poly2', f'_1, n'_1, k'_1, l'_1, j'_1, o'_1
  44. Translate(F'_2, w) → Q
  45. Translate(N'_1, w) → R
  46. Translate(K'_1, w) → S
  47. Translate(L'_1, w) → T
  48. Translate(J'_1, w) → U
  49. Translate(O'_2, w) → V
  50. Polygon(Q, R, S, T, U, V) → poly3, q, r, s, t, u_1, v_1
  51. Translate(F, w) → F'
  52. Translate(G, w) → G'
  53. Translate(H, w) → H'
  54. Translate(I, w) → I'
  55. Polygon(F', G', H', I') → poly1', f'_2, g', h', i'
  56. Mirror(V, g') → V'_1
  57. Mirror(Q, g') → Q'_1
  58. Mirror(R, g') → R'_1
  59. Mirror(S, g') → S'_1
  60. Mirror(T, g') → T'_1
  61. Mirror(U, g') → U'_1
  62. Mirror(V, g') → V'_2
  63. Polygon(Q'_1, R'_1, S'_1, T'_1, U'_1, V'_2) → poly3'_1, q', r', s', t', u', v'
  64. Mirror(F'_3, f'_2) → W
  65. Mirror(N', f'_2) → N''_1
  66. Mirror(K', f'_2) → K''_1
  67. Mirror(L', f'_2) → L''_1
  68. Mirror(J', f'_2) → J''_1
  69. Mirror(O', f'_2) → O''_1
  70. Polygon(W, N''_1, K''_1, L''_1, J''_1, O''_1) → poly2''_1, w_1, n'', k'', l'', j'', o''
  71. Mirror(F'_3, g') → Z
  72. Mirror(N', g') → N''
  73. Mirror(K', g') → K''
  74. Mirror(L', g') → L''
  75. Mirror(J', g') → J''
  76. Mirror(O', g') → O''
  77. Polygon(Z, N'', K'', L'', J'', O'') → poly2'', z, n''_1, k''_1, l''_1, j''_1, o''_1
  78. Mirror(Q'_1, f'_2) → Q''
  79. Mirror(R'_1, f'_2) → R''
  80. Mirror(S'_1, f'_2) → S''
  81. Mirror(T'_1, f'_2) → T''
  82. Mirror(U'_1, f'_2) → U''
  83. Mirror(V'_2, f'_2) → V''
  84. Polygon(Q'', R'', S'', T'', U'', V'') → poly3'', q'', r'', s'', t'', u'', v''
  85. Mirror(Q, f'_2) → Q'
  86. Mirror(R, f'_2) → R'
  87. Mirror(S, f'_2) → S'
  88. Mirror(T, f'_2) → T'
  89. Mirror(U, f'_2) → U'
  90. Mirror(V, f'_2) → V'
  91. Polygon(Q', R', S', T', U', V') → poly3', q'_1, r'_1, s'_1, t'_1, u'_1, v'_1
  92. Mirror(Z, f'_2) → Z'
  93. Mirror(N'', f'_2) → N'''
  94. Mirror(K'', f'_2) → K'''
  95. Mirror(L'', f'_2) → L'''
  96. Mirror(J'', f'_2) → J'''
  97. Mirror(O'', f'_2) → O'''
  98. Polygon(Z', N''', K''', L''', J''', O''') → poly2''', z', n''', k''', l''', j''', o'''
  99. Midpoint(C_1, A_1) → D_1
  100. Point(xAxis) → F_1
  101. Line(E_1, xAxis) → m
  102. Join(Sequence[Sequence[Polygon[Translate[Q, Vector[(s * u) + (t * v)]], Translate[R, Vector[(s * u) + (t * v)]], Translate[S, Vector[(s * u) + (t * v)]], Translate[T, Vector[(s * u) + (t * v)]], Translate[U, Vector[(s * u) + (t * v)]], Translate[V, Vector[(s * u) + (t * v)]]], s, 0, n, 2], t, 0, n, 2]) → liste1
  103. Line(D_1, E_1) → p
  104. Line(A_1, B_1) → a
  105. Rotate(liste1, 90°, a) → liste1'
  106. Sequence(Rotate[liste1', i, p], i, 0, (2 * π), (2 * π / 4)) → l1
  107. Join(Sequence[Sequence[Polygon[Translate[Q'_1, Vector[(s * u) + (t * v)]], Translate[R'_1, Vector[(s * u) + (t * v)]], Translate[S'_1, Vector[(s * u) + (t * v)]], Translate[T'_1, Vector[(s * u) + (t * v)]], Translate[U'_1, Vector[(s * u) + (t * v)]], Translate[V'_2, Vector[(s * u) + (t * v)]]], s, 0, n, 2], t, 0, n, 2]) → liste2
  108. Rotate(liste2, 90°, a) → liste2'
  109. Sequence(Rotate[liste2', i, p], i, 0, (2 * π), (2 * π / 4)) → l2
  110. Join(Sequence[Sequence[Polygon[Translate[F'_3, Vector[(s * u) + (t * v)]], Translate[N', Vector[(s * u) + (t * v)]], Translate[K', Vector[(s * u) + (t * v)]], Translate[L', Vector[(s * u) + (t * v)]], Translate[J', Vector[(s * u) + (t * v)]], Translate[O', Vector[(s * u) + (t * v)]]], s, 0, n, 2], t, 0, n, 2]) → liste3
  111. Rotate(liste3, 90°, a) → liste3'
  112. Join(Sequence[Sequence[Polygon[Translate[W, Vector[(s * u) + (t * v)]], Translate[N''_1, Vector[(s * u) + (t * v)]], Translate[K''_1, Vector[(s * u) + (t * v)]], Translate[L''_1, Vector[(s * u) + (t * v)]], Translate[J''_1, Vector[(s * u) + (t * v)]], Translate[O''_1, Vector[(s * u) + (t * v)]]], s, 0, n, 2], t, 0, n, 2]) → liste4
  113. Rotate(liste4, 90°, a) → liste4'
  114. Sequence(Rotate[liste4', i, p], i, 0, (2 * π), (2 * π / 4)) → l4
  115. Join(Sequence[Sequence[Polygon[Translate[Z, Vector[(s * u) + (t * v)]], Translate[N'', Vector[(s * u) + (t * v)]], Translate[K'', Vector[(s * u) + (t * v)]], Translate[L'', Vector[(s * u) + (t * v)]], Translate[J'', Vector[(s * u) + (t * v)]], Translate[O'', Vector[(s * u) + (t * v)]]], s, 0, n, 2], t, 0, n, 2]) → liste5
  116. Rotate(liste5, 90°, a) → liste5'
  117. Sequence(Rotate[liste5', i, p], i, 0, (2 * π), (2 * π / 4)) → l5
  118. Join(Sequence[Sequence[Polygon[Translate[Z', Vector[(s * u) + (t * v)]], Translate[N''', Vector[(s * u) + (t * v)]], Translate[K''', Vector[(s * u) + (t * v)]], Translate[L''', Vector[(s * u) + (t * v)]], Translate[J''', Vector[(s * u) + (t * v)]], Translate[O''', Vector[(s * u) + (t * v)]]], s, 0, n, 2], t, 0, n, 2]) → liste6
  119. Rotate(liste6, 90°, a) → liste6'
  120. Sequence(Rotate[liste6', i, p], i, 0, (2 * π), (2 * π / 4)) → l6
  121. Join(Sequence[Sequence[Polygon[Translate[Q'', Vector[(s * u) + (t * v)]], Translate[R'', Vector[(s * u) + (t * v)]], Translate[S'', Vector[(s * u) + (t * v)]], Translate[T'', Vector[(s * u) + (t * v)]], Translate[U'', Vector[(s * u) + (t * v)]], Translate[V'', Vector[(s * u) + (t * v)]]], s, 0, n, 2], t, 0, n, 2]) → liste7
  122. Rotate(liste7, 90°, a) → liste7'
  123. Sequence(Rotate[liste7', i, p], i, 0, (2 * π), (2 * π / 4)) → l7
  124. Join(Sequence[Sequence[Polygon[Translate[Q', Vector[(s * u) + (t * v)]], Translate[R', Vector[(s * u) + (t * v)]], Translate[S', Vector[(s * u) + (t * v)]], Translate[T', Vector[(s * u) + (t * v)]], Translate[U', Vector[(s * u) + (t * v)]], Translate[V', Vector[(s * u) + (t * v)]]], s, 0, n, 2], t, 0, n, 2]) → liste8
  125. Rotate(liste8, 90°, a) → liste8'
  126. Sequence(Rotate[liste8', i, p], i, 0, (2 * π), (2 * π / 4)) → l8
  127. Cube(A_1, B_1, zAxis) → a_1, G_1, face4, face5, face6, arête2, arête1, arête4, arête6, arête3, arête8, arête10, H_1, arête9, arête5, arête11, arête7, arête12, I_1, J_1, K_1, L_1, face1, face3, face2
  128. Rotate(liste1, 180°, m) → l1b
  129. Rotate(liste2, 180°, m) → l2b
  130. Rotate(liste3, 180°, m) → l3b
  131. Rotate(liste4, 180°, m) → l4b
  132. Rotate(liste5, 180°, m) → l5b
  133. Rotate(liste6, 180°, m) → l6b
  134. Rotate(liste7, 180°, m) → l7b
  135. Rotate(liste8, 180°, m) → l8b
  136. Sequence(Rotate[liste3', i, p], i, 0, (2 * π), (2 * π / 4)) → l3

AI Drawing Prompt Reference

Draw an interactive paving pattern on a cube surface. Start with a circle whose horizontal and vertical diameters intersect the axes, creating four points that define an outer square. Inside the square, connect diagonal points and midpoints to form several polygonal regions. Then, apply reflection and translation to duplicate one polygon into adjacent positions, creating a repeating tiling unit. Two sliders control the density and orientation of the tiles, dynamically showing symmetry and transformation effects.
The prompt above was compiled from the original drawing commands and is for reference only.