Pythagorean Theorem Shear Proof
Loading the math board and drawing, please wait…
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
Intersect(xAxis, yAxis) → APoint(xAxis) → BSemicircle(A, B) → hMidpoint(A, B) → OCircle(O, B) → oPoint(h) → CRotate(C, 90*°, A) → DRotate(A, 270*°, C) → ELine(D, E) → mVector(D, E) → v_bLength(v_b) → k_bRotate(C, 270*°, B) → FRotate(B, 90*°, C) → GLine(F, G) → nIntersect(m, n) → HLine(H, yAxis) → hcVector(E, H) → u_aLength(u_a) → ku_bVector(G, H) → u_bLength(u_b) → ku_aVector(F, G) → v_aLength(v_a) → k_aRotate(B, 270*°, A) → IVector(A, I) → v_cLength(v_c) → k_cCircle(H, (ku_a * ku_b / k_c)) → dIntersect(d, hc) → K, LVector(H, L) → v_hRotate(A, 90*°, B) → JIf(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'Polygon(B, C, G, F) → P, b_1, c, g, fIf(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'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'Vector(G', Ca') → uIf(a < ka_1, B, If[a < ka_2, B, Point[B, Vector[((a - ka_2) / (1 - ka_2) * v_c)]]]) → B'Vector(F', B') → vPolygon(B', Ca', G', F') → Q, b', c', g', f'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'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'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'If(b < kb_1, A, If[b < kb_2, A, Point[A, Vector[((b - kb_2) / (1 - kb_2) * v_c)]]]) → A'Polygon(A, C, E, D) → R, a_1, c_1, e, d_1Polygon(A', Cb', E', D') → S, a', cb', e', d'Polygon(A, B, J, I) → T, a_2, b_2, j, iAngle(A, C, B) → αMidpoint(C, B) → MMidpoint(A, C) → NMidpoint(a_2) → U