Tessellation: Constructing a Geometric Tiling via Rotation and Translation
Loading the math board and drawing, please wait…
This GeoGebra example demonstrates how to create a seamless tessellation (tiling) pattern by repeatedly applying rotation and translation to a basic polygon composed of semicircles and line segments. The core mathematical concepts involve geometric transformations (rotation, translation), symmetry, and the fundamental principle of tessellation—covering the plane with congruent shapes without gaps or overlaps. The construction uses GeoGebra commands such as Semicircle, Point, Polygon, LineBisector, Intersect, Rotate, Vector, and Translate to generate the base shape and its multiple copies (e.g., poly1', poly1'', etc.), arranged in a periodic grid. This is suitable for middle or high school students learning about transformations, symmetry, and tessellation, and can be used in classroom demonstrations or exploratory activities connecting mathematics with visual art.
GeoGebra Commands & Parameters
Semicircle(A, B) → cSemicircle(B, A) → dPoint(c) → CPoint(d) → DPolygon(A, C, B, D) → poly1, a, c_1, b, d_1LineBisector(A, B) → hIntersect(d, h, 1) → ERotate(A, (-(90°)), E) → A'Rotate(C, (-(90°)), E) → C'Rotate(B, (-(90°)), E) → B'Rotate(D, (-(90°)), E) → D'Polygon(A', C', B', D') → poly1', a', c', b', d'Rotate(A, 180°, E) → A'_1Rotate(C, 180°, E) → C'_1Rotate(B, 180°, E) → B'_1Rotate(D, 180°, E) → D'_1Polygon(A'_1, C'_1, B'_1, D'_1) → poly1'_1, a'_1, c'_1, b'_1, d'_1Rotate(A', 180°, E) → A''Rotate(C', 180°, E) → C''Rotate(B', 180°, E) → B''Rotate(D', 180°, E) → D''Polygon(A'', C'', B'', D'') → poly1'', a'', c'', b'', d''Intersect(c, h, 1) → FRotate(A, 180°, F) → A'_2Rotate(C, 180°, F) → C'_2Rotate(B, 180°, F) → B'_2Rotate(D, 180°, F) → D'_2Polygon(A'_2, C'_2, B'_2, D'_2) → poly1'_2, a'_2, c'_2, b'_2, d'_2Rotate(A'', 180°, A) → A'''Rotate(C'', 180°, A) → C'''Rotate(B'', 180°, A) → B'''Rotate(D'', 180°, A) → D'''Polygon(A''', C''', B''', D''') → poly1''', a''', c''', b''', d'''Rotate(A', 180°, B) → A''_1Rotate(C', 180°, B) → C''_1Rotate(B', 180°, B) → B''_1Rotate(D', 180°, B) → D''_1Polygon(A''_1, C''_1, B''_1, D''_1) → poly1''_1, a''_1, c''_1, b''_1, d''_1Rotate(A', 180°, B') → A''_2Rotate(C', 180°, B') → C''_2Rotate(B', 180°, B') → B''_2Rotate(D', 180°, B') → D''_2Polygon(A''_2, C''_2, B''_2, D''_2) → poly1''_2, a''_2, c''_2, b''_2, d''_2Rotate(A'', 180°, B'_1) → A'''_1Rotate(C'', 180°, B'_1) → C'''_1Rotate(B'', 180°, B'_1) → B'''_1Rotate(D'', 180°, B'_1) → D'''_1Polygon(A'''_1, C'''_1, B'''_1, D'''_1) → poly1'''_1, a'''_1, c'''_1, b'''_1, d'''_1Vector(A, B) → uTranslate(E, u) → E'Translate(F, u) → F'Rotate(A''_1, 180°, F') → MRotate(C''_1, 180°, F') → NRotate(B''_1, 180°, F') → ORotate(D''_1, 180°, F') → PPolygon(M, N, O, P) → poly3, m, n_1, o, pRotate(A'_2, 180°, A'_2) → QRotate(C'_2, 180°, A'_2) → RRotate(B'_2, 180°, A'_2) → SRotate(D'_2, 180°, A'_2) → TPolygon(Q, R, S, T) → poly4, q, r, s, tRotate(A, 180°, B) → A'_3Rotate(C, 180°, B) → C'_3Rotate(B, 180°, B) → B'_3Rotate(D, 180°, B) → D'_3Polygon(A'_3, C'_3, B'_3, D'_3) → poly1'_3, a'_3, c'_3, b'_3, d'_3Rotate(A', 180°, E') → A''_3Rotate(C', 180°, E') → C''_3Rotate(B', 180°, E') → B''_3Rotate(D', 180°, E') → D''_3Polygon(A''_3, C''_3, B''_3, D''_3) → poly1''_3, a''_3, c''_3, b''_3, d''_3Rotate(A'_1, 180°, B') → A_1Rotate(C'_1, 180°, B') → B_1Rotate(B'_1, 180°, B') → C_1Rotate(D'_1, 180°, B') → D_1Polygon(A_1, B_1, C_1, D_1) → poly6, a_1, b_1, c_2, d_2Translate(F, Vector[(-u)]) → F'_1Translate(E, Vector[(-u)]) → E'_1Rotate(A''', 180°, F'_1) → E_1Rotate(C''', 180°, F'_1) → F_1Rotate(B''', 180°, F'_1) → G_1Rotate(D''', 180°, F'_1) → H_1Polygon(E_1, F_1, G_1, H_1) → poly7, e_1, f_1, g_1, h_1Rotate(A'', 180°, E'_1) → A'''_2Rotate(C'', 180°, E'_1) → C'''_2Rotate(B'', 180°, E'_1) → B'''_2Rotate(D'', 180°, E'_1) → D'''_2Polygon(A'''_2, C'''_2, B'''_2, D'''_2) → poly1'''_2, a'''_2, c'''_2, b'''_2, d'''_2Rotate(A'_2, 180°, B'_2) → M_1Rotate(C'_2, 180°, B'_2) → N_1Rotate(B'_2, 180°, B'_2) → O_1Rotate(D'_2, 180°, B'_2) → P_1Polygon(M_1, N_1, O_1, P_1) → poly9, m_1, n_2, o_1, p_1Rotate(A, 180°, A) → A'_4Rotate(C, 180°, A) → C'_4Rotate(B, 180°, A) → B'_4Rotate(D, 180°, A) → D'_4Polygon(A'_4, C'_4, B'_4, D'_4) → poly1'_4, a'_4, c'_4, b'_4, d'_4Rotate(A'_1, 180°, B'_1) → Q_1Rotate(C'_1, 180°, B'_1) → R_1Rotate(B'_1, 180°, B'_1) → S_1Rotate(D'_1, 180°, B'_1) → T_1Polygon(Q_1, R_1, S_1, T_1) → poly10, q_1, r_1, s_1, t_1Rotate(F, 180°, E) → HRotate(A'_1, 180°, H) → W_1Rotate(C'_1, 180°, H) → Z_1Rotate(B'_1, 180°, H) → A_2Rotate(D'_1, 180°, H) → B_2Polygon(W_1, Z_1, A_2, B_2) → poly2, w_1, z_2, a_2, b_2Rotate(F', 180°, E') → H'Rotate(F'_1, 180°, E'_1) → H'_1Rotate(A_1, 180°, H') → GRotate(B_1, 180°, H') → IRotate(C_1, 180°, H') → JRotate(D_1, 180°, H') → KPolygon(G, I, J, K) → poly6', g, i, j, kRotate(Q_1, 180°, H'_1) → LRotate(R_1, 180°, H'_1) → URotate(S_1, 180°, H'_1) → VRotate(T_1, 180°, H'_1) → WPolygon(L, U, V, W) → poly10', l, u_1, v, wRotate(A'''_2, 180°, B'''_2) → ZRotate(C'''_2, 180°, B'''_2) → I_1Rotate(B'''_2, 180°, B'''_2) → J_1Rotate(D'''_2, 180°, B'''_2) → K_1Polygon(Z, I_1, J_1, K_1) → poly5, z_1, i_1, j_1, k_1Rotate(A''_3, 180°, A''_3) → L_1Rotate(C''_3, 180°, A''_3) → U_1Rotate(B''_3, 180°, A''_3) → V_1Rotate(D''_3, 180°, A''_3) → C_2Polygon(L_1, U_1, V_1, C_2) → poly8, l_1, u_2, v_1, c_3