Proof Without Words: Pythagorean Theorem with Hexagons

Proof Without Words: Pythagorean Theorem with Hexagons
Loading the math board and drawing, please wait…
2019-05-31 21:29
① This GeoGebra example demonstrates the Pythagorean theorem through a visual proof using hexagons, showing that the sum of the areas of the hexagons on the two legs equals the area of the hexagon on the hypotenuse without any verbal explanation. ② Core mathematical concepts include the Pythagorean theorem, area conservation, polygon dissection, and reflection symmetry, involving right triangles, squares, hexagons, and area decomposition. ③ Construction highlights: using GeoGebra commands such as Point, Semicircle, Polygon, Centroid, Midpoint, Angle, Mirror, Line, Intersect, Rotate, and If, the applet constructs multiple polygons (poly1, poly2, poly3) and auxiliary lines, then applies rotations, reflections, and intersections to dissect the hexagon on the hypotenuse and reassemble it onto the hexagons on the legs, visually proving the area equality. ④ Suitable for middle school geometry lessons, mathematics history, or educational demonstrations, and useful for teachers creating dynamic worksheets to help students grasp the geometric essence of the Pythagorean theorem and enhance spatial reasoning and logical deduction.

GeoGebra Commands & Parameters

  1. Point(yAxis) → A
  2. Point(yAxis) → B
  3. Semicircle(A, B) → c
  4. Point(c) → C
  5. Polygon(A, C, 6) → poly1, f, G, g, h, i, j, k, D, E, F
  6. Polygon(C, B, 6) → poly2, l, K, m, n, p, q, r, H, I, J
  7. Polygon(B, A, 6) → poly3, s, O, t, a, b, d, e, L, M, N
  8. Centroid(poly2) → P
  9. Midpoint(B, C) → Q
  10. Midpoint(C, K) → R
  11. Midpoint(K, J) → S
  12. Midpoint(J, I) → T
  13. Midpoint(I, H) → U
  14. Midpoint(H, B) → V
  15. Angle(C, B, A) → α
  16. Mirror(A, C) → A'
  17. Line(B, A') → f_1
  18. Line(Q, P) → g_1
  19. Intersect(f_1, g_1) → W
  20. Polygon(P, R, C, W) → q1, p_1, r_1, c_1, w
  21. Rotate(P, 60°, P) → P'
  22. Rotate(R, 60°, P) → R'
  23. Rotate(C, 60°, P) → C'
  24. Rotate(W, 60°, P) → W'
  25. Polygon(P', R', C', W') → q1', p', r', c', w'
  26. Rotate(P', 60°, P) → P''
  27. Rotate(R', 60°, P) → R''
  28. Rotate(C', 60°, P) → C''
  29. Rotate(W', 60°, P) → W''
  30. Polygon(P'', R'', C'', W'') → q1'', p'', r'', c'', w''
  31. Rotate(P'', 60°, P) → P'''
  32. Rotate(R'', 60°, P) → R'''
  33. Rotate(C'', 60°, P) → C'''
  34. Rotate(W'', 60°, P) → W'''
  35. Polygon(P''', R''', C''', W''') → q1''', p''', r''', c''', w'''
  36. Rotate(P''', 60°, P) → Z
  37. Rotate(R''', 60°, P) → A_1
  38. Rotate(C''', 60°, P) → B_1
  39. Rotate(W''', 60°, P) → C_1
  40. Polygon(Z, A_1, B_1, C_1) → q2, z_1, a_1, b_1, h_1
  41. Rotate(Z, 60°, P) → Z'
  42. Rotate(A_1, 60°, P) → D_1
  43. Rotate(B_1, 60°, P) → E_1
  44. Rotate(C_1, 60°, P) → F_1
  45. Polygon(Z', D_1, E_1, F_1) → q2', z', d_1, e_1, i_1
  46. Polygon(W, R', C) → t1, c_2, w_1, j_1
  47. Polygon(W', V, B) → t2, b_2, k_1, v
  48. Polygon(W'', H, U) → t3, u, l_1, h_2
  49. Polygon(I, W''', T) → t4, t_1, i_2, m_1
  50. Polygon(J, C_1, S) → t5, s_1, j_2, n_1
  51. Polygon(K, F_1, R) → t6, r_2, k_2, q_1
  52. If(0 < o ≤ 1, Polygon[Translate[P, Vector[C, Dilate[C, 1 - o, M]]], Translate[R, Vector[C, Dilate[C, 1 - o, M]]], Translate[C, Vector[C, Dilate[C, 1 - o, M]]], Translate[W, Vector[C, Dilate[C, 1 - o, M]]]], Polygon[Translate[P, Vector[C, M]], Translate[R, Vector[C, M]], Translate[C, Vector[C, M]], Translate[W, Vector[C, M]]]) → q3
  53. If(2 < o ≤ 3, Polygon[Translate[P', Vector[B, Dilate[B, 3 - o, N]]], Translate[R', Vector[B, Dilate[B, 3 - o, N]]], Translate[C', Vector[B, Dilate[B, 3 - o, N]]], Translate[W', Vector[B, Dilate[B, 3 - o, N]]]], Polygon[Translate[P', Vector[B, N]], Translate[R', Vector[B, N]], Translate[C', Vector[B, N]], Translate[W', Vector[B, N]]]) → q4
  54. If(4 < o ≤ 5, Polygon[Translate[P'', Vector[H, Dilate[H, 5 - o, O]]], Translate[R'', Vector[H, Dilate[H, 5 - o, O]]], Translate[C'', Vector[H, Dilate[H, 5 - o, O]]], Translate[W'', Vector[H, Dilate[H, 5 - o, O]]]], Polygon[Translate[P'', Vector[H, O]], Translate[R'', Vector[H, O]], Translate[C'', Vector[H, O]], Translate[W'', Vector[H, O]]]) → q5
  55. If(6 < o ≤ 7, Polygon[Translate[P''', Vector[I, Dilate[I, 7 - o, B]]], Translate[R''', Vector[I, Dilate[I, 7 - o, B]]], Translate[C''', Vector[I, Dilate[I, 7 - o, B]]], Translate[W''', Vector[I, Dilate[I, 7 - o, B]]]], Polygon[Translate[P''', Vector[I, B]], Translate[R''', Vector[I, B]], Translate[C''', Vector[I, B]], Translate[W''', Vector[I, B]]]) → q6
  56. If(8 < o ≤ 9, Polygon[Translate[Z, Vector[J, Dilate[J, 9 - o, A]]], Translate[A_1, Vector[J, Dilate[J, 9 - o, A]]], Translate[B_1, Vector[J, Dilate[J, 9 - o, A]]], Translate[C_1, Vector[J, Dilate[J, 9 - o, A]]]], Polygon[Translate[Z, Vector[J, A]], Translate[A_1, Vector[J, A]], Translate[B_1, Vector[J, A]], Translate[C_1, Vector[J, A]]]) → q7
  57. If(10 < o ≤ 11, Polygon[Translate[Z', Vector[K, Dilate[K, 11 - o, L]]], Translate[D_1, Vector[K, Dilate[K, 11 - o, L]]], Translate[E_1, Vector[K, Dilate[K, 11 - o, L]]], Translate[F_1, Vector[K, Dilate[K, 11 - o, L]]]], Polygon[Translate[Z', Vector[K, L]], Translate[D_1, Vector[K, L]], Translate[E_1, Vector[K, L]], Translate[F_1, Vector[K, L]]]) → q8
  58. If(12 < o ≤ 13, Polygon[Translate[W, Vector[C, Dilate[C, 13 - o, A]]], Translate[R', Vector[C, Dilate[C, 13 - o, A]]], Translate[C, Vector[C, Dilate[C, 13 - o, A]]]], Polygon[Translate[W, Vector[C, A]], Translate[R', Vector[C, A]], Translate[C, Vector[C, A]]]) → t7
  59. If(14 < o ≤ 15, Polygon[Translate[W', Vector[B, Dilate[B, 15 - o, L]]], Translate[V, Vector[B, Dilate[B, 15 - o, L]]], Translate[B, Vector[B, Dilate[B, 15 - o, L]]]], Polygon[Translate[W', Vector[B, L]], Translate[V, Vector[B, L]], Translate[B, Vector[B, L]]]) → t8
  60. If(16 < o ≤ 17, Polygon[Translate[W'', Vector[H, Dilate[H, 17 - o, M]]], Translate[H, Vector[H, Dilate[H, 17 - o, M]]], Translate[U, Vector[H, Dilate[H, 17 - o, M]]]], Polygon[Translate[W'', Vector[H, M]], Translate[H, Vector[H, M]], Translate[U, Vector[H, M]]]) → t9
  61. If(18 < o ≤ 19, Polygon[Translate[I, Vector[I, Dilate[I, 19 - o, N]]], Translate[W''', Vector[I, Dilate[I, 19 - o, N]]], Translate[T, Vector[I, Dilate[I, 19 - o, N]]]], Polygon[Translate[I, Vector[I, N]], Translate[W''', Vector[I, N]], Translate[T, Vector[I, N]]]) → t10
  62. If(20 < o ≤ 21, Polygon[Translate[J, Vector[J, Dilate[J, 21 - o, O]]], Translate[C_1, Vector[J, Dilate[J, 21 - o, O]]], Translate[S, Vector[J, Dilate[J, 21 - o, O]]]], Polygon[Translate[J, Vector[J, O]], Translate[C_1, Vector[J, O]], Translate[S, Vector[J, O]]]) → t11
  63. If(22 < o ≤ 23, Polygon[Translate[K, Vector[K, Dilate[K, 23 - o, B]]], Translate[F_1, Vector[K, Dilate[K, 23 - o, B]]], Translate[R, Vector[K, Dilate[K, 23 - o, B]]]], Polygon[Translate[K, Vector[K, B]], Translate[F_1, Vector[K, B]], Translate[R, Vector[K, B]]]) → t12
  64. Centroid(poly3) → G_1
  65. Centroid(poly1) → H_1
  66. If(24 < o ≤ 25, Translate[poly1, Vector[H_1, Dilate[H_1, 25 - o, G_1]]], Translate[poly1, Vector[H_1, G_1]]) → poly4
  67. Polygon(C, A, G, F, E, D) → poly5, c_3, a_2, g_2, f_2, e_2, d_2
  68. Angle(A, C, B) → β

AI Drawing Prompt Reference

Draw a right triangle with its hypotenuse as a diameter of a semicircle. Place a point on the semicircle, then construct regular hexagons on each of the two legs and on the hypotenuse. Add auxiliary lines connecting midpoints and centroids, then dissect the hexagon on the hypotenuse into smaller polygons and rotate them to reassemble onto the hexagons on the legs, visually showing area equality. Include the semicircle, three hexagons, auxiliary lines, and rotated polygon pieces.
The prompt above was compiled from the original drawing commands and is for reference only.