Square Spirals: Four Interlocking Spirals from Nested Rotated Squares

Square Spirals: Four Interlocking Spirals from Nested Rotated Squares
Loading the math board and drawing, please wait…
2020-03-01 10:10
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

  1. Point(xAxis) → A
  2. Point(xAxis) → B
  3. Point(yAxis) → C
  4. Segment(C, A) → f
  5. Segment(A, B) → g
  6. Segment(B, D) → h
  7. Segment(D, C) → i
  8. Point(g) → E
  9. Circle(B, d1) → c
  10. Intersect(c, h, 1) → F
  11. Polygon(E, F, 4) → poly1, j, k, l, m, G, H
  12. Segment(H, E) → n
  13. Segment(H, G) → p
  14. Segment(G, F) → q
  15. Segment(E, F) → r
  16. Circle(E, d2) → d
  17. Intersect(d, r, 1) → I
  18. Circle(F, d2) → e
  19. Intersect(e, q, 1) → J
  20. Polygon(I, J, 4) → poly2, s, t, a, b, K, L
  21. Segment(L, I) → f_1
  22. Segment(I, J) → g_1
  23. Segment(J, K) → h_1
  24. Segment(K, L) → i_1
  25. Circle(I, d3) → c_1
  26. Intersect(c_1, g_1, 1) → M
  27. Circle(J, d3) → d_1
  28. Intersect(d_1, h_1, 1) → N
  29. Polygon(M, N, 4) → poly3, j_1, k_1, l_1, m_1, O, P
  30. Segment(P, M) → n_1
  31. Segment(M, N) → p_1
  32. Segment(N, O) → q_1
  33. Segment(O, P) → r_1
  34. Circle(M, d4) → e_1
  35. Intersect(e_1, p_1, 1) → Q
  36. Circle(N, d4) → s_1
  37. Intersect(s_1, q_1, 1) → R
  38. Polygon(Q, R, 4) → poly4, t_1, a_1, b_1, f_2, S, T
  39. Segment(S, T) → g_2
  40. Segment(T, Q) → h_2
  41. Segment(Q, R) → i_2
  42. Segment(R, S) → j_2
  43. Circle(Q, d5) → c_2
  44. Intersect(c_2, i_2, 1) → U
  45. Circle(R, d5) → d_2
  46. Intersect(d_2, j_2, 1) → V
  47. Polygon(U, V, 4) → poly5, k_2, l_2, m_2, n_2, W, Z
  48. Segment(Z, U) → p_2
  49. Segment(V, U) → q_2
  50. Segment(V, W) → r_2
  51. Segment(W, Z) → s_2
  52. Circle(U, d6) → e_2
  53. Intersect(e_2, q_2, 1) → A_1
  54. Circle(V, d6) → t_2
  55. Intersect(t_2, r_2, 1) → B_1
  56. Polygon(A_1, B_1, 4) → poly6, a_2, b_2, f_3, g_3, C_1, D_1
  57. Segment(D_1, A_1) → h_3
  58. Segment(A_1, B_1) → i_3
  59. Segment(B_1, C_1) → j_3
  60. Segment(C_1, D_1) → k_3
  61. Circle(A_1, d7) → c_3
  62. Intersect(c_3, i_3, 1) → E_1
  63. Circle(B_1, d7) → d_3
  64. Intersect(d_3, j_3, 1) → F_1
  65. Polygon(E_1, F_1, 4) → poly7, l_3, m_3, n_3, p_3, G_1, H_1
  66. Segment(F_1, E_1) → q_3
  67. Segment(E_1, H_1) → r_3
  68. Segment(H_1, G_1) → s_3
  69. Segment(G_1, F_1) → t_3
  70. Circle(E_1, d8) → e_3
  71. Intersect(e_3, q_3, 1) → I_1
  72. Circle(F_1, d8) → c_4
  73. Intersect(c_4, t_3, 1) → J_1
  74. Polygon(I_1, J_1, 4) → poly8, a_3, b_3, f_4, g_4, K_1, L_1
  75. Segment(K_1, L_1) → h_4
  76. Segment(L_1, I_1) → i_4
  77. Segment(I_1, J_1) → j_4
  78. Segment(K_1, J_1) → k_4
  79. Circle(I_1, d9) → d_4
  80. Intersect(d_4, j_4, 1) → M_1
  81. Circle(J_1, d9) → e_4
  82. Intersect(e_4, k_4, 1) → N_1
  83. Polygon(M_1, N_1, 4) → poly9, l_4, m_4, n_4, p_4, O_1, P_1
  84. Segment(O_1, N_1) → q_4
  85. Segment(N_1, M_1) → r_4
  86. Segment(M_1, P_1) → s_4
  87. Segment(P_1, O_1) → t_4
  88. Circle(M_1, d10) → c_5
  89. Circle(N_1, d10) → d_5
  90. Intersect(c_5, r_4, 1) → Q_1
  91. Intersect(d_5, q_4, 1) → R_1
  92. Polygon(Q_1, R_1, 4) → poly10, a_4, b_4, f_5, g_5, S_1, T_1
  93. Segment(R_1, S_1) → h_5
  94. Segment(S_1, T_1) → i_5
  95. Segment(T_1, Q_1) → j_5
  96. Segment(Q_1, R_1) → k_5
  97. Circle(R_1, d11) → e_5
  98. Circle(S_1, d11) → p_5
  99. Intersect(e_5, h_5, 1) → U_1
  100. Intersect(p_5, i_5, 1) → V_1
  101. Polygon(U_1, V_1, 4) → poly11, l_5, m_5, n_5, q_5, W_1, Z_1
  102. Segment(U_1, V_1) → r_5
  103. Segment(V_1, W_1) → s_5
  104. Segment(W_1, Z_1) → t_5
  105. Segment(Z_1, U_1) → a_5
  106. Circle(Z_1, d12) → c_6
  107. Circle(U_1, d12) → d_6
  108. Intersect(c_6, a_5, 1) → A_2
  109. Intersect(d_6, r_5, 1) → B_2
  110. Polygon(A_2, B_2, 4) → poly12, b_5, f_6, g_6, h_6, C_2, D_2
  111. Segment(B_2, C_2) → i_6
  112. Segment(C_2, D_2) → j_6
  113. Segment(D_2, A_2) → k_6
  114. Segment(A_2, B_2) → l_6
  115. Circle(A_2, d13) → e_6
  116. Circle(B_2, d13) → p_6
  117. Intersect(p_6, i_6, 1) → E_2
  118. Intersect(e_6, l_6, 1) → F_2
  119. Polygon(F_2, E_2, 4) → poly13, m_6, n_6, q_6, r_6, G_2, H_2
  120. Segment(G_2, H_2) → s_6
  121. Segment(G_2, E_2) → t_6
  122. Segment(E_2, F_2) → a_6
  123. Segment(F_2, H_2) → b_6
  124. Circle(F_2, d13) → c_7
  125. Circle(E_2, d13) → d_7
  126. Intersect(c_7, a_6, 1) → I_2
  127. Intersect(d_7, t_6, 1) → J_2
  128. Polygon(I_2, J_2, 4) → poly14, f_7, g_7, h_7, i_7, K_2, L_2
  129. Segment(J_2, K_2) → j_7
  130. Segment(K_2, L_2) → k_7
  131. Segment(L_2, I_2) → l_7
  132. Segment(I_2, J_2) → m_7
  133. Circle(L_2, d15) → e_7
  134. Circle(I_2, d15) → p_7
  135. Intersect(e_7, l_7, 1) → M_2
  136. Intersect(p_7, m_7, 1) → N_2
  137. Polygon(M_2, N_2, 4) → poly15, n_7, q_7, r_7, s_7, O_2, P_2
  138. Segment(O_2, P_2) → t_7
  139. Segment(P_2, M_2) → a_7
  140. Segment(M_2, N_2) → b_7
  141. Segment(N_2, O_2) → f_8