Spirograph Construction

Spirograph Construction
Loading the math board and drawing, please wait…
2014-06-16 01:26
This example demonstrates how to create complex fractal patterns using circles and rotations, mimicking real Spirograph devices. It involves core mathematical concepts like circles, rotation, geometric construction, parametric equations, and locus. Key GeoGebra commands used include Circle, Point, Rotate, Locus, Sequence, etc., to generate the pattern through dynamic rotation and locus tracing. Suitable for high school students and above to explore geometric transformations, parametric equations, and fractal art.

GeoGebra Commands & Parameters

  1. If(size < 56, If[size > 4, size - fractionalPart(size), 5], 55) → L1
  2. Circle(A, R) → c
  3. Point(c) → B
  4. Rotate(B, (go + ((rounds - 1) * 360))°, A) → C
  5. Segment(A, C) → b
  6. Angle(B, A, C) → alpha
  7. Segment(A, B) → a
  8. Rotate(B, (360 / L)°, A) → B'
  9. Angle(B, A, B') → α
  10. Polygon(B, B', L) → polígono1, d, m, U_1, V_1, W_1, Z_1, A_2, B_2, C_2, D_2, E_2, S_7, n, T_7, U_7, V_7, W_7, Z_7, A_8, B_8, C_8, D_8, p, q, r, s, t, a_1, b_1, c_1, e, d_1, e_1, f_1, g_1, h_1, i_1, j_1, k_1, l_1, m_1, f, n_1, p_1, q_1, r_1, s_1, t_1, a_2, b_2, c_2, d_2, g, e_2, f_2, g_2, h_2, i_2, j_2, k_2, l_2, m_2, n_2, h, p_2, p_{11}, q_{11}, r_{11}, s_{11}, t_{11}, a_{12}, b_{12}, c_{12}, d_{12}, i, e_{12}, D, E, F, G, H, I, J, K, M, j, N, O, P, Q, S, T, U, V, W, Z, k, A_1, B_1, C_1, D_1, E_1, F_1, G_1, H_1, I_1, J_1, l, K_1, L_1, M_1, N_1, O_1, P_1, Q_1, R_1, S_1, T_1
  11. Circle(A, R + R / 25) → k_5
  12. Ray(A, B) → i_5
  13. Intersect(k_5, i_5, 1) → F_2
  14. Rotate(F_2, (180 / L)°, A) → G_2
  15. Angle(F_2, A, G_2) → β
  16. Rotate(G_2, (360 / L)°, A) → H_2
  17. Angle(F_2, A, H_2) → γ
  18. Polygon(G_2, H_2, L) → polígono2, q_2, f_3, Z_3, A_4, B_4, C_4, D_4, E_4, F_4, G_4, H_4, E_8, g_3, F_8, G_8, H_8, I_8, J_8, K_8, L_8, M_8, N_8, h_3, i_3, j_3, k_3, l_3, m_3, n_3, p_3, r_2, q_3, r_3, s_3, t_3, a_4, b_4, c_4, d_4, e_4, f_4, s_2, g_4, h_4, i_4, j_4, k_4, l_4, m_4, n_4, p_4, q_4, t_2, r_4, s_4, t_4, a_5, b_5, c_5, d_5, e_5, f_5, g_5, a_3, h_5, f_{12}, g_{12}, h_{12}, i_{12}, j_{12}, k_{12}, l_{12}, m_{12}, n_{12}, b_3, p_{12}, I_2, J_2, K_2, L_2, M_2, N_2, O_2, P_2, Q_2, c_3, R_2, S_2, T_2, U_2, V_2, W_2, Z_2, A_3, B_3, C_3, d_3, D_3, E_3, F_3, G_3, H_3, I_3, J_3, K_3, L_3, M_3, e_3, N_3, O_3, P_3, Q_3, R_3, S_3, T_3, U_3, V_3, W_3
  19. CircumcircleArc(B, G_2, B') → p_5
  20. CircumcircleArc(B', H_2, D) → q_5
  21. CircumcircleArc(D, I_2, E) → r_5
  22. CircumcircleArc(E, J_2, F) → s_5
  23. CircumcircleArc(F, K_2, G) → t_5
  24. CircumcircleArc(G, L_2, H) → c_6
  25. CircumcircleArc(H, M_2, I) → d_6
  26. CircumcircleArc(I, N_2, J) → e_6
  27. CircumcircleArc(J, O_2, K) → f_6
  28. CircumcircleArc(K, P_2, M) → g_6
  29. CircumcircleArc(M, Q_2, N) → h_6
  30. Circle(C, r1) → k_6
  31. Intersect(k_6, b) → I_4, P_8
  32. Rotate(C, ((((-go) - ((rounds - 1) * 360)) * spd))°, I_4) → C'
  33. Midpoint(C', I_4) → J_4
  34. Midpoint(C', J_4) → P0
  35. Circle(I_4, r1) → p_6
  36. Ray(A, C) → j_5
  37. Intersect(k_5, j_5) → K_4,
  38. Circle(I_4, Segment[I_4, K_4]) → q_6
  39. Rotate(C', (360 / L1)°, I_4) → C''
  40. Angle(C', I_4, C'') → ε
  41. Polygon(C', C'', L1) → polígono3, l_5, n_6, D_9, E_9, F_9, G_9, M_9, N_9, O_9, P_9, Q_9, r_6, s_6, t_6, a_7, b_7, c_7, d_7, e_7, f_7, m_5, g_7, h_7, i_7, j_7, k_7, l_7, a_9, b_9, i_9, j_9, n_5, l_9, m_9, n_9, a_{10}, b_{10}, i_{10}, j_{10}, l_{10}, m_{10}, n_{10}, a_6, s_{10}, b_{13}, i_{13}, j_{13}, l_{13}, m_{13}, l_{14}, m_{14}, n_{14}, a_{15}, b_6, b_{15}, a_{16}, b_{16}, i_{16}, j_{16}, l_{16}, L_4, M_4, N_4, O_4, i_6, P_4, Q_4, R_4, S_4, T_4, U_4, V_4, W_4, Z_4, A_5, j_6, B_5, C_5, D_5, E_5, F_5, G_5, H_5, I_5, J_5, M_6, l_6, N_6, O_6, P_6, Q_6, R_6, S_6, T_6, U_6, V_6, W_6, m_6, Z_6, A_7, B_7, C_7, Q_8, R_8, S_8, T_8, U_8, C_9
  42. Ray(I_4, C') → m_7
  43. Intersect(q_6, m_7) → K_5,
  44. Rotate(K_5, (180 / L1)°, I_4) → L_5
  45. Angle(K_5, I_4, L_5) → ζ
  46. Rotate(L_5, (360 / L1)°, I_4) → M_5
  47. Angle(L_5, I_4, M_5) → η
  48. Polygon(L_5, M_5, L1) → polígono4, n_7, d_8, I_9, J_9, K_9, L_9, R_9, S_9, T_9, U_9, V_9, e_8, f_8, g_8, h_8, i_8, j_8, k_8, l_8, m_8, p_7, n_8, p_8, q_8, r_8, s_8, t_8, t_{10}, a_{11}, b_{11}, c_{11}, q_7, d_{11}, e_{11}, f_{11}, g_{11}, h_{11}, i_{11}, j_{11}, k_{11}, l_{11}, m_{11}, r_7, n_{11}, n_{13}, a_{14}, b_{14}, i_{14}, j_{14}, i_{15}, j_{15}, l_{15}, m_{15}, s_7, n_{15}, m_{16}, n_{16}, a_{17}, b_{17}, i_{17}, N_5, O_5, P_5, Q_5, t_7, R_5, S_5, T_5, U_5, V_5, W_5, Z_5, A_6, B_6, C_6, a_8, D_6, E_6, F_6, G_6, H_6, I_6, J_6, K_6, L_6, D_7, b_8, E_7, F_7, G_7, H_7, I_7, J_7, K_7, L_7, M_7, N_7, c_8, O_7, P_7, Q_7, R_7, V_8, W_8, Z_8, A_9, B_9, H_9
  49. CircumcircleArc(C', L_5, C'') → c_9
  50. CircumcircleArc(C'', M_5, L_4) → d_9
  51. CircumcircleArc(L_4, N_5, M_4) → e_9
  52. CircumcircleArc(M_4, O_5, N_4) → f_9
  53. CircumcircleArc(N, R_2, O) → g_9
  54. CircumcircleArc(O, S_2, P) → h_9
  55. CircumcircleArc(P, T_2, Q) → k_9
  56. CircumcircleArc(Q, U_2, S) → p_9
  57. CircumcircleArc(S, V_2, T) → q_9
  58. CircumcircleArc(T, W_2, U) → r_9
  59. CircumcircleArc(U, Z_2, V) → s_9
  60. CircumcircleArc(V, A_3, W) → t_9
  61. CircumcircleArc(W, B_3, Z) → c_{10}
  62. CircumcircleArc(Z, C_3, A_1) → d_{10}
  63. CircumcircleArc(A_1, D_3, B_1) → h_{10}
  64. CircumcircleArc(B_1, E_3, C_1) → k_{10}
  65. CircumcircleArc(C_1, F_3, D_1) → p_{10}
  66. CircumcircleArc(D_1, G_3, E_1) → q_{10}
  67. CircumcircleArc(E_1, H_3, F_1) → r_{10}
  68. CircumcircleArc(F_1, I_3, G_1) → q_{12}
  69. CircumcircleArc(R_6, H_7, Q_6) → r_{12}
  70. CircumcircleArc(Q_6, G_7, P_6) → s_{12}
  71. CircumcircleArc(P_6, F_7, O_6) → t_{12}
  72. CircumcircleArc(O_6, E_7, N_6) → c_{13}
  73. CircumcircleArc(N_6, D_7, M_6) → d_{13}
  74. CircumcircleArc(M_6, L_6, J_5) → e_{13}
  75. CircumcircleArc(J_5, K_6, I_5) → f_{13}
  76. CircumcircleArc(I_5, J_6, H_5) → g_{13}
  77. CircumcircleArc(H_5, I_6, G_5) → h_{13}
  78. CircumcircleArc(G_5, H_6, F_5) → k_{13}
  79. CircumcircleArc(F_5, G_6, E_5) → e_{10}
  80. CircumcircleArc(E_5, F_6, D_5) → f_{10}
  81. CircumcircleArc(D_5, E_6, C_5) → g_{10}
  82. CircumcircleArc(C_5, D_6, B_5) → p_{13}
  83. CircumcircleArc(B_5, C_6, A_5) → q_{13}
  84. CircumcircleArc(A_5, B_6, Z_4) → r_{13}
  85. CircumcircleArc(Z_4, A_6, W_4) → s_{13}
  86. CircumcircleArc(W_4, Z_5, V_4) → t_{13}
  87. CircumcircleArc(V_4, W_5, U_4) → c_{14}
  88. CircumcircleArc(U_4, V_5, T_4) → d_{14}
  89. CircumcircleArc(T_4, U_5, S_4) → e_{14}
  90. CircumcircleArc(S_4, T_5, R_4) → f_{14}
  91. CircumcircleArc(N_4, P_5, O_4) → g_{14}
  92. CircumcircleArc(O_4, Q_5, P_4) → h_{14}
  93. CircumcircleArc(P_4, R_5, Q_4) → k_{14}
  94. CircumcircleArc(Q_4, S_5, R_4) → p_{14}
  95. CircumcircleArc(G_1, J_3, H_1) → q_{14}
  96. CircumcircleArc(H_1, K_3, I_1) → r_{14}
  97. CircumcircleArc(I_1, L_3, J_1) → s_{14}
  98. CircumcircleArc(J_1, M_3, K_1) → t_{14}
  99. CircumcircleArc(K_1, N_3, L_1) → c_{15}
  100. CircumcircleArc(L_1, O_3, M_1) → d_{15}
  101. CircumcircleArc(M_1, P_3, N_1) → e_{15}
  102. CircumcircleArc(N_1, Q_3, O_1) → f_{15}
  103. CircumcircleArc(O_1, R_3, P_1) → g_{15}
  104. CircumcircleArc(P_1, S_3, Q_1) → h_{15}
  105. CircumcircleArc(Q_1, T_3, R_1) → k_{15}
  106. CircumcircleArc(R_1, U_3, S_1) → p_{15}
  107. CircumcircleArc(S_1, V_3, T_1) → q_{15}
  108. CircumcircleArc(T_1, W_3, U_1) → r_{15}
  109. CircumcircleArc(U_1, Z_3, V_1) → s_{15}
  110. CircumcircleArc(V_1, A_4, W_1) → t_{15}
  111. CircumcircleArc(W_1, B_4, Z_1) → c_{16}
  112. CircumcircleArc(Z_1, C_4, A_2) → d_{16}
  113. CircumcircleArc(A_2, D_4, B_2) → e_{16}
  114. CircumcircleArc(B_2, E_4, C_2) → f_{16}
  115. CircumcircleArc(C_2, F_4, D_2) → g_{16}
  116. CircumcircleArc(D_2, G_4, E_2) → h_{16}
  117. CircumcircleArc(E_2, H_4, S_7) → k_{16}
  118. CircumcircleArc(S_7, E_8, T_7) → p_{16}
  119. CircumcircleArc(T_7, F_8, U_7) → q_{16}
  120. CircumcircleArc(U_7, G_8, V_7) → r_{16}
  121. CircumcircleArc(V_7, H_8, W_7) → s_{16}
  122. CircumcircleArc(W_7, I_8, Z_7) → t_{16}
  123. CircumcircleArc(Z_7, J_8, A_8) → c_{17}
  124. CircumcircleArc(A_8, K_8, B_8) → d_{17}
  125. CircumcircleArc(B_8, L_8, C_8) → e_{17}
  126. CircumcircleArc(D_8, M_8, C_8) → f_{17}
  127. Circle(A, R + (2 * R / 15)) → g_{17}
  128. CircumcircleArc(D_8, N_8, B) → h_{17}
  129. Segment(I_4, C') → a_{13}
  130. Angle(B, A, C) → θ
  131. Locus(P0, go) → lugar1
  132. CircumcircleArc(U_6, L_7, V_6) → k_{17}
  133. CircumcircleArc(T_6, K_7, U_6) → p_{17}
  134. CircumcircleArc(S_6, J_7, T_6) → q_{17}
  135. CircumcircleArc(R_6, I_7, S_6) → r_{17}
  136. CircumcircleArc(V_6, M_7, W_6) → s_{17}
  137. CircumcircleArc(W_6, N_7, Z_6) → t_{17}
  138. CircumcircleArc(Z_6, O_7, A_7) → c_{18}
  139. CircumcircleArc(A_7, P_7, B_7) → d_{18}
  140. CircumcircleArc(B_7, Q_7, C_7) → e_{18}
  141. CircumcircleArc(C_7, R_7, Q_8) → f_{18}
  142. CircumcircleArc(Q_8, V_8, R_8) → g_{18}
  143. CircumcircleArc(R_8, W_8, S_8) → h_{18}
  144. CircumcircleArc(S_8, Z_8, T_8) → k_{18}
  145. CircumcircleArc(T_8, A_9, U_8) → p_{18}
  146. CircumcircleArc(U_8, B_9, C_9) → q_{18}
  147. CircumcircleArc(C_9, H_9, D_9) → r_{18}
  148. CircumcircleArc(D_9, I_9, E_9) → s_{18}
  149. CircumcircleArc(E_9, J_9, F_9) → t_{18}
  150. CircumcircleArc(F_9, K_9, G_9) → c_{19}
  151. CircumcircleArc(G_9, L_9, M_9) → d_{19}
  152. CircumcircleArc(M_9, R_9, N_9) → e_{19}
  153. CircumcircleArc(N_9, S_9, O_9) → f_{19}
  154. CircumcircleArc(O_9, T_9, P_9) → g_{19}
  155. CircumcircleArc(P_9, U_9, Q_9) → h_{19}
  156. CircumcircleArc(C', If[L1 ≟ 5, P_5], If[L1 ≟ 5, N_4]) → p_{19}
  157. CircumcircleArc(C', If[L1 ≟ 6, Q_5], If[L1 ≟ 6, O_4]) → q_{19}
  158. CircumcircleArc(C', If[L1 ≟ 7, R_5], If[L1 ≟ 7, P_4]) → r_{19}
  159. CircumcircleArc(C', If[L1 ≟ 8, S_5], If[L1 ≟ 8, Q_4]) → s_{19}
  160. CircumcircleArc(C', If[L1 ≟ 9, T_5], If[L1 ≟ 9, R_4]) → t_{19}
  161. CircumcircleArc(C', If[L1 ≟ 10, U_5], If[L1 ≟ 10, S_4]) → c_{20}
  162. CircumcircleArc(C', If[L1 ≟ 11, V_5], If[L1 ≟ 11, T_4]) → d_{20}
  163. CircumcircleArc(C', If[L1 ≟ 15, B_6], If[L1 ≟ 15, Z_4]) → e_{20}
  164. CircumcircleArc(C', If[L1 ≟ 12, W_5], If[L1 ≟ 12, U_4]) → f_{20}
  165. CircumcircleArc(C', If[L1 ≟ 13, Z_5], If[L1 ≟ 13, V_4]) → g_{20}
  166. CircumcircleArc(C', If[L1 ≟ 14, A_6], If[L1 ≟ 14, W_4]) → h_{20}
  167. CircumcircleArc(C', If[L1 ≟ 16, C_6], If[L1 ≟ 16, A_5]) → k_{20}
  168. CircumcircleArc(C', If[L1 ≟ 17, D_6], If[L1 ≟ 17, B_5]) → p_{20}
  169. CircumcircleArc(C', If[L1 ≟ 18, E_6], If[L1 ≟ 18, C_5]) → q_{20}
  170. CircumcircleArc(C', If[L1 ≟ 19, F_6], If[L1 ≟ 19, D_5]) → r_{20}
  171. CircumcircleArc(C', If[L1 ≟ 20, G_6], If[L1 ≟ 20, E_5]) → s_{20}
  172. CircumcircleArc(C', If[L1 ≟ 21, H_6], If[L1 ≟ 21, F_5]) → t_{20}
  173. CircumcircleArc(C', If[L1 ≟ 22, I_6], If[L1 ≟ 22, G_5]) → c_{21}
  174. CircumcircleArc(C', If[L1 ≟ 23, J_6], If[L1 ≟ 23, H_5]) → d_{21}
  175. CircumcircleArc(C', If[L1 ≟ 24, K_6], If[L1 ≟ 24, I_5]) → e_{21}
  176. CircumcircleArc(C', If[L1 ≟ 25, L_6], If[L1 ≟ 25, J_5]) → f_{21}
  177. CircumcircleArc(C', If[L1 ≟ 26, D_7], If[L1 ≟ 26, M_6]) → g_{21}
  178. CircumcircleArc(C', If[L1 ≟ 27, E_7], If[L1 ≟ 27, N_6]) → h_{21}
  179. CircumcircleArc(C', If[L1 ≟ 28, F_7], If[L1 ≟ 28, O_6]) → k_{21}
  180. CircumcircleArc(C', If[L1 ≟ 29, G_7], If[L1 ≟ 29, P_6]) → p_{21}
  181. CircumcircleArc(C', If[L1 ≟ 30, H_7], If[L1 ≟ 30, Q_6]) → q_{21}
  182. CircumcircleArc(C', If[L1 ≟ 31, I_7], If[L1 ≟ 31, R_6]) → r_{21}
  183. CircumcircleArc(C', If[L1 ≟ 32, J_7], If[L1 ≟ 32, S_6]) → s_{21}
  184. CircumcircleArc(C', If[L1 ≟ 33, K_7], If[L1 ≟ 33, T_6]) → t_{21}
  185. CircumcircleArc(C', If[L1 ≟ 34, L_7], If[L1 ≟ 34, U_6]) → c_{22}
  186. CircumcircleArc(C', If[L1 ≟ 35, M_7], If[L1 ≟ 35, V_6]) → d_{22}
  187. CircumcircleArc(C', If[L1 ≟ 35, N_7], If[L1 ≟ 35, W_6]) → e_{22}
  188. CircumcircleArc(C', If[L1 ≟ 36, N_7], If[L1 ≟ 36, W_6]) → f_{22}
  189. CircumcircleArc(C', If[L1 ≟ 37, O_7], If[L1 ≟ 37, Z_6]) → g_{22}
  190. CircumcircleArc(C', If[L1 ≟ 38, P_7], If[L1 ≟ 38, A_7]) → h_{22}
  191. CircumcircleArc(C', If[L1 ≟ 39, Q_7], If[L1 ≟ 39, B_7]) → k_{22}
  192. CircumcircleArc(C', If[L1 ≟ 40, R_7], If[L1 ≟ 40, C_7]) → p_{22}
  193. CircumcircleArc(C', If[L1 ≟ 41, V_8], If[L1 ≟ 41, Q_8]) → q_{22}
  194. CircumcircleArc(C', If[L1 ≟ 42, W_8], If[L1 ≟ 42, R_8]) → r_{22}
  195. CircumcircleArc(C', If[L1 ≟ 43, Z_8], If[L1 ≟ 43, S_8]) → s_{22}
  196. CircumcircleArc(C', If[L1 ≟ 44, A_9], If[L1 ≟ 44, T_8]) → t_{22}
  197. CircumcircleArc(C', If[L1 ≟ 45, B_9], If[L1 ≟ 45, U_8]) → c_{23}
  198. CircumcircleArc(C', If[L1 ≟ 46, H_9], If[L1 ≟ 46, C_9]) → e_{23}
  199. CircumcircleArc(C', If[L1 ≟ 47, I_9], If[L1 ≟ 47, D_9]) → f_{23}
  200. CircumcircleArc(C', If[L1 ≟ 48, J_9], If[L1 ≟ 48, E_9]) → g_{23}
  201. CircumcircleArc(C', If[L1 ≟ 49, K_9], If[L1 ≟ 49, F_9]) → h_{23}
  202. CircumcircleArc(C', If[L1 ≟ 50, L_9], If[L1 ≟ 50, G_9]) → k_{23}
  203. CircumcircleArc(C', If[L1 ≟ 51, R_9], If[L1 ≟ 51, M_9]) → p_{23}
  204. CircumcircleArc(C', If[L1 ≟ 52, S_9], If[L1 ≟ 52, N_9]) → q_{23}
  205. CircumcircleArc(C', If[L1 ≟ 53, T_9], If[L1 ≟ 53, O_9]) → d_{23}
  206. CircumcircleArc(C', If[L1 ≟ 54, U_9], If[L1 ≟ 54, P_9]) → r_{23}
  207. CircumcircleArc(C', If[L1 ≟ 55, V_9], If[L1 ≟ 55, Q_9]) → k_{19}
  208. Textfield(size) → CajaDeEntrada1
  209. Sequence(If[IsInteger[(n * L / L1)], n], n, 1, 55) → lista1
  210. KeepIf(x ≤ 55, lista1) → lista2
  211. Min(lista2) → upperboundforrounds
  212. Rotate(B, (goP1 + ((roundsP1 - 1) * 360))°, A) → CP1
  213. Circle(CP1, rP1) → anilloauxP1
  214. Segment(A, CP1) → bP1
  215. Intersect(anilloauxP1, bP1) → iP1,
  216. Rotate(CP1, ((((-goP1) - ((roundsP1 - 1) * 360)) * spdP1))°, iP1) → C'P1
  217. Midpoint(C'P1, Midpoint[C'P1, iP1]) → P1
  218. Locus(P1, goP1) → lugar2
  219. Rotate(B, (goP2 + ((roundsP2 - 1) * 360))°, A) → CP2
  220. Circle(CP2, rP2) → anilloauxP2
  221. Segment(A, CP2) → bP2
  222. Intersect(anilloauxP2, bP2) → iP2,
  223. Rotate(CP2, ((((-goP2) - ((roundsP2 - 1) * 360)) * spdP2))°, iP2) → C'P2
  224. Midpoint(C'P2, Midpoint[C'P2, iP2]) → P2
  225. Locus(P2, goP2) → lugar3
  226. If(go ≟ 0, false, true) → LP0

AI Drawing Prompt Reference

Draw a complex fractal pattern by rotating multiple circles and tracing their paths, mimicking a real Spirograph device. Start with a circle and create a point on it, then rotate the point around the circle to form a locus. Use these paths and angle relationships to construct several polygons, connecting them with rotating arcs to create a continuous, geometrically beautiful design. The process demonstrates the application of circles, rotations, loci, and parametric equations, suitable for exploring geometric transformations and fractal art.
The prompt above was compiled from the original drawing commands and is for reference only.