Rearrangement Proof of the Pythagorean Theorem

Rearrangement Proof of the Pythagorean Theorem
Loading the math board and drawing, please wait…
2013-05-30 05:02
In collections Pythagorean Theorem
This example demonstrates the famous 'rearrangement' proof of the Pythagorean Theorem, showing the theorem through the movement and rearrangement of shapes. The core math concepts involved are the Pythagorean Theorem and geometric transformations. Construction highlights include using commands and objects like Polygon, Midpoint, Ray, Rotate, Circle, Segment, Angle, Centroid, Line, Point, OrthogonalLine, Intersect, and Vector in GeoGebra. Suitable for middle school students and above to learn geometric proof methods.

GeoGebra Commands & Parameters

  1. Polygon(A, C, B) → poly1, b_1, a_1, c_2
  2. Midpoint(b_1) → M
  3. Ray(B, M) → n_2
  4. Rotate(B, (-(((90 * Progress_4))°)), B) → B'
  5. Circle(B', sqrt(b^(2) + ((0.5 * a))^(2)) - 0.1) → d_3
  6. Rotate(L, ((90 * Progress_2))°, J) → L'
  7. Rotate(L', ((Progress_3 * 90))°, L') → L''
  8. Circle(L'', sqrt(a^(2) + ((0.5 * b))^(2)) - 0.1) → c_3
  9. Rotate(K, ((90 * Progress_2))°, J) → K'
  10. Polygon(J, K', L') → poly4, l', j, k'
  11. Midpoint(l') → Z
  12. Ray(L', Z) → m_2
  13. Rotate(E, ((90 * Progress))°, D) → E'
  14. Rotate(F, ((90 * Progress))°, D) → F'
  15. Polygon(F', D, E') → poly2, e', f', d
  16. Rotate(H, ((90 * Progress_1))°, G) → H'
  17. Rotate(I, ((90 * Progress_1))°, G) → I'
  18. Polygon(H', I', G) → poly3, g, h', i'
  19. If(Progress ≟ 0, 0, 1) → e
  20. If(Progress_1 ≟ 0, false, true) → h
  21. Rotate(J, ((Progress_3 * 90))°, L') → J'
  22. Rotate(K', ((Progress_3 * 90))°, L') → K''
  23. Polygon(J', K'', L'') → poly4', l'', j', k''
  24. If(Progress ≟ 1, If[Progress_1 ≟ 0, true, false], true) → Progress_{visibility}
  25. If(Progress ≟ 1, If[Progress_2 ≟ 0, true, false], false) → Progress1_{visibility}
  26. Polygon(C, A, B) → poly5, b_2, c_1, a_2
  27. Rotate(C, (-(((90 * Progress_4))°)), B) → C'
  28. Rotate(A, (-(((90 * Progress_4))°)), B) → A'
  29. Polygon(C', A', B') → poly5', b', c', a'
  30. If(Progress_2 ≟ 0, false, If[Progress_3 ≟ 0, true, false]) → i
  31. If(Progress_3 ≟ 0, true, false) → k
  32. If(Progress_1 ≟ 1, If[Progress_3 ≟ 0, true, false], false) → Progress2_{visibility}
  33. If(Progress_3 ≟ 0, false, true) → l
  34. Segment(J, A) → m
  35. Segment(A, D) → n
  36. Segment(D, G) → p
  37. Segment(G, J) → q
  38. If(Progress_2 ≟ 1, true, false) → square
  39. Angle(B, A, C) → α
  40. Angle(E', D, F') → β
  41. Angle(H', G, I') → γ
  42. Angle(K', J, L') → δ
  43. If(Progress ≟ 1, true, false) → Right1
  44. If(Progress_1 ≟ 1, true, false) → Right2
  45. Angle(E', F', C) → ε
  46. Angle(H', I', F') → ζ
  47. Angle(C, H', I') → η
  48. Angle(B, C, H') → θ
  49. If(Progress ≟ 1, If[Progress_3 ≟ 0, true, false], false) → Blue1
  50. If(Progress_1 ≟ 1, If[Progress_3 ≟ 0, true, false], false) → Blue2
  51. If(Progress_2 ≟ 1, If[Progress_3 ≟ 0, true, false], false) → Blue3
  52. Polygon(C, L', E', B) → poly6, r, s, t, d_1
  53. If(Progress_2 ≟ 1 ∧ Progress_3 ≟ 0, true, false) → Csquare
  54. Polygon(J, L, J', L') → poly7, j_1, l_1, j'_1, l'_1
  55. Polygon(L, A, B, A') → poly8, l_2, a_3, b_3, a'_1
  56. Angle(J, L', J') → ι
  57. Angle(L', J', L) → κ
  58. Angle(J', L, J) → λ
  59. Angle(L, A', B) → μ
  60. Angle(A', B, A) → ν
  61. Angle(A, L, A') → ξ
  62. If(Progress_3 ≟ 1, true, false) → Bluesquares
  63. Midpoint(c_2) → N
  64. Midpoint(a_1) → O
  65. Midpoint(e') → P
  66. Midpoint(f') → Q
  67. Midpoint(d) → R
  68. Midpoint(h') → S
  69. Midpoint(i') → T
  70. Midpoint(g) → U
  71. If(Progress_1 ≟ 1, true, false) → Legs_{3rd}
  72. Midpoint(k') → V
  73. Midpoint(j) → W
  74. If(Progress ≟ 1, If[Progress_3 ≟ 0, true, false], false) → Hypo_{2nd}
  75. If(Progress_1 ≟ 1, If[Progress_3 ≟ 0, true, false], false) → Hypo_{3rd}
  76. If(Progress_2 ≟ 1, If[Progress_3 ≟ 0, true, false], false) → Hypo_{4th}
  77. Centroid(poly6) → A_1
  78. If(Progress ≟ 1, true, false) → Legs_1
  79. If(Progress_2 ≟ 1, If[Progress_3 ≟ 0, true, false], false) → Legs_{4th}
  80. Midpoint(l'_1) → B_1
  81. Midpoint(k'') → C_1
  82. Midpoint(j_1) → D_1
  83. Midpoint(l_1) → E_1
  84. Midpoint(a'_1) → F_1
  85. Midpoint(b_3) → G_1
  86. Midpoint(a_3) → H_1
  87. Midpoint(l_2) → I_1
  88. If(Progress_3 ≟ 1, true, false) → Bluelabels
  89. If(Progress_2 ≟ 1 ∧ Progress_3 ≟ 0, true, false) → textofcsquared
  90. Centroid(poly7) → J_1
  91. Centroid(poly8) → K_1
  92. If(Progress_3 ≟ 1, true, false) → aandbsquareds
  93. Line(L_1, yAxis) → c
  94. Line(M_1, yAxis) → e_1
  95. Point(c) → N_1
  96. OrthogonalLine(N_1, c) → f_1
  97. Point(c) → O_1
  98. OrthogonalLine(O_1, c) → g_1
  99. Point(c) → P_1
  100. OrthogonalLine(P_1, c) → h_1
  101. Intersect(e_1, f_1) → Q_1
  102. Intersect(e_1, g_1) → R_1
  103. Intersect(e_1, h_1) → S_1
  104. Polygon(P_1, O_1, R_1, S_1) → poly9, p_1, o_1, r_1, s_1
  105. Polygon(O_1, N_1, Q_1, R_1) → poly10, o_2, n_1, q_1, r_2
  106. If(Progress ≟ 0, true, false) → Title
  107. Segment(T_1, U_1) → i_1
  108. Segment(U_1, V_1) → k_1
  109. Segment(V_1, W_1) → m_1
  110. Segment(W_1, T_1) → t_1
  111. If(Progress ≟ 0, true, false) → o
  112. Vector(Z_1, A_2) → u
  113. Line(A_2, u) → d_2
  114. Point(d_2) → E_2
  115. Point(d_2) → F_2
  116. Vector(E_2, F_2) → z
  117. If(Tutorial ≟ true, If[Progress ≟ 0, true, false], false) → tutorial_{1st(2)}
  118. If(Tutorial ≟ true, If[Progress ≟ 0 ∨ Progress ≟ 1, false, true], false) → tutorial_{1stto2nd}
  119. If(Tutorial ≟ true, If[Progress ≟ 0, true, false], false) → tutorial_{1st}
  120. If(Tutorial ≟ true, If[Progress ≟ 1 ∧ Progress_1 ≟ 0, true, false], false) → Tutorial_{2nd}
  121. If(Tutorial ≟ true, If[Progress ≟ 1, false, true], false) → Vector_1
  122. Angle(K'', J', L'') → ο
  123. Angle(B', A', C') → ρ
  124. Ray(G, J) → e_2
  125. Ray(D, A) → f_2
  126. OrthogonalLine(G_2, f_2) → g_2
  127. Intersect(g_2, f_2) → H_2
  128. Segment(G_2, J) → h_2
  129. Segment(H_2, A) → i_2
  130. Midpoint(G_2, H_2) → I_2
  131. Vector(I_2, G_2) → z_1
  132. Vector(I_2, H_2) → u_2
  133. If(Progress_2 ≟ 1, true, false) → aplusb
  134. Circle(L'', (0.5 * a)) → k_2
  135. Point(k_2) → J_2
  136. Segment(L'', J_2) → j_2
  137. Rotate(J_2, ((90 * Progress_3))°, L'') → K_2
  138. Circle(B', (0.5 * b)) → p_2
  139. Point(p_2) → L_2
  140. Rotate(L_2, (-(((90 * Progress_3))°)), B') → M_2
  141. If(Progress_3 ≟ 0, false, true) → Stillaandb
  142. If(Progress_3 ≟ 0 ∨ Progress_3 ≟ 1, false, true) → movingaandb
  143. If(Progress_3 ≟ 0, false, true) → movingrightangles
  144. Circle(L'', sqrt(a^(2) + ((0.5 * b))^(2))) → q_2
  145. Circle(B', sqrt(b^(2) + ((0.5 * a))^(2))) → s_2
  146. Point(q_2) → N_2
  147. Point(s_2) → O_2
  148. Rotate(N_2, ((90 * Progress_3))°, L'') → P_2
  149. Rotate(O_2, (-(((90 * Progress_3))°)), B') → Q_2
  150. Intersect(c_3, m_2) → R_2,
  151. Rotate(R_2, ((90 * Progress_3))°, L'') → T_2
  152. Intersect(d_3, n_2) → S_2,
  153. Angle(J, L'', J') → σ
  154. Angle(A', B', A) → τ
  155. If(Progress_4 ≟ 1, true, false) → SecondBlueSquare
  156. If(Progress_3 ≟ 1, true, false) → Progress4_{visibility}
  157. If(Progress_2 ≟ 1, If[Progress_4 ≟ 0, true, false], false) → Progress3_{visibility}
  158. If(Progress_4 ≟ 0, true, false) → Hypo_{1st}
  159. If(Progress_4 ≟ 0, true, false) → Legs_{1st}
  160. If(Progress_2 ≟ 1, If[Progress_3 ≟ 1, false, true], false) → fakecsquared
  161. If(Progress_3 ≟ 1, If[Progress_4 ≟ 1, false, true], false) → SecondEquation
  162. Vector(U_2, V_2) → v_2
  163. If(Progress ≟ 0, false, true) → f
  164. If(Tutorial ≟ true, If[Progress_1 ≟ 1, false, true], false) → AnnoyingTutorial

AI Drawing Prompt Reference

Draw a right triangle and demonstrate the Pythagorean Theorem by moving and rearranging its parts. Start with a shape composed of the triangle's sides, then rotate and translate a part of it to combine with another part, forming a new shape. Use circles and lines to illustrate area relationships. The dynamic process shows the transformation and overlap of shapes, proving the geometric meaning of the theorem.
The prompt above was compiled from the original drawing commands and is for reference only.