Proof Without Words: Pythagorean Theorem with Hexagons
Loading the math board and drawing, please wait…
① 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
Point(yAxis) → APoint(yAxis) → BSemicircle(A, B) → cPoint(c) → CPolygon(A, C, 6) → poly1, f, G, g, h, i, j, k, D, E, FPolygon(C, B, 6) → poly2, l, K, m, n, p, q, r, H, I, JPolygon(B, A, 6) → poly3, s, O, t, a, b, d, e, L, M, NCentroid(poly2) → PMidpoint(B, C) → QMidpoint(C, K) → RMidpoint(K, J) → SMidpoint(J, I) → TMidpoint(I, H) → UMidpoint(H, B) → VAngle(C, B, A) → αMirror(A, C) → A'Line(B, A') → f_1Line(Q, P) → g_1Intersect(f_1, g_1) → WPolygon(P, R, C, W) → q1, p_1, r_1, c_1, wRotate(P, 60°, P) → P'Rotate(R, 60°, P) → R'Rotate(C, 60°, P) → C'Rotate(W, 60°, P) → W'Polygon(P', R', C', W') → q1', p', r', c', w'Rotate(P', 60°, P) → P''Rotate(R', 60°, P) → R''Rotate(C', 60°, P) → C''Rotate(W', 60°, P) → W''Polygon(P'', R'', C'', W'') → q1'', p'', r'', c'', w''Rotate(P'', 60°, P) → P'''Rotate(R'', 60°, P) → R'''Rotate(C'', 60°, P) → C'''Rotate(W'', 60°, P) → W'''Polygon(P''', R''', C''', W''') → q1''', p''', r''', c''', w'''Rotate(P''', 60°, P) → ZRotate(R''', 60°, P) → A_1Rotate(C''', 60°, P) → B_1Rotate(W''', 60°, P) → C_1Polygon(Z, A_1, B_1, C_1) → q2, z_1, a_1, b_1, h_1Rotate(Z, 60°, P) → Z'Rotate(A_1, 60°, P) → D_1Rotate(B_1, 60°, P) → E_1Rotate(C_1, 60°, P) → F_1Polygon(Z', D_1, E_1, F_1) → q2', z', d_1, e_1, i_1Polygon(W, R', C) → t1, c_2, w_1, j_1Polygon(W', V, B) → t2, b_2, k_1, vPolygon(W'', H, U) → t3, u, l_1, h_2Polygon(I, W''', T) → t4, t_1, i_2, m_1Polygon(J, C_1, S) → t5, s_1, j_2, n_1Polygon(K, F_1, R) → t6, r_2, k_2, q_1If(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]]]) → q3If(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]]]) → q4If(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]]]) → q5If(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]]]) → q6If(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]]]) → q7If(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]]]) → q8If(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]]]) → t7If(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]]]) → t8If(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]]]) → t9If(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]]]) → t10If(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]]]) → t11If(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]]]) → t12Centroid(poly3) → G_1Centroid(poly1) → H_1If(24 < o ≤ 25, Translate[poly1, Vector[H_1, Dilate[H_1, 25 - o, G_1]]], Translate[poly1, Vector[H_1, G_1]]) → poly4Polygon(C, A, G, F, E, D) → poly5, c_3, a_2, g_2, f_2, e_2, d_2Angle(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.