Square Spirals: Four Interlocking Spirals from Nested Rotated Squares
Loading the math board and drawing, please wait…
This applet demonstrates four spirals formed by squares inscribed in larger squares, each rotated successively to create a visually striking interlocking pattern. The core mathematical concepts involve geometric transformations (rotation and reflection), square nesting, proportional scaling, and piecewise functions that describe the spiral paths. The construction uses GeoGebra commands such as Point, Segment, Circle, Intersect, and Polygon, with objects including points A, B, C, D, E, F, G, H, I, J, K, L, segments f, g, h, i, j, k, l, m, n, p, q, r, s, t, a, b, circles c, d, and polygons poly1, poly2. By iteratively inscribing squares and connecting key vertices, the applet generates smooth spiral curves that illustrate the relationship between geometry and sequence. This resource is suitable for high school or early college students exploring geometric constructions, transformations, and the aesthetic applications of mathematics, and can serve as an engaging example for dynamic geometry software or coding projects.
GeoGebra Commands & Parameters
Point(xAxis) → APoint(xAxis) → BPoint(yAxis) → CSegment(C, A) → fSegment(A, B) → gSegment(B, D) → hSegment(D, C) → iPoint(g) → ECircle(B, d1) → cIntersect(c, h, 1) → FPolygon(E, F, 4) → poly1, j, k, l, m, G, HSegment(H, E) → nSegment(H, G) → pSegment(G, F) → qSegment(E, F) → rCircle(E, d2) → dIntersect(d, r, 1) → ICircle(F, d2) → eIntersect(e, q, 1) → JPolygon(I, J, 4) → poly2, s, t, a, b, K, LSegment(L, I) → f_1Segment(I, J) → g_1Segment(J, K) → h_1Segment(K, L) → i_1Circle(I, d3) → c_1Intersect(c_1, g_1, 1) → MCircle(J, d3) → d_1Intersect(d_1, h_1, 1) → NPolygon(M, N, 4) → poly3, j_1, k_1, l_1, m_1, O, PSegment(P, M) → n_1Segment(M, N) → p_1Segment(N, O) → q_1Segment(O, P) → r_1Circle(M, d4) → e_1Intersect(e_1, p_1, 1) → QCircle(N, d4) → s_1Intersect(s_1, q_1, 1) → RPolygon(Q, R, 4) → poly4, t_1, a_1, b_1, f_2, S, TSegment(S, T) → g_2Segment(T, Q) → h_2Segment(Q, R) → i_2Segment(R, S) → j_2Circle(Q, d5) → c_2Intersect(c_2, i_2, 1) → UCircle(R, d5) → d_2Intersect(d_2, j_2, 1) → VPolygon(U, V, 4) → poly5, k_2, l_2, m_2, n_2, W, ZSegment(Z, U) → p_2Segment(V, U) → q_2Segment(V, W) → r_2Segment(W, Z) → s_2Circle(U, d6) → e_2Intersect(e_2, q_2, 1) → A_1Circle(V, d6) → t_2Intersect(t_2, r_2, 1) → B_1Polygon(A_1, B_1, 4) → poly6, a_2, b_2, f_3, g_3, C_1, D_1Segment(D_1, A_1) → h_3Segment(A_1, B_1) → i_3Segment(B_1, C_1) → j_3Segment(C_1, D_1) → k_3Circle(A_1, d7) → c_3Intersect(c_3, i_3, 1) → E_1Circle(B_1, d7) → d_3Intersect(d_3, j_3, 1) → F_1Polygon(E_1, F_1, 4) → poly7, l_3, m_3, n_3, p_3, G_1, H_1Segment(F_1, E_1) → q_3Segment(E_1, H_1) → r_3Segment(H_1, G_1) → s_3Segment(G_1, F_1) → t_3Circle(E_1, d8) → e_3Intersect(e_3, q_3, 1) → I_1Circle(F_1, d8) → c_4Intersect(c_4, t_3, 1) → J_1Polygon(I_1, J_1, 4) → poly8, a_3, b_3, f_4, g_4, K_1, L_1Segment(K_1, L_1) → h_4Segment(L_1, I_1) → i_4Segment(I_1, J_1) → j_4Segment(K_1, J_1) → k_4Circle(I_1, d9) → d_4Intersect(d_4, j_4, 1) → M_1Circle(J_1, d9) → e_4Intersect(e_4, k_4, 1) → N_1Polygon(M_1, N_1, 4) → poly9, l_4, m_4, n_4, p_4, O_1, P_1Segment(O_1, N_1) → q_4Segment(N_1, M_1) → r_4Segment(M_1, P_1) → s_4Segment(P_1, O_1) → t_4Circle(M_1, d10) → c_5Circle(N_1, d10) → d_5Intersect(c_5, r_4, 1) → Q_1Intersect(d_5, q_4, 1) → R_1Polygon(Q_1, R_1, 4) → poly10, a_4, b_4, f_5, g_5, S_1, T_1Segment(R_1, S_1) → h_5Segment(S_1, T_1) → i_5Segment(T_1, Q_1) → j_5Segment(Q_1, R_1) → k_5Circle(R_1, d11) → e_5Circle(S_1, d11) → p_5Intersect(e_5, h_5, 1) → U_1Intersect(p_5, i_5, 1) → V_1Polygon(U_1, V_1, 4) → poly11, l_5, m_5, n_5, q_5, W_1, Z_1Segment(U_1, V_1) → r_5Segment(V_1, W_1) → s_5Segment(W_1, Z_1) → t_5Segment(Z_1, U_1) → a_5Circle(Z_1, d12) → c_6Circle(U_1, d12) → d_6Intersect(c_6, a_5, 1) → A_2Intersect(d_6, r_5, 1) → B_2Polygon(A_2, B_2, 4) → poly12, b_5, f_6, g_6, h_6, C_2, D_2Segment(B_2, C_2) → i_6Segment(C_2, D_2) → j_6Segment(D_2, A_2) → k_6Segment(A_2, B_2) → l_6Circle(A_2, d13) → e_6Circle(B_2, d13) → p_6Intersect(p_6, i_6, 1) → E_2Intersect(e_6, l_6, 1) → F_2Polygon(F_2, E_2, 4) → poly13, m_6, n_6, q_6, r_6, G_2, H_2Segment(G_2, H_2) → s_6Segment(G_2, E_2) → t_6Segment(E_2, F_2) → a_6Segment(F_2, H_2) → b_6Circle(F_2, d13) → c_7Circle(E_2, d13) → d_7Intersect(c_7, a_6, 1) → I_2Intersect(d_7, t_6, 1) → J_2Polygon(I_2, J_2, 4) → poly14, f_7, g_7, h_7, i_7, K_2, L_2Segment(J_2, K_2) → j_7Segment(K_2, L_2) → k_7Segment(L_2, I_2) → l_7Segment(I_2, J_2) → m_7Circle(L_2, d15) → e_7Circle(I_2, d15) → p_7Intersect(e_7, l_7, 1) → M_2Intersect(p_7, m_7, 1) → N_2Polygon(M_2, N_2, 4) → poly15, n_7, q_7, r_7, s_7, O_2, P_2Segment(O_2, P_2) → t_7Segment(P_2, M_2) → a_7Segment(M_2, N_2) → b_7Segment(N_2, O_2) → f_8