Dynamic Demonstration of the '2-Squares-Theorem'

Dynamic Demonstration of the '2-Squares-Theorem'
Loading the math board and drawing, please wait…
2017-04-13 10:31
This example dynamically illustrates the well-known '2-Squares-Theorem', visually showcasing the geometric principles through transformations. It involves core mathematical concepts such as translation, cosine rule, dilation, 3D vectors, and arithmetic mean. The construction leverages GeoGebra commands and objects like Polygon, Segment, Dilate, Rotate, Circle, Ray, Intersect, Point, OrthogonalLine, Line, Midpoint, CircleArc, CircleSector, Vector, Translate, Angle, and Mirror as detailed in the construction summary. Suitable for high school and above students to explore geometric transformations and theorem proofs dynamically.

GeoGebra Commands & Parameters

  1. Polygon(A, B_2, 4) → poly1, a, b, c, d, C, D
  2. Segment(B_2, C) → h
  3. Dilate(A, If[0 < e ≤ 1, 1 - e, 0], B_2) → A'
  4. Rotate(A', If[1 < e ≤ 2, ((-(e - 1)) * π / 2), -1.5707963267948966], B_2) → A''
  5. Rotate(A'', If[2 < e ≤ 3, ((-(e - 2)) * π / 2), -1.5707963267948966], C) → A'''
  6. Rotate(A, If[1 < e ≤ 2, ((-(e - 1)) * π / 2), -1.5707963267948966], B_2) → A'_1
  7. Rotate(A'_1, If[2 < e ≤ 3, ((-(e - 2)) * π / 2), -1.5707963267948966], C) → R
  8. Segment(R, A''') → f''
  9. Segment(A, B_2) → g
  10. Circle(B_2, g) → q_2
  11. Ray(A, B_2) → m_2
  12. Intersect(q_2, m_2, 2) → J_1
  13. Segment(B_2, J_1) → n_2
  14. Point(n_2) → K_1
  15. Segment(B_2, K_1) → r_2
  16. Circle(K_1, r_2) → t_2
  17. OrthogonalLine(K_1, r_2) → s_2
  18. Intersect(t_2, s_2, 2) → L_1
  19. OrthogonalLine(L_1, h) → f_3
  20. Intersect(f_3, h) → M_1
  21. Dilate(A, If[17 < e ≤ 18, 18 - e, 0], M_1) → A'_4
  22. Segment(A, A'_4) → j_3
  23. Line(K_1, M_1) → i_2
  24. Intersect(i_2, f'') → V_1
  25. OrthogonalLine(V_1, j_3) → n_3
  26. Intersect(n_3, j_3) → C_2
  27. Midpoint(A, C) → V
  28. CircleArc(V, C, D) → g_2
  29. Point(g_2) → B
  30. Segment(C, B) → j_1
  31. Segment(A, B) → n
  32. Intersect(n, f'') → Z
  33. Segment(B, Z) → l_1
  34. Segment(A, A') → f
  35. Segment(A'_1, A'') → f'
  36. Segment(C, D) → i
  37. Circle(B_2, (0.2 * r_2)) → p
  38. Segment(D, A) → j
  39. Circle(C, Radius[p]) → k
  40. Circle(A, (0.1 * j)) → q
  41. Circle(D, (0.1 * j)) → r
  42. Segment(A, C) → l
  43. Segment(D, B_2) → m
  44. Intersect(r, j, 1) → F
  45. Intersect(r, m, 1) → G
  46. Intersect(r, i, 1) → H
  47. Intersect(k, i, 1) → I
  48. Intersect(k, l, 1) → J
  49. Intersect(k, h, 1) → K
  50. Intersect(p, h, 1) → L
  51. Intersect(p, m, 1) → M
  52. Intersect(p, g, 1) → N
  53. Intersect(q, g, 1) → O
  54. Intersect(q, l, 1) → P
  55. Intersect(q, j, 1) → Q
  56. CircleSector(B_2, L, N) → s
  57. Rotate(R, If[3 < e ≤ 4, ((-(e - 3)) * π / 2), -1.5707963267948966], D) → R'
  58. Rotate(A''', If[3 < e ≤ 4, ((-(e - 3)) * π / 2), -1.5707963267948966], D) → S
  59. Segment(R', S) → f'''
  60. Dilate(B_2, If[4 < e ≤ 5, 5 - e, 0], C) → B'
  61. Vector(B_2, B') → u
  62. Translate(s, u) → s'
  63. Rotate(s', If[5 < e ≤ 6, ((e - 5) * π / 2), 1.5707963267948966], C) → s''
  64. Dilate(C, If[6 < e ≤ 7, 7 - e, 0], D) → C'
  65. Vector(C, C') → v
  66. Translate(s'', v) → s'''
  67. Rotate(s''', If[7 < e ≤ 8, ((e - 7) * π / 2), 1.5707963267948966], D) → t
  68. Dilate(D, If[8 < e ≤ 9, 9 - e, 0], A) → D'
  69. Vector(D, D') → w
  70. Translate(t, w) → t'
  71. Rotate(t', If[9 < e ≤ 10, ((e - 9) * π / 2), 1.5707963267948966], A) → t''
  72. Dilate(B_2, If[18 < e ≤ 19, 19 - e, 0], C) → B'_1
  73. Dilate(B_2, If[18 < e ≤ 19, 19 - e, 0], A) → B'_2
  74. Dilate(B_2, If[18 < e ≤ 19, 19 - e, 0], D) → B'_3
  75. Vector(B_2, B'_1) → v_1
  76. Vector(B_2, B'_3) → w_1
  77. Vector(B_2, B'_2) → i_1
  78. Circle(A, n - j_1) → h_2
  79. Dilate(B, If[10 < e ≤ 11, 11 - e, 0], C) → W'
  80. Dilate(B_2, If[13 < e ≤ 14, 14 - e, 0], B) → B'_4
  81. Vector(B_2, B'_4) → u_1
  82. Translate(s, u_1) → s'_1
  83. Line(B, f') → a_1
  84. Point(a_1) → U
  85. Angle(U, B, C) → α
  86. Rotate(B, If[14 < e ≤ 15, ((-(e - 14)) * π / 2), ((-π)) / 2], B) → W'_2
  87. Rotate(W', If[14 < e ≤ 15, ((-(e - 14)) * π / 2), ((-π)) / 2], B) → W''
  88. Line(A, B_2) → h_1
  89. Angle(B, A, D) → β
  90. Dilate(D, If[19 < e ≤ 20, 20 - e, 0], B) → D'_1
  91. Mirror(C, D) → C'_1
  92. Rotate(C, ((-π)) / 3, B_2) → C'_2
  93. Segment(B_2, C'_2) → f_1
  94. Segment(C, C'_2) → g_1
  95. Intersect(k, g_1, 1) → E
  96. Intersect(k, h) → T,
  97. CircleSector(C, T, E) → d_1
  98. Rotate(D, 15°, C) → D'_2
  99. Angle(D, C, D'_2) → γ
  100. Ray(C, D'_2) → k_1
  101. Rotate(C, (-(15°)), D) → C'_3
  102. Angle(C'_3, D, C) → δ
  103. Ray(D, C'_3) → m_1
  104. Intersect(k_1, m_1) → W
  105. Rotate(B_2, If[10 < e ≤ 11, (((-π)) / 3 * (e - 10)), ((-π)) / 3], B_2) → A_1
  106. Rotate(C, If[10 < e ≤ 11, (((-π)) / 3 * (e - 10)), ((-π)) / 3], B_2) → C'_4
  107. Rotate(B_2, If[11 < e ≤ 12, (π / 3 * (e - 11)), π / 3], C) → B_1
  108. Rotate(C, If[11 < e ≤ 12, (π / 3 * (e - 11)), π / 3], C) → C'_5
  109. Rotate(E, If[12 < e ≤ 13, (((-π)) / 6 * (e - 12)), ((-π)) / 6], C) → E'
  110. Polygon(C, W, D) → poly2, d_2, c_2, w_2
  111. Polygon(A, W, D) → poly3, d_3, a_2, w_3
  112. Polygon(B_2, W, C) → poly4, c_3, b_2, w_4
  113. Polygon(A, B_2, W) → poly5, w_5, a_3, b_1
  114. Rotate(T, 15°, C) → T'
  115. Angle(T, C, T') → ε
  116. Ray(C, T') → q_1
  117. Dilate(C, If[21 < e ≤ 22, 22 - e, 0], D) → C'_8
  118. Vector(C, C'_8) → u_2
  119. Dilate(D, If[23 < e ≤ 24, 24 - e, 0], W) → D'_3
  120. Dilate(C, If[23 < e ≤ 24, 24 - e, 0], W) → C'_9
  121. Dilate(B_2, If[25 < e ≤ 26, 26 - e, 0], W) → G_1
  122. Dilate(A, If[25 < e ≤ 26, 26 - e, 0], W) → A'_2
  123. Segment(A, A'_2) → j_2
  124. Segment(B_2, G_1) → l_2
  125. Rotate(B_2, If[26.75 < e ≤ 27.75, (π / 2 * (e - 26.75)), π / 2], B_2) → H_1
  126. Rotate(C'_2, If[26.75 < e ≤ 27.75, (π / 2 * (e - 26.75)), π / 2], B_2) → I_1
  127. Rotate(C, If[26.75 < e ≤ 27.75, (π / 2 * (e - 26.75)), π / 2], B_2) → C'_{10}
  128. Polygon(H_1, I_1, C'_{10}) → poly6', c'_{10}, h_3, i_3
  129. Dilate(B_2, If[10 < e ≤ 11, 11 - e, 0], K_1) → C_1
  130. Segment(B_2, C_1) → n_1
  131. Rotate(B_2, If[11 < e ≤ 12, ((-(e - 11)) * π / 2), ((-π)) / 2], K_1) → D_1
  132. Rotate(C_1, If[11 < e ≤ 12, ((-(e - 11)) * π / 2), ((-π)) / 2], K_1) → E_1
  133. Segment(D_1, E_1) → p_1
  134. Rotate(D_1, If[12 < e ≤ 13, ((-(e - 12)) * π / 2), ((-π)) / 2], L_1) → F_1
  135. Rotate(E_1, If[12 < e ≤ 13, ((-(e - 12)) * π / 2), ((-π)) / 2], L_1) → N_1
  136. Segment(F_1, N_1) → r_1
  137. Rotate(F_1, If[13 < e ≤ 14, ((-(e - 13)) * π / 2), ((-π)) / 2], M_1) → O_1
  138. Rotate(N_1, If[13 < e ≤ 14, ((-(e - 13)) * π / 2), ((-π)) / 2], M_1) → P_1
  139. Segment(O_1, P_1) → s_1
  140. Polygon(B_2, K_1, L_1, M_1) → poly6, b_3, k_2, l_3, m_3
  141. Dilate(B_2, If[14 < e ≤ 15, 15 - e, 0], K_1) → Q_1
  142. Vector(B_2, Q_1) → c_1
  143. Translate(s, c_1) → s'_2
  144. Segment(C, K_1) → e_1
  145. Line(A, M_1) → t_1
  146. Intersect(t_1, e_1) → R_1
  147. Segment(A, R_1) → f_2
  148. Dilate(C, If[15 < e ≤ 16, 16 - e, 0], K_1) → C'_6
  149. Dilate(A, If[16 < e ≤ 17, 17 - e, 0], M_1) → A'_3
  150. Dilate(M_1, If[17 < e ≤ 18, 18 - e, 0], R_1) → S_1
  151. Dilate(B_2, If[18 < e ≤ 19, 19 - e, 0], C_2) → T_1
  152. Vector(B_2, T_1) → v_2
  153. Translate(s, v_2) → s'_3
  154. Line(R_1, p_1) → g_3
  155. Point(g_3) → U_1
  156. Angle(U_1, R_1, K_1) → ζ
  157. Polygon(A, B_2, C, D) → poly7, a_4, b_4, c_4, d_4
  158. Dilate(K_1, If[15 < e ≤ 16, 16 - e, 0], M_1) → W_1
  159. Segment(K_1, W_1) → p_2
  160. Dilate(M_1, If[16 < e ≤ 17, 17 - e, 0], V_1) → Z_1
  161. Segment(M_1, Z_1) → e_2
  162. Line(A, K_1) → k_3
  163. Intersect(n_3, k_3) → A_2
  164. Dilate(V_1, If[18 < e ≤ 19, 19 - e, 0], C_2) → D_2
  165. Segment(V_1, D_2) → p_3
  166. Line(C_2, p_1) → q_3
  167. Point(q_3) → F_2
  168. Angle(F_2, C_2, V_1) → θ
  169. Rotate(s'_3, If[18 < e ≤ 19, ((e - 18) * θ), θ], T_1) → e_3
  170. Dilate(C_2, If[19 < e ≤ 20, 20 - e, 0], A_2) → E_2
  171. Segment(C_2, E_2) → r_3
  172. Dilate(A, If[20 < e ≤ 21, 21 - e, 0], V_1) → A'_5
  173. Segment(A, A'_5) → s_3
  174. Angle(A, V_1, A_2) → κ
  175. Rotate(A, If[21 < e ≤ 22, ((e - 21) * κ), κ], V_1) → A'_6
  176. Rotate(A'_5, If[21 < e ≤ 22, ((e - 21) * κ), κ], V_1) → G_2
  177. Segment(A'_6, G_2) → t_3

AI Drawing Prompt Reference

Draw a dynamic demonstration of the 2-Squares-Theorem, featuring two squares ABCD and A'B'C'D'. Use transformations like translation, rotation, and dilation to show their relationships. Start by drawing square ABCD, then obtain A'B'C'D' through translation and rotation. Construct several segments and circles, and finally use intersections and midpoints to demonstrate the theorem's proof.
The prompt above was compiled from the original drawing commands and is for reference only.