Pythagorean Theorem Shear Proof

Pythagorean Theorem Shear Proof
Loading the math board and drawing, please wait…
2019-08-16 05:20
This example demonstrates the proof of the Pythagorean Theorem using the shearing method. It involves core math concepts like the Pythagorean Theorem, quadratic functions, isosceles right triangles, geometric mean, reflection, and circles. Constructed with GeoGebra commands such as Intersect, Point, Semicircle, Midpoint, Circle, Rotate, Line, Vector, Length, If, Polygon, Angle. Suitable for high school mathematics teaching and geometric proof learning.

GeoGebra Commands & Parameters

  1. Intersect(xAxis, yAxis) → A
  2. Point(xAxis) → B
  3. Semicircle(A, B) → h
  4. Midpoint(A, B) → O
  5. Circle(O, B) → o
  6. Point(h) → C
  7. Rotate(C, 90*°, A) → D
  8. Rotate(A, 270*°, C) → E
  9. Line(D, E) → m
  10. Vector(D, E) → v_b
  11. Length(v_b) → k_b
  12. Rotate(C, 270*°, B) → F
  13. Rotate(B, 90*°, C) → G
  14. Line(F, G) → n
  15. Intersect(m, n) → H
  16. Line(H, yAxis) → hc
  17. Vector(E, H) → u_a
  18. Length(u_a) → ku_b
  19. Vector(G, H) → u_b
  20. Length(u_b) → ku_a
  21. Vector(F, G) → v_a
  22. Length(v_a) → k_a
  23. Rotate(B, 270*°, A) → I
  24. Vector(A, I) → v_c
  25. Length(v_c) → k_c
  26. Circle(H, (ku_a * ku_b / k_c)) → d
  27. Intersect(d, hc) → K, L
  28. Vector(H, L) → v_h
  29. Rotate(A, 90*°, B) → J
  30. If(a < ka_1, Point[F, Vector[(a / ka_1 * u_b)]], If[a < ka_2, Point[F, u_b], Point[F, Vector[u_b + ((a - ka_2) / (1 - ka_2) * v_c)]]]) → F'
  31. Polygon(B, C, G, F) → P, b_1, c, g, f
  32. If(a < ka_1, Point[G, Vector[(a / ka_1 * u_b)]], If[a < ka_2, Point[H, Vector[((a - ka_1) / (ka_2 - ka_1) * v_h)]], Point[L, Vector[((a - ka_2) / (1 - ka_2) * v_c)]]]) → G'
  33. If(a < ka_1, C, If[a < ka_2, Point[C, Vector[((a - ka_1) / (ka_2 - ka_1) * v_h)]], Point[C, Vector[v_h + ((a - ka_2) / (1 - ka_2) * v_c)]]]) → Ca'
  34. Vector(G', Ca') → u
  35. If(a < ka_1, B, If[a < ka_2, B, Point[B, Vector[((a - ka_2) / (1 - ka_2) * v_c)]]]) → B'
  36. Vector(F', B') → v
  37. Polygon(B', Ca', G', F') → Q, b', c', g', f'
  38. If(b < kb_1, Point[E, Vector[(b / kb_1 * u_a)]], If[b < kb_2, Point[H, Vector[((b - kb_1) / (kb_2 - kb_1) * v_h)]], Point[L, Vector[((b - kb_2) / (1 - kb_2) * v_c)]]]) → E'
  39. If(b < kb_1, Point[D, Vector[(b / kb_1 * u_a)]], If[b < kb_2, Point[D, u_a], Point[D, Vector[u_a + ((b - kb_2) / (1 - kb_2) * v_c)]]]) → D'
  40. If(b < kb_1, C, If[b < kb_2, Point[C, Vector[((b - kb_1) / (kb_2 - kb_1) * v_h)]], Point[C, Vector[v_h + ((b - kb_2) / (1 - kb_2) * v_c)]]]) → Cb'
  41. If(b < kb_1, A, If[b < kb_2, A, Point[A, Vector[((b - kb_2) / (1 - kb_2) * v_c)]]]) → A'
  42. Polygon(A, C, E, D) → R, a_1, c_1, e, d_1
  43. Polygon(A', Cb', E', D') → S, a', cb', e', d'
  44. Polygon(A, B, J, I) → T, a_2, b_2, j, i
  45. Angle(A, C, B) → α
  46. Midpoint(C, B) → M
  47. Midpoint(A, C) → N
  48. Midpoint(a_2) → U