Proof Without Words: Pentagon and Pythagorean Theorem
Loading the math board and drawing, please wait…
This GeoGebra example demonstrates a 'proof without words' for the Pythagorean theorem embedded in a pentagon construction. It visually connects the theorem with equilateral triangles, geometric mean, and hints at continuity and fractal geometry. The construction uses commands such as Point, Semicircle, Polygon, Centroid, Midpoint, Mirror, Line, Intersect, Rotate, Translate, Angle, Dilate, and If, creating multiple polygons (poly1, poly2, poly3), semicircles, mirrored and rotated elements, with a slider n for dynamic variation. The result is a self-explanatory diagram that verifies the theorem without textual explanation. Suitable for middle school and above, it serves as an intuitive teaching tool for geometric proofs, visual reasoning, and exploring mathematical beauty.
GeoGebra Commands & Parameters
Point(yAxis) → APoint(yAxis) → BSemicircle(A, B) → cPoint(c) → CPolygon(A, C, 5) → poly1, f, g, h, i, j, D, E, FPolygon(C, B, 5) → poly2, n, p, q, r, s, J, K, LPolygon(B, A, 5) → poly3, k, l, m, t, a, G, H, ICentroid(poly2) → VMidpoint(n) → MMidpoint(s) → NMidpoint(r) → OMidpoint(q) → PMidpoint(p) → QMirror(A, n) → A'Line(B, A') → bLine(V, M) → dIntersect(b, d) → RPolygon(V, R, B, Q) → q1, v, r_1, b_1, q_1Rotate(R, (2 * π / 5), V) → R'Rotate(R', (2 * π / 5), V) → R''Rotate(R'', (2 * π / 5), V) → R'''Rotate(R''', (2 * π / 5), V) → SPolygon(V, R', J, P) → q2, v_1, r', j_1, p_1Polygon(V, R'', K, O) → q3, v_2, r'', k_1, o_1Polygon(V, R''', L, N) → q4, v_3, r''', l_1, n_1Polygon(V, S, C, M) → q5, v_4, s_1, c_1, m_1Translate(R, Vector[B, H]) → R'_1Angle(R'_1, H, G) → aaDilate(B, 1 - o, H) → B'If(0 < o ≤ 1, Rotate[Polygon[Translate[V, B' - B], Translate[R, B' - B], Translate[B, B' - B], Translate[Q, B' - B]], ((o - 0) * aa), B'], Rotate[Polygon[Translate[V, H - B], Translate[R, H - B], Translate[B, H - B], Translate[Q, H - B]], aa, H]) → q6If(2 < o ≤ 3, Rotate[Polygon[Translate[V, Vector[J, Dilate[J, 3 - o, I]]], Translate[R', Vector[J, Dilate[J, 3 - o, I]]], Translate[J, Vector[J, Dilate[J, 3 - o, I]]], Translate[P, Vector[J, Dilate[J, 3 - o, I]]]], ((o - 2) * aa), Dilate[J, 3 - o, I]], Rotate[Polygon[Translate[V, I - J], Translate[R', I - J], Translate[J, I - J], Translate[P, I - J]], aa, I]) → q7If(4 < o ≤ 5, Rotate[Polygon[Translate[V, Vector[K, Dilate[K, 5 - o, B]]], Translate[R'', Vector[K, Dilate[K, 5 - o, B]]], Translate[K, Vector[K, Dilate[K, 5 - o, B]]], Translate[O, Vector[K, Dilate[K, 5 - o, B]]]], ((o - 4) * aa), Dilate[K, 5 - o, B]], Rotate[Polygon[Translate[V, B - K], Translate[R'', B - K], Translate[K, B - K], Translate[O, B - K]], aa, B]) → q8If(4 < o ≤ 5, Rotate[Polygon[Translate[V, Vector[K, Dilate[K, 5 - o, B]]], Translate[R'', Vector[K, Dilate[K, 5 - o, B]]], Translate[K, Vector[K, Dilate[K, 5 - o, B]]], Translate[O, Vector[K, Dilate[K, 5 - o, B]]]], ((o - 4) * aa), Dilate[K, 5 - o, B]], Rotate[Polygon[Translate[V, B - K], Translate[R'', B - K], Translate[K, B - K], Translate[O, B - K]], aa, B]) → q9If(6 < o ≤ 7, Rotate[Polygon[Translate[V, Vector[L, Dilate[L, 7 - o, A]]], Translate[R''', Vector[L, Dilate[L, 7 - o, A]]], Translate[L, Vector[L, Dilate[L, 7 - o, A]]], Translate[N, Vector[L, Dilate[L, 7 - o, A]]]], ((o - 6) * aa), Dilate[L, 7 - o, A]], Rotate[Polygon[Translate[V, A - L], Translate[R''', A - L], Translate[L, A - L], Translate[N, A - L]], aa, A]) → q10If(8 < o ≤ 9, Rotate[Polygon[Translate[V, Vector[C, Dilate[C, 9 - o, G]]], Translate[S, Vector[C, Dilate[C, 9 - o, G]]], Translate[C, Vector[C, Dilate[C, 9 - o, G]]], Translate[M, Vector[C, Dilate[C, 9 - o, G]]]], ((o - 8) * aa), Dilate[C, 9 - o, G]], Rotate[Polygon[Translate[V, G - C], Translate[S, G - C], Translate[C, G - C], Translate[M, G - C]], aa, G]) → q11Polygon(B, R, M) → t1, m_2, b_2, r_2Polygon(Q, J, R') → t2, e, q_2, j_2Polygon(P, K, R'') → t3, f_1, p_2, k_2Polygon(R''', O, L) → t4, l_2, g_1, o_2Polygon(S, N, C) → t5, c_2, s_2, n_2Rotate(Translate[M, G - C], aa, G) → TAngle(H, G, T) → bbLine(I, B) → h_1Line(B, R) → i_1Angle(h_1, i_1) → ccIf(10 < o ≤ 11, Rotate[Polygon[Translate[B, Vector[B, Dilate[B, 11 - o, I]]], Translate[R, Vector[B, Dilate[B, 11 - o, I]]], Translate[M, Vector[B, Dilate[B, 11 - o, I]]]], ((-(o - 10)) * cc), Dilate[B, 11 - o, I]], Rotate[Polygon[Translate[B, I - B], Translate[R, I - B], Translate[M, I - B]], (-cc), I]) → t7If(12 < o ≤ 13, Rotate[Polygon[Translate[Q, Vector[J, Dilate[J, 13 - o, B]]], Translate[J, Vector[J, Dilate[J, 13 - o, B]]], Translate[R', Vector[J, Dilate[J, 13 - o, B]]]], ((-(o - 12)) * cc), Dilate[J, 13 - o, B]], Rotate[Polygon[Translate[Q, B - J], Translate[J, B - J], Translate[R', B - J]], (-cc), B]) → t8If(14 < o ≤ 15, Rotate[Polygon[Translate[P, Vector[K, Dilate[K, 15 - o, A]]], Translate[K, Vector[K, Dilate[K, 15 - o, A]]], Translate[R'', Vector[K, Dilate[K, 15 - o, A]]]], ((-(o - 14)) * cc), Dilate[K, 15 - o, A]], Rotate[Polygon[Translate[P, A - K], Translate[K, A - K], Translate[R'', A - K]], (-cc), A]) → t9If(16 < o ≤ 17, Rotate[Polygon[Translate[R''', Vector[L, Dilate[L, 17 - o, G]]], Translate[O, Vector[L, Dilate[L, 17 - o, G]]], Translate[L, Vector[L, Dilate[L, 17 - o, G]]]], ((-(o - 16)) * cc), Dilate[L, 17 - o, G]], Rotate[Polygon[Translate[R''', G - L], Translate[O, G - L], Translate[L, G - L]], (-cc), G]) → t10If(18 < o ≤ 19, Rotate[Polygon[Translate[S, Vector[C, Dilate[C, 19 - o, H]]], Translate[N, Vector[C, Dilate[C, 19 - o, H]]], Translate[C, Vector[C, Dilate[C, 19 - o, H]]]], ((-(o - 18)) * cc), Dilate[C, 19 - o, H]], Rotate[Polygon[Translate[S, H - C], Translate[N, H - C], Translate[C, H - C]], (-cc), H]) → t11Centroid(poly3) → UCentroid(poly1) → WPolygon(A, F, E, D, C) → poly4, a_1, f_2, e_1, d_1, c_3If(20 < o ≤ 21, Rotate[Polygon[Translate[A, Vector[W, Dilate[W, 21 - o, U]]], Translate[F, Vector[W, Dilate[W, 21 - o, U]]], Translate[E, Vector[W, Dilate[W, 21 - o, U]]], Translate[D, Vector[W, Dilate[W, 21 - o, U]]], Translate[C, Vector[W, Dilate[W, 21 - o, U]]]], ((-(o - 20)) * cc), Dilate[W, 21 - o, U]], Rotate[Polygon[Translate[A, U - W], Translate[F, U - W], Translate[E, U - W], Translate[D, U - W], Translate[C, U - W]], (-cc), U]) → poly5Angle(A, C, B) → α