Dynamic Quadrilateral Problem

Dynamic Quadrilateral Problem
Loading the math board and drawing, please wait…
2018-06-18 10:27
This is a dynamic and modifiable quadrilateral problem example proposed by Antonio Gutierrez on Twitter. The example illustrates the geometric relationships among four squares. Key mathematical concepts include rotation, sine function, and rhombus. It is constructed using GeoGebra commands such as Ray, Distance, Circle, Intersect, etc. Suitable for middle school and above students to learn about geometric transformations and related concepts.

GeoGebra Commands & Parameters

  1. Ray(C, B) → d_4
  2. Distance(C, B) → o_2
  3. Circle(C, (0.24 * o_2)) → c_4
  4. Intersect(c_4, d_4, 1) → U_2
  5. Line(C, A) → m
  6. Segment(C, A) → i_2
  7. Line(D, C) → l
  8. Line(D, B) → a_4
  9. Line(A, B) → j
  10. Segment(B, D) → a_1
  11. Segment(C, B) → f
  12. Midpoint(f) → E
  13. Segment(C, E) → g
  14. Point(Segment[C, U_2]) → F
  15. OrthogonalLine(F, m) → p
  16. Intersect(m, p) → J
  17. Line(J, l) → s_1
  18. Segment(J, F) → e_1
  19. Intersect(e_1, i_2) → W
  20. Line(W, F) → m_4
  21. Rotate(F, (-(45°)), A) → F'
  22. Line(A, F') → i
  23. Intersect(i, f) → G
  24. Dilate(B, If[6 < o ≤ 7, 7 - o, 0], G) → B'
  25. Vector(B, B') → v_1
  26. Translate(G, v_1) → G'_3
  27. OrthogonalLine(G, j) → q
  28. Intersect(j, q) → I
  29. OrthogonalLine(I, j) → p_1
  30. Intersect(p_1, s_1) → Q
  31. Segment(Q, G) → p_2
  32. Intersect(m_4, p_2) → P_1
  33. Vector(C, F) → w_1
  34. Translate(J, w_1) → J'_1
  35. Translate(F, w_1) → F'_3
  36. Segment(J'_1, F'_3) → n_3
  37. Intersect(s_3, n_3) → S
  38. Intersect(q_4, a_4) → C_1
  39. Intersect(t_3, a_3) → T
  40. Intersect(p_4, p_2) → F_1
  41. Circle(C_1, Max[Distance[T, F_1], Distance[F_1, P_1]]) → h_4
  42. Intersect(p_4, l_5) → W_1
  43. Intersect(a_1, p_4) → G_1
  44. Intersect(h_4, p_4, 2) → K_1
  45. Line(F, A) → h
  46. Angle(F', A, F) → α
  47. Line(B, D) → k
  48. OrthogonalLine(F, l) → n
  49. OrthogonalLine(G, k) → r
  50. Intersect(k, r) → H
  51. Intersect(n, l) → K
  52. Segment(F, A) → s
  53. Segment(A, G) → t
  54. Segment(F, G) → b
  55. Circle(G, b / sqrt(2)) → c
  56. Intersect(c, r, 2) → M
  57. Segment(G, H) → g_1
  58. Polygon(J, F, K, C) → q1, j_2, f_1, k_1, c_1
  59. Polygon(I, B, H, G) → q2, i_1, b_1, h_1, g_2
  60. Segment(F, M) → m_1
  61. Segment(M, G) → n_1
  62. Vector(B, G) → u
  63. Polygon(M, G, Q, F) → q3, m_2, g_3, q_1, f_2
  64. Line(A, G) → e
  65. Semicircle(F, G) → d_1
  66. Circle(F, C) → r_1
  67. Intersect(d_1, r_1, 1) → L
  68. Segment(L, G) → l_1
  69. Segment(G, B) → t_1
  70. Segment(A, B) → d
  71. Segment(D, C) → h_2
  72. Polygon(J, A, I, G, M, F) → poly1, j_1, a_2, i_3, g_4, m_3, f_3
  73. Polygon(K, F, Q, G, H, D) → poly2, k_2, f_4, q_2, g_5, h_3, d_2
  74. Segment(F, K) → l_2
  75. Segment(F, Q) → n_2
  76. Segment(F, M) → r_2
  77. Segment(M, G) → s_2
  78. Segment(G, I) → t_2
  79. Segment(F, L) → b_2
  80. Segment(L, G) → c_2
  81. Min(b_2, c_2) → v
  82. Circle(D, (0.25 * v)) → e_2
  83. Intersect(e_2, h_2, 1) → O
  84. Rotate(K, (-(45°)), C) → K'
  85. Circle(C, (0.3 * v)) → c_3
  86. Intersect(c_3, h_2) → P,
  87. Dilate(C, If[0 < o ≤ 1, 1 - o, 0], F) → C'
  88. Segment(C, C') → j_3
  89. Rotate(P, If[0 < o ≤ 1, ((-o) * π / 4), ((-π)) / 4], C) → P'
  90. CircleSector(C, P', P) → d_3
  91. Rotate(d_3, If[2 < o ≤ 3, ((-(o - 2)) * π / 4), ((-π)) / 4], C) → e_3
  92. Line(C, s) → k_3
  93. Intersect(c_3, k_3, 1) → R
  94. Angle(F, C, R) → β
  95. Dilate(C, If[4 < o ≤ 5, 5 - o, 0], A) → C'_1
  96. Vector(C, C'_1) → w
  97. Translate(e_3, w) → p_3
  98. Rotate(p_3, If[4 < o ≤ 5, ((o - 4) * β), β], C'_1) → q_3
  99. Angle(L, F, C) → ε
  100. Dilate(G, If[8 < o ≤ 9, 9 - o, 0], B) → G'
  101. Rotate(C, If[9 < o ≤ 10, ((-(o - 9)) * ε), (-ε)], F) → C'_2
  102. Angle(B, G, L) → ζ
  103. Rotate(G, If[10 < o ≤ 11, ((o - 10) * ζ), ζ], G) → G'_1
  104. Rotate(G', If[10 < o ≤ 11, ((o - 10) * ζ), ζ], G) → G''
  105. Rotate(O, If[11 < o ≤ 12, ((o - 11) * π / 2), π / 2], D) → O'
  106. Dilate(D, If[13 < o ≤ 14, 14 - o, 0], L) → D'
  107. Vector(D, D') → u_1
  108. Line(C, B) → j_4
  109. Intersect(t_2, d) → V
  110. Rotate(J, If[5 < o ≤ 6, ((o - 5) * π), π], F) → J'
  111. Rotate(F, If[5 < o ≤ 6, ((o - 5) * π), π], F) → F'_1
  112. Rotate(K, If[5 < o ≤ 6, ((o - 5) * π), π], F) → K'_1
  113. Rotate(C, If[5 < o ≤ 6, ((o - 5) * π), π], F) → C'_3
  114. Polygon(J', F'_1, K'_1, C'_3) → q1', j', f'_1, k'_1, c'_3
  115. Circle(F, Distance[C, W]) → r_3
  116. Translate(I, v_1) → I'
  117. Translate(B, v_1) → B'_1
  118. Translate(H, v_1) → H'
  119. Translate(G, v_1) → G'_2
  120. Polygon(I', B'_1, H', G'_2) → q2', i', b'_1, h', g'_2
  121. Intersect(h_2, k_2) → N
  122. Translate(K, w_1) → K'_2
  123. Translate(F, w_1) → F'_2
  124. Segment(K'_2, F'_2) → l_3
  125. Dilate(G'_3, If[7 < o ≤ 8, 8 - o, 0], T) → U
  126. Dilate(G'_3, If[7 < o ≤ 8, 8 - o, 0], S) → Z
  127. Segment(G'_3, U) → b_3
  128. Segment(G'_3, Z) → i_4
  129. Dilate(F'_3, If[7 < o ≤ 8, 8 - o, 0], S) → A_1
  130. Dilate(F'_3, If[7 < o ≤ 8, 8 - o, 0], T) → B_1
  131. Segment(F'_2, B_1) → k_4
  132. Segment(F'_2, A_1) → l_4
  133. Polygon(S, F'_2, T, G'_3) → q4, s_4, f'_2, t_4, g'_3
  134. Polygon(J'_1, S, G'_3, T, K'_2, F) → poly3, j'_1, s_5, g'_1, t_5, k'_2, f_5
  135. Line(N, F) → n_4
  136. Circle(F, Distance[C, N]) → e_4
  137. Intersect(h_4, a_4) → V_1, I_1
  138. Dilate(W_1, If[9 < o ≤ 10, 10 - o, 0], V_1) → S'
  139. Vector(W_1, S') → u_2
  140. Translate(S, u_2) → S'_1
  141. Translate(F'_2, u_2) → D_1
  142. Translate(T, u_2) → T'
  143. Translate(G'_3, u_2) → E_1
  144. Polygon(S'_1, D_1, T', E_1) → q4', s'_1, d_5, t', e_5
  145. Translate(F'_3, u_2) → J_1
  146. Translate(T, u_2) → T'_1
  147. Translate(S, u_2) → S'_2
  148. Circle(V_1, Max[Distance[T, F_1], Distance[F_1, P_1]]) → c_5
  149. Intersect(c_5, b_4, 2) → M_1
  150. Dilate(T'_1, If[11 < o ≤ 12, 12 - o, 0], M_1) → N_1
  151. Vector(T'_1, N_1) → w_2
  152. Translate(J_1, w_2) → O_1
  153. Polygon(V_1, N_1, O_1, S'_2) → q5, v_2, n_5, o_1, s'_2
  154. Line(S'_2, O_1) → h_5
  155. OrthogonalLine(V_1, h_5) → i_5
  156. Intersect(h_5, i_5) → L_1
  157. Midpoint(V_1, L_1) → Q_1
  158. OrthogonalLine(M_1, h_5) → j_5
  159. Intersect(j_5, h_5) → R_1
  160. Dilate(S'_2, If[13 < o ≤ 14, 14 - o, 0], L_1) → S_1
  161. Vector(S'_2, S_1) → u_3
  162. Translate(O_1, u_3) → T_1
  163. Polygon(T_1, M_1, V_1, S_1) → q6, t_6, m_5, v_3, s_6
  164. Midpoint(R_1, M_1) → U_1
  165. Polygon(L_1, R_1, U_1, Q_1) → q7, l_6, r_5, u_4, q_5
  166. Polygon(Q_1, U_1, M_1, V_1) → q8, q_6, u_5, m_6, v_4
  167. Dilate(Q_1, If[16 < o ≤ 17, 17 - o, 0], S) → H_1
  168. Vector(Q_1, H_1) → w_3
  169. Translate(L_1, w_3) → Z_1
  170. Translate(R_1, w_3) → A_2
  171. Translate(U_1, w_3) → B_2
  172. Translate(Q_1, w_3) → C_2
  173. Polygon(Z_1, A_2, B_2, C_2) → q7', z_1, a_5, b_5, c_6
  174. Line(Z_1, r_2) → k_5
  175. Point(k_5) → D_2
  176. Angle(D_2, Z_1, A_2) → γ
  177. Rotate(Z_1, If[16 < o ≤ 17, ((-(o - 16)) * γ), (-γ)], C_2) → E_2
  178. Rotate(A_2, If[16 < o ≤ 17, ((-(o - 16)) * γ), (-γ)], C_2) → F_2
  179. Rotate(B_2, If[16 < o ≤ 17, ((-(o - 16)) * γ), (-γ)], C_2) → G_2
  180. Rotate(C_2, If[16 < o ≤ 17, ((-(o - 16)) * γ), (-γ)], C_2) → H_2
  181. Polygon(E_2, F_2, G_2, H_2) → q7'', e_6, f_6, g_6, h_6
  182. Dilate(Q_1, If[15 < o ≤ 16, 16 - o, 0], U_1) → I_2
  183. Segment(Q_1, I_2) → p_5
  184. Dilate(V_1, If[17 < o ≤ 18, 18 - o, 0], F_1) → J_2
  185. Vector(V_1, J_2) → w_4
  186. Translate(Q_1, w_4) → K_2
  187. Translate(U_1, w_4) → L_2
  188. Translate(M_1, w_4) → M_2
  189. Translate(V_1, w_4) → N_2
  190. Polygon(K_2, L_2, M_2, N_2) → q8', k_6, l_7, m_7, n_6
  191. Line(M_2, J_2) → i_6
  192. Line(J_2, K_2) → j_6
  193. Point(j_6) → O_2
  194. Point(p_6) → P_2
  195. Angle(P_2, K_2, O_2) → δ
  196. Rotate(K_2, If[17 < o ≤ 18, ((-(o - 17)) * δ), (-δ)], J_2) → Q_2
  197. Rotate(L_2, If[17 < o ≤ 18, ((-(o - 17)) * δ), (-δ)], J_2) → R_2
  198. Rotate(M_2, If[17 < o ≤ 18, ((-(o - 17)) * δ), (-δ)], J_2) → S_2
  199. Rotate(N_2, If[17 < o ≤ 18, ((-(o - 17)) * δ), (-δ)], J_2) → T_2
  200. Polygon(Q_2, R_2, S_2, T_2) → q8'', q_7, r_6, s_7, t_7