Rotational Tessellation (WPG "p2") – Complex Shapes from Cut-Outs

Rotational Tessellation (WPG "p2") – Complex Shapes from Cut-Outs
Loading the math board and drawing, please wait…
2014-06-13 17:11
This GeoGebra example demonstrates how to create a periodic tessellation of complex shapes derived from cut-out quadrilaterals, using rotational symmetry of the wallpaper group p2. The core mathematical concepts include plane tessellation, rotational and translational symmetry, and the structure of wallpaper groups. The construction uses Polygon to define the base quadrilateral, Midpoint and PointIn to locate cutting points, then Mirror and Rotate commands to generate multiple sub-shapes (poly2 and rotated copies), with a slider controlling the rotation angle α to adjust the repeating unit. Suitable for high school to early college geometry, mathematical art, or computer graphics courses, this example helps learners understand how symmetry groups govern the design of seamless patterns.

GeoGebra Commands & Parameters

  1. Polygon(A, B, C, D) → poly1, a, b, c, d
  2. Midpoint(D, C) → E
  3. Midpoint(C, B) → F
  4. Midpoint(B, A) → G
  5. Midpoint(A, D) → H
  6. PointIn(poly1) → I
  7. PointIn(poly1) → J
  8. PointIn(poly1) → K
  9. PointIn(poly1) → L
  10. Mirror(I, H) → I'
  11. Mirror(L, G) → L'
  12. Mirror(K, F) → K'
  13. Mirror(J, E) → J'
  14. Polygon(A, I', F, K, B, L', G, L, H, I, D, J', E, J, C, K') → poly2, a_1, k', f, k, b_1, l', g, l, i', h, i, d_1, j', e, j, c_1
  15. Max(Min[α, 180*°], 0*°) → ang1
  16. Rotate(A, ang1, E) → A'
  17. Rotate(I', ang1, E) → I''
  18. Rotate(H, ang1, E) → H'
  19. Rotate(I, ang1, E) → I'_1
  20. Rotate(D, ang1, E) → D'
  21. Rotate(J', ang1, E) → J''
  22. Rotate(E, ang1, E) → E'
  23. Rotate(J, ang1, E) → J'_1
  24. Rotate(C, ang1, E) → C'
  25. Rotate(K', ang1, E) → K''
  26. Rotate(F, ang1, E) → F'
  27. Rotate(K, ang1, E) → K'_1
  28. Rotate(B, ang1, E) → B'
  29. Rotate(L', ang1, E) → L''
  30. Rotate(G, ang1, E) → G'
  31. Rotate(L, ang1, E) → L'_1
  32. Polygon(A', I'', F', K'_1, B', L'', G', L'_1, H', I'_1, D', J'', E', J'_1, C', K'') → poly2', a', k'', f', k'_1, b', l'', g', l'_1, i'', h', i'_1, d', j'', e', j'_1, c'
  33. Rotate(A, ang1, F) → A'_1
  34. Rotate(I', ang1, F) → I''_1
  35. Rotate(H, ang1, F) → H'_1
  36. Rotate(I, ang1, F) → I'_2
  37. Rotate(D, ang1, F) → D'_1
  38. Rotate(J', ang1, F) → J''_1
  39. Rotate(E, ang1, F) → E'_1
  40. Rotate(J, ang1, F) → J'_2
  41. Rotate(C, ang1, F) → C'_1
  42. Rotate(K', ang1, F) → K''_1
  43. Rotate(F, ang1, F) → F'_1
  44. Rotate(K, ang1, F) → K'_2
  45. Rotate(B, ang1, F) → B'_1
  46. Rotate(L', ang1, F) → L''_1
  47. Rotate(G, ang1, F) → G'_1
  48. Rotate(L, ang1, F) → L'_2
  49. Polygon(A'_1, I''_1, F'_1, K'_2, B'_1, L''_1, G'_1, L'_2, H'_1, I'_2, D'_1, J''_1, E'_1, J'_2, C'_1, K''_1) → poly2'_1, a'_1, k''_1, f'_1, k'_2, b'_1, l''_1, g'_1, l'_2, i''_1, h'_1, i'_2, d'_1, j''_1, e'_1, j'_2, c'_1
  50. Rotate(A, ang1, G) → A'_2
  51. Rotate(I', ang1, G) → I''_2
  52. Rotate(H, ang1, G) → H'_2
  53. Rotate(I, ang1, G) → I'_3
  54. Rotate(D, ang1, G) → D'_2
  55. Rotate(J', ang1, G) → J''_2
  56. Rotate(E, ang1, G) → E'_2
  57. Rotate(J, ang1, G) → J'_3
  58. Rotate(C, ang1, G) → C'_2
  59. Rotate(K', ang1, G) → K''_2
  60. Rotate(F, ang1, G) → F'_2
  61. Rotate(K, ang1, G) → K'_3
  62. Rotate(B, ang1, G) → B'_2
  63. Rotate(L', ang1, G) → L''_2
  64. Rotate(G, ang1, G) → G'_2
  65. Rotate(L, ang1, G) → L'_3
  66. Polygon(A'_2, I''_2, F'_2, K'_3, B'_2, L''_2, G'_2, L'_3, H'_2, I'_3, D'_2, J''_2, E'_2, J'_3, C'_2, K''_2) → poly2'_2, a'_2, k''_2, f'_2, k'_3, b'_2, l''_2, g'_2, l'_3, i''_2, h'_2, i'_3, d'_2, j''_2, e'_2, j'_3, c'_2
  67. Rotate(A, ang1, H) → A'_3
  68. Rotate(I', ang1, H) → I''_3
  69. Rotate(H, ang1, H) → H'_3
  70. Rotate(I, ang1, H) → I'_4
  71. Rotate(D, ang1, H) → D'_3
  72. Rotate(J', ang1, H) → J''_3
  73. Rotate(E, ang1, H) → E'_3
  74. Rotate(J, ang1, H) → J'_4
  75. Rotate(C, ang1, H) → C'_3
  76. Rotate(K', ang1, H) → K''_3
  77. Rotate(F, ang1, H) → F'_3
  78. Rotate(K, ang1, H) → K'_4
  79. Rotate(B, ang1, H) → B'_3
  80. Rotate(L', ang1, H) → L''_3
  81. Rotate(G, ang1, H) → G'_3
  82. Rotate(L, ang1, H) → L'_4
  83. Polygon(A'_3, I''_3, F'_3, K'_4, B'_3, L''_3, G'_3, L'_4, H'_3, I'_4, D'_3, J''_3, E'_3, J'_4, C'_3, K''_3) → poly2'_3, a'_3, k''_3, f'_3, k'_4, b'_3, l''_3, g'_3, l'_4, i''_3, h'_3, i'_4, d'_3, j''_3, e'_3, j'_4, c'_3
  84. Polygon(H, D, I) → poly3, i_1, h_1, d_2
  85. Polygon(A, H, I') → poly4, i'_5, a_2, h_2
  86. Max(Min[α - 180°, 180*°], 0*°) → ang2
  87. Rotate(A'_3, ang2, G'_3) → M
  88. Rotate(I''_3, ang2, G'_3) → N
  89. Rotate(H'_3, ang2, G'_3) → O
  90. Rotate(I'_4, ang2, G'_3) → P
  91. Rotate(D'_3, ang2, G'_3) → Q
  92. Rotate(J''_3, ang2, G'_3) → R
  93. Rotate(E'_3, ang2, G'_3) → S
  94. Rotate(J'_4, ang2, G'_3) → T
  95. Rotate(C'_3, ang2, G'_3) → U
  96. Rotate(K''_3, ang2, G'_3) → V
  97. Rotate(F'_3, ang2, G'_3) → W
  98. Rotate(K'_4, ang2, G'_3) → Z
  99. Rotate(B'_3, ang2, G'_3) → A_1
  100. Rotate(L''_3, ang2, G'_3) → B_1
  101. Rotate(G'_3, ang2, G'_3) → C_1
  102. Rotate(L'_4, ang2, G'_3) → D_1
  103. Polygon(M, N, W, Z, A_1, B_1, C_1, D_1, O, P, Q, R, S, T, U, V) → poly5, m, v, w, z, a_3, b_2, c_2, d_3, n, o, p, q, r, s, t, u
  104. Rotate(A', ang2, G') → A''
  105. Rotate(I'', ang2, G') → I'''
  106. Rotate(H', ang2, G') → H''
  107. Rotate(I'_1, ang2, G') → E_1
  108. Rotate(D', ang2, G') → D''
  109. Rotate(J'', ang2, G') → J'''
  110. Rotate(E', ang2, G') → E''
  111. Rotate(J'_1, ang2, G') → F_1
  112. Rotate(C', ang2, G') → C''
  113. Rotate(K'', ang2, G') → K'''
  114. Rotate(F', ang2, G') → F''
  115. Rotate(K'_1, ang2, G') → G_1
  116. Rotate(B', ang2, G') → B''
  117. Rotate(L'', ang2, G') → L'''
  118. Rotate(G', ang2, G') → G''
  119. Rotate(L'_1, ang2, G') → H_1
  120. Polygon(A'', I''', F'', G_1, B'', L''', G'', H_1, H'', E_1, D'', J''', E'', F_1, C'', K''') → poly2'', a'', k''', f'', g_1, b'', l''', g'', h_3, i''', h'', e_1, d'', j''', e'', f_1, c''
  121. Rotate(A'_1, ang2, G'_1) → I_1
  122. Rotate(I''_1, ang2, G'_1) → J_1
  123. Rotate(H'_1, ang2, G'_1) → K_1
  124. Rotate(I'_2, ang2, G'_1) → L_1
  125. Rotate(D'_1, ang2, G'_1) → M_1
  126. Rotate(J''_1, ang2, G'_1) → N_1
  127. Rotate(E'_1, ang2, G'_1) → O_1
  128. Rotate(J'_2, ang2, G'_1) → P_1
  129. Rotate(C'_1, ang2, G'_1) → Q_1
  130. Rotate(K''_1, ang2, G'_1) → R_1
  131. Rotate(F'_1, ang2, G'_1) → S_1
  132. Rotate(K'_2, ang2, G'_1) → T_1
  133. Rotate(B'_1, ang2, G'_1) → U_1
  134. Rotate(L''_1, ang2, G'_1) → V_1
  135. Rotate(G'_1, ang2, G'_1) → W_1
  136. Rotate(L'_2, ang2, G'_1) → Z_1
  137. Polygon(I_1, J_1, S_1, T_1, U_1, V_1, W_1, Z_1, K_1, L_1, M_1, N_1, O_1, P_1, Q_1, R_1) → poly6, i_2, r_1, s_1, t_1, u_1, v_1, w_1, z_1, j_1, k_1, l_1, m_1, n_1, o_1, p_1, q_1
  138. Rotate(A'_1, ang2, H'_1) → A_2
  139. Rotate(I''_1, ang2, H'_1) → B_2
  140. Rotate(H'_1, ang2, H'_1) → C_2
  141. Rotate(I'_2, ang2, H'_1) → D_2
  142. Rotate(D'_1, ang2, H'_1) → E_2
  143. Rotate(J''_1, ang2, H'_1) → F_2
  144. Rotate(E'_1, ang2, H'_1) → G_2
  145. Rotate(J'_2, ang2, H'_1) → H_2
  146. Rotate(C'_1, ang2, H'_1) → I_2
  147. Rotate(K''_1, ang2, H'_1) → J_2
  148. Rotate(F'_1, ang2, H'_1) → K_2
  149. Rotate(K'_2, ang2, H'_1) → L_2
  150. Rotate(B'_1, ang2, H'_1) → M_2
  151. Rotate(L''_1, ang2, H'_1) → N_2
  152. Rotate(G'_1, ang2, H'_1) → O_2
  153. Rotate(L'_2, ang2, H'_1) → P_2
  154. Polygon(A_2, B_2, K_2, L_2, M_2, N_2, O_2, P_2, C_2, D_2, E_2, F_2, G_2, H_2, I_2, J_2) → poly7, a_4, j_2, k_2, l_2, m_2, n_2, o_2, p_2, b_3, c_3, d_4, e_2, f_2, g_2, h_4, i_3
  155. Rotate(A'_2, ang2, H'_2) → Q_2
  156. Rotate(I''_2, ang2, H'_2) → R_2
  157. Rotate(H'_2, ang2, H'_2) → S_2
  158. Rotate(I'_3, ang2, H'_2) → T_2
  159. Rotate(D'_2, ang2, H'_2) → U_2
  160. Rotate(J''_2, ang2, H'_2) → V_2
  161. Rotate(E'_2, ang2, H'_2) → W_2
  162. Rotate(J'_3, ang2, H'_2) → Z_2
  163. Rotate(C'_2, ang2, H'_2) → A_3
  164. Rotate(K''_2, ang2, H'_2) → B_3
  165. Rotate(F'_2, ang2, H'_2) → C_3
  166. Rotate(K'_3, ang2, H'_2) → D_3
  167. Rotate(B'_2, ang2, H'_2) → E_3
  168. Rotate(L''_2, ang2, H'_2) → F_3
  169. Rotate(G'_2, ang2, H'_2) → G_3
  170. Rotate(L'_3, ang2, H'_2) → H_3
  171. Polygon(Q_2, R_2, C_3, D_3, E_3, F_3, G_3, H_3, S_2, T_2, U_2, V_2, W_2, Z_2, A_3, B_3) → poly8, q_2, b_4, c_4, d_5, e_3, f_3, g_3, h_5, r_2, s_2, t_2, u_2, v_2, w_2, z_2, a_5
  172. Rotate(A'_3, ang2, E'_3) → I_3
  173. Rotate(I''_3, ang2, E'_3) → J_3
  174. Rotate(H'_3, ang2, E'_3) → K_3
  175. Rotate(I'_4, ang2, E'_3) → L_3
  176. Rotate(D'_3, ang2, E'_3) → M_3
  177. Rotate(J''_3, ang2, E'_3) → N_3
  178. Rotate(E'_3, ang2, E'_3) → O_3
  179. Rotate(J'_4, ang2, E'_3) → P_3
  180. Rotate(C'_3, ang2, E'_3) → Q_3
  181. Rotate(K''_3, ang2, E'_3) → R_3
  182. Rotate(F'_3, ang2, E'_3) → S_3
  183. Rotate(K'_4, ang2, E'_3) → T_3
  184. Rotate(B'_3, ang2, E'_3) → U_3
  185. Rotate(L''_3, ang2, E'_3) → V_3
  186. Rotate(G'_3, ang2, E'_3) → W_3
  187. Rotate(L'_4, ang2, E'_3) → Z_3
  188. Polygon(I_3, J_3, S_3, T_3, U_3, V_3, W_3, Z_3, K_3, L_3, M_3, N_3, O_3, P_3, Q_3, R_3) → poly9, i_4, r_3, s_3, t_3, u_3, v_3, w_3, z_3, j_3, k_3, l_3, m_3, n_3, o_3, p_3, q_3
  189. Rotate(A'_2, ang2, E'_2) → A_4
  190. Rotate(I''_2, ang2, E'_2) → B_4
  191. Rotate(H'_2, ang2, E'_2) → C_4
  192. Rotate(I'_3, ang2, E'_2) → D_4
  193. Rotate(D'_2, ang2, E'_2) → E_4
  194. Rotate(J''_2, ang2, E'_2) → F_4
  195. Rotate(E'_2, ang2, E'_2) → G_4
  196. Rotate(J'_3, ang2, E'_2) → H_4
  197. Rotate(C'_2, ang2, E'_2) → I_4
  198. Rotate(K''_2, ang2, E'_2) → J_4
  199. Rotate(F'_2, ang2, E'_2) → K_4
  200. Rotate(K'_3, ang2, E'_2) → L_4
  201. Rotate(B'_2, ang2, E'_2) → M_4
  202. Rotate(L''_2, ang2, E'_2) → N_4
  203. Rotate(G'_2, ang2, E'_2) → O_4
  204. Rotate(L'_3, ang2, E'_2) → P_4
  205. Polygon(A_4, B_4, K_4, L_4, M_4, N_4, O_4, P_4, C_4, D_4, E_4, F_4, G_4, H_4, I_4, J_4) → poly10, a_6, j_4, k_4, l_4, m_4, n_4, o_4, p_4, b_5, c_5, d_6, e_4, f_4, g_4, h_6, i_5
  206. Rotate(A'_3, ang2, F'_3) → Q_4
  207. Rotate(I''_3, ang2, F'_3) → R_4
  208. Rotate(H'_3, ang2, F'_3) → S_4
  209. Rotate(I'_4, ang2, F'_3) → T_4
  210. Rotate(D'_3, ang2, F'_3) → U_4
  211. Rotate(J''_3, ang2, F'_3) → V_4
  212. Rotate(E'_3, ang2, F'_3) → W_4
  213. Rotate(J'_4, ang2, F'_3) → Z_4
  214. Rotate(C'_3, ang2, F'_3) → A_5
  215. Rotate(K''_3, ang2, F'_3) → B_5
  216. Rotate(F'_3, ang2, F'_3) → C_5
  217. Rotate(K'_4, ang2, F'_3) → D_5
  218. Rotate(B'_3, ang2, F'_3) → E_5
  219. Rotate(L''_3, ang2, F'_3) → F_5
  220. Rotate(G'_3, ang2, F'_3) → G_5
  221. Rotate(L'_4, ang2, F'_3) → H_5
  222. Polygon(Q_4, R_4, C_5, D_5, E_5, F_5, G_5, H_5, S_4, T_4, U_4, V_4, W_4, Z_4, A_5, B_5) → poly11, q_4, b_6, c_6, d_7, e_5, f_5, g_5, h_7, r_4, s_4, t_4, u_4, v_4, w_4, z_4, a_7

AI Drawing Prompt Reference

Create a periodic tessellation of complex shapes using rotational symmetry from the wallpaper group p2. Start by constructing a base quadrilateral, then select random points on its sides. Mirror and rotate these points to generate multiple sub-shapes. Adjust the rotation angle with a slider to control the repeating unit size, resulting in a seamless pattern. The final image should display intricate geometric structures and symmetry, suitable for mathematical art or computer graphics education.
The prompt above was compiled from the original drawing commands and is for reference only.