Pythagorean Theorem Proof Without Words Using Circles and Similar Triangles

Pythagorean Theorem Proof Without Words Using Circles and Similar Triangles
Loading the math board and drawing, please wait…
2021-03-01 07:22
This GeoGebra example demonstrates a “proof without words” by constructing a compelling geometric configuration that visually encodes the Pythagorean Theorem’s area/length relationship. The key ideas include right triangles, similar triangles, angle relationships, and circle-based constraints that make the equality apparent from the diagram. The construction uses core GeoGebra commands such as Intersect to create pivotal intersection points; Point, Line, and Circle to build the geometric framework; Polygon to form regions whose relationships are compared; Midpoint and Centroid to define auxiliary points; Mirror and Rotate to create symmetric/rotational rearrangements that make the correspondence visible; OrthogonalLine to enforce perpendicularity; LineBisector and Angle to control angle bisectors and angle measures; and conditional constructs (If) to manage alternative configurations. Suitable for advanced middle school, high school, and olympiad-style geometry lessons, especially for visual proof, inquiry-based teaching, and conceptual understanding of the theorem.

GeoGebra Commands & Parameters

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

AI Drawing Prompt Reference

Draw a right triangle with its right angle at the origin, and construct a regular pentagon as the base framework. Inside the pentagon, connect midpoints of sides to the centroid, dividing it into smaller triangles and quadrilaterals. With the centroid as center, draw a circle passing through a vertex; intersect it with lines from the centroid to each pentagon vertex, obtaining five points. Use these points to construct angle bisectors and find a rotation center. Then rotate and mirror selected polygons around this center to rearrange regions symmetrically, visually demonstrating the area relationships of the Pythagorean theorem.
The prompt above was compiled from the original drawing commands and is for reference only.