Rotational Tessellation (WPG "p2") – Complex Shapes from Cut-Outs
Loading the math board and drawing, please wait…
In collections
Tessellations of Common Figures
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
Polygon(A, B, C, D) → poly1, a, b, c, dMidpoint(D, C) → EMidpoint(C, B) → FMidpoint(B, A) → GMidpoint(A, D) → HPointIn(poly1) → IPointIn(poly1) → JPointIn(poly1) → KPointIn(poly1) → LMirror(I, H) → I'Mirror(L, G) → L'Mirror(K, F) → K'Mirror(J, E) → J'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_1Max(Min[α, 180*°], 0*°) → ang1Rotate(A, ang1, E) → A'Rotate(I', ang1, E) → I''Rotate(H, ang1, E) → H'Rotate(I, ang1, E) → I'_1Rotate(D, ang1, E) → D'Rotate(J', ang1, E) → J''Rotate(E, ang1, E) → E'Rotate(J, ang1, E) → J'_1Rotate(C, ang1, E) → C'Rotate(K', ang1, E) → K''Rotate(F, ang1, E) → F'Rotate(K, ang1, E) → K'_1Rotate(B, ang1, E) → B'Rotate(L', ang1, E) → L''Rotate(G, ang1, E) → G'Rotate(L, ang1, E) → L'_1Polygon(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'Rotate(A, ang1, F) → A'_1Rotate(I', ang1, F) → I''_1Rotate(H, ang1, F) → H'_1Rotate(I, ang1, F) → I'_2Rotate(D, ang1, F) → D'_1Rotate(J', ang1, F) → J''_1Rotate(E, ang1, F) → E'_1Rotate(J, ang1, F) → J'_2Rotate(C, ang1, F) → C'_1Rotate(K', ang1, F) → K''_1Rotate(F, ang1, F) → F'_1Rotate(K, ang1, F) → K'_2Rotate(B, ang1, F) → B'_1Rotate(L', ang1, F) → L''_1Rotate(G, ang1, F) → G'_1Rotate(L, ang1, F) → L'_2Polygon(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'_1Rotate(A, ang1, G) → A'_2Rotate(I', ang1, G) → I''_2Rotate(H, ang1, G) → H'_2Rotate(I, ang1, G) → I'_3Rotate(D, ang1, G) → D'_2Rotate(J', ang1, G) → J''_2Rotate(E, ang1, G) → E'_2Rotate(J, ang1, G) → J'_3Rotate(C, ang1, G) → C'_2Rotate(K', ang1, G) → K''_2Rotate(F, ang1, G) → F'_2Rotate(K, ang1, G) → K'_3Rotate(B, ang1, G) → B'_2Rotate(L', ang1, G) → L''_2Rotate(G, ang1, G) → G'_2Rotate(L, ang1, G) → L'_3Polygon(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'_2Rotate(A, ang1, H) → A'_3Rotate(I', ang1, H) → I''_3Rotate(H, ang1, H) → H'_3Rotate(I, ang1, H) → I'_4Rotate(D, ang1, H) → D'_3Rotate(J', ang1, H) → J''_3Rotate(E, ang1, H) → E'_3Rotate(J, ang1, H) → J'_4Rotate(C, ang1, H) → C'_3Rotate(K', ang1, H) → K''_3Rotate(F, ang1, H) → F'_3Rotate(K, ang1, H) → K'_4Rotate(B, ang1, H) → B'_3Rotate(L', ang1, H) → L''_3Rotate(G, ang1, H) → G'_3Rotate(L, ang1, H) → L'_4Polygon(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'_3Polygon(H, D, I) → poly3, i_1, h_1, d_2Polygon(A, H, I') → poly4, i'_5, a_2, h_2Max(Min[α - 180°, 180*°], 0*°) → ang2Rotate(A'_3, ang2, G'_3) → MRotate(I''_3, ang2, G'_3) → NRotate(H'_3, ang2, G'_3) → ORotate(I'_4, ang2, G'_3) → PRotate(D'_3, ang2, G'_3) → QRotate(J''_3, ang2, G'_3) → RRotate(E'_3, ang2, G'_3) → SRotate(J'_4, ang2, G'_3) → TRotate(C'_3, ang2, G'_3) → URotate(K''_3, ang2, G'_3) → VRotate(F'_3, ang2, G'_3) → WRotate(K'_4, ang2, G'_3) → ZRotate(B'_3, ang2, G'_3) → A_1Rotate(L''_3, ang2, G'_3) → B_1Rotate(G'_3, ang2, G'_3) → C_1Rotate(L'_4, ang2, G'_3) → D_1Polygon(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, uRotate(A', ang2, G') → A''Rotate(I'', ang2, G') → I'''Rotate(H', ang2, G') → H''Rotate(I'_1, ang2, G') → E_1Rotate(D', ang2, G') → D''Rotate(J'', ang2, G') → J'''Rotate(E', ang2, G') → E''Rotate(J'_1, ang2, G') → F_1Rotate(C', ang2, G') → C''Rotate(K'', ang2, G') → K'''Rotate(F', ang2, G') → F''Rotate(K'_1, ang2, G') → G_1Rotate(B', ang2, G') → B''Rotate(L'', ang2, G') → L'''Rotate(G', ang2, G') → G''Rotate(L'_1, ang2, G') → H_1Polygon(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''Rotate(A'_1, ang2, G'_1) → I_1Rotate(I''_1, ang2, G'_1) → J_1Rotate(H'_1, ang2, G'_1) → K_1Rotate(I'_2, ang2, G'_1) → L_1Rotate(D'_1, ang2, G'_1) → M_1Rotate(J''_1, ang2, G'_1) → N_1Rotate(E'_1, ang2, G'_1) → O_1Rotate(J'_2, ang2, G'_1) → P_1Rotate(C'_1, ang2, G'_1) → Q_1Rotate(K''_1, ang2, G'_1) → R_1Rotate(F'_1, ang2, G'_1) → S_1Rotate(K'_2, ang2, G'_1) → T_1Rotate(B'_1, ang2, G'_1) → U_1Rotate(L''_1, ang2, G'_1) → V_1Rotate(G'_1, ang2, G'_1) → W_1Rotate(L'_2, ang2, G'_1) → Z_1Polygon(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_1Rotate(A'_1, ang2, H'_1) → A_2Rotate(I''_1, ang2, H'_1) → B_2Rotate(H'_1, ang2, H'_1) → C_2Rotate(I'_2, ang2, H'_1) → D_2Rotate(D'_1, ang2, H'_1) → E_2Rotate(J''_1, ang2, H'_1) → F_2Rotate(E'_1, ang2, H'_1) → G_2Rotate(J'_2, ang2, H'_1) → H_2Rotate(C'_1, ang2, H'_1) → I_2Rotate(K''_1, ang2, H'_1) → J_2Rotate(F'_1, ang2, H'_1) → K_2Rotate(K'_2, ang2, H'_1) → L_2Rotate(B'_1, ang2, H'_1) → M_2Rotate(L''_1, ang2, H'_1) → N_2Rotate(G'_1, ang2, H'_1) → O_2Rotate(L'_2, ang2, H'_1) → P_2Polygon(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_3Rotate(A'_2, ang2, H'_2) → Q_2Rotate(I''_2, ang2, H'_2) → R_2Rotate(H'_2, ang2, H'_2) → S_2Rotate(I'_3, ang2, H'_2) → T_2Rotate(D'_2, ang2, H'_2) → U_2Rotate(J''_2, ang2, H'_2) → V_2Rotate(E'_2, ang2, H'_2) → W_2Rotate(J'_3, ang2, H'_2) → Z_2Rotate(C'_2, ang2, H'_2) → A_3Rotate(K''_2, ang2, H'_2) → B_3Rotate(F'_2, ang2, H'_2) → C_3Rotate(K'_3, ang2, H'_2) → D_3Rotate(B'_2, ang2, H'_2) → E_3Rotate(L''_2, ang2, H'_2) → F_3Rotate(G'_2, ang2, H'_2) → G_3Rotate(L'_3, ang2, H'_2) → H_3Polygon(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_5Rotate(A'_3, ang2, E'_3) → I_3Rotate(I''_3, ang2, E'_3) → J_3Rotate(H'_3, ang2, E'_3) → K_3Rotate(I'_4, ang2, E'_3) → L_3Rotate(D'_3, ang2, E'_3) → M_3Rotate(J''_3, ang2, E'_3) → N_3Rotate(E'_3, ang2, E'_3) → O_3Rotate(J'_4, ang2, E'_3) → P_3Rotate(C'_3, ang2, E'_3) → Q_3Rotate(K''_3, ang2, E'_3) → R_3Rotate(F'_3, ang2, E'_3) → S_3Rotate(K'_4, ang2, E'_3) → T_3Rotate(B'_3, ang2, E'_3) → U_3Rotate(L''_3, ang2, E'_3) → V_3Rotate(G'_3, ang2, E'_3) → W_3Rotate(L'_4, ang2, E'_3) → Z_3Polygon(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_3Rotate(A'_2, ang2, E'_2) → A_4Rotate(I''_2, ang2, E'_2) → B_4Rotate(H'_2, ang2, E'_2) → C_4Rotate(I'_3, ang2, E'_2) → D_4Rotate(D'_2, ang2, E'_2) → E_4Rotate(J''_2, ang2, E'_2) → F_4Rotate(E'_2, ang2, E'_2) → G_4Rotate(J'_3, ang2, E'_2) → H_4Rotate(C'_2, ang2, E'_2) → I_4Rotate(K''_2, ang2, E'_2) → J_4Rotate(F'_2, ang2, E'_2) → K_4Rotate(K'_3, ang2, E'_2) → L_4Rotate(B'_2, ang2, E'_2) → M_4Rotate(L''_2, ang2, E'_2) → N_4Rotate(G'_2, ang2, E'_2) → O_4Rotate(L'_3, ang2, E'_2) → P_4Polygon(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_5Rotate(A'_3, ang2, F'_3) → Q_4Rotate(I''_3, ang2, F'_3) → R_4Rotate(H'_3, ang2, F'_3) → S_4Rotate(I'_4, ang2, F'_3) → T_4Rotate(D'_3, ang2, F'_3) → U_4Rotate(J''_3, ang2, F'_3) → V_4Rotate(E'_3, ang2, F'_3) → W_4Rotate(J'_4, ang2, F'_3) → Z_4Rotate(C'_3, ang2, F'_3) → A_5Rotate(K''_3, ang2, F'_3) → B_5Rotate(F'_3, ang2, F'_3) → C_5Rotate(K'_4, ang2, F'_3) → D_5Rotate(B'_3, ang2, F'_3) → E_5Rotate(L''_3, ang2, F'_3) → F_5Rotate(G'_3, ang2, F'_3) → G_5Rotate(L'_4, ang2, F'_3) → H_5Polygon(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.