Teorema de Pitágoras. Demostración de Papus
Author: J.Orenga
Date: Octubre de 2011

Cuadrado cateto izquierdo

Cuadrado cateto derecho

Cuadrado hipotenusa

Debes seguir los pasos de la demostración, 
en el orden en que se te indica:

Esta demostración se basa también en comprobar que: 

El área del cuadrado construído sobre la hipotenusa es igual 
a la suma de las áreas de los cuadrados construídos sobre los catetos

Por tanto:

Paso 1: Arrstrando los puntos A, B y C, puedes, cambiar el tamaño del triángulo rectángulo.

Paso 2: Haz cic sobre cada una de las tres casilas 
para dibujar los tres cuadrados

Paso 3: Mueve los dos puntos rojos hacia ariba hasta unirlos.
Observa que los nuevos rombos tienen la misma área de los cuadrados originales

Paso 4: Mueve el punto amarillo todo lo que puedas hacia abajo
Observa que las dos áreas se mantienen constantes y rellenan el cuadrado mayor.
Por tanto, queda demostrado el teorema

NOTA FINAL: Para hacer de nuevo la demostración, pulsa F5.

A = (-15.846091245050173, -0.6544158236785927)
L = Point(Circle[A, 10])
k_1 = Segment(A, L)
B = Point(k_1)
c = Semicircle(A, B)
C = Point(c)
U = Point(Circle[C, Distance[A, B] - 0.1])
g = false
j = false
m = false
polígono1, c_1, a, b = Polygon(A, B, C)
polígono2, c_2, b_1, d, e, D, E = Polygon(C, B, 4)
polígono3, b_2, a_1, f, h, F, G = Polygon(B, A, 4)
polígono4, a_2, c_3, i, k, H, I = Polygon(A, C, 4)
α = Angle(A, C, B)
q(x) = y(D) + (x - x(D)) * (y(D) - y(E)) / (x(D) - x(E))
n = Ray(I, H)
K = Intersect(q, n)
r = Segment(K, E)
E_1 = Point(r)
s = Segment(C, E_1)
t = Line(B, s)
J = Intersect(t, d)
D_1 = Intersect(t, d)
polígono5, c_4, b_3, j_1, e_1 = Polygon(C, B, J, E_1)
l = Segment(H, K)
H_1 = Point(l)
d_1 = Segment(C, H_1)
f_1 = Line(A, d_1)
g_1 = Line(A, d_1)
I_1 = Intersect(g_1, n)
polígono6, a_3, c_5, h_1, i_1 = Polygon(A, C, H_1, I_1)
l_1 = OrthogonalLine(C, f)
M = Intersect(l_1, f)
m_1 = Segment(C, U)
N = Point(m_1)
n_1 = Line(N, a)
O = Intersect(n_1, h)
P = Point(Circle[O, Distance[A, B]])
p_1 = Segment(O, P)
q_1 = Line(N, p_1)
r_1 = Line(P, n_1)
Q = Intersect(q_1, r_1)
polígono7, n_2, o, p_2, q_2 = Polygon(N, O, P, Q)
R = Intersect(q_1, q_2)
s_1 = Line(N, b)
t_1 = Line(Q, b)
S = Intersect(s_1, a_1)
d_2 = Segment(I_1, A)
T = Intersect(t_1, d_2)
polígono8, s_2, n_3, q_3, t_2 = Polygon(S, N, Q, T)
p = Segment(C, U)
e_2 = Segment(U, M)
V = Point(e_2)
f_2 = Segment(V, G)
g_2 = Line(B, f_2)
W, W_1 = Intersect(g_2, polígono3)
Z = Intersect(g_2, m_1)
polígono9, v, g_3, b_4, z = Polygon(V, G, B, Z)
polígono10, v_1, z_1, a_4, f_3 = Polygon(V, Z, A, F)
A_1 = (-0.29123798488575076, 3.2720519895667937)
B_1 = (13.942207838128782, 3.347560985975359)
h_2 = Segment(A_1, B_1)
C_1 = (-0.21572898847718558, 0.40271012604131895)
F_1 = (14.017716834537348, 0.4404646242456015)
i_2 = Segment(C_1, F_1)
G_1 = (-0.29123798488575076, -2.202350250054178)
J_1 = (13.942207838128782, -2.202350250054178)
j_2 = Segment(G_1, J_1)
K_1 = (-0.21572898847718558, -5.675764084848173)
L_1 = (14.093225830945913, -5.638009586643891)
k_2 = Segment(K_1, L_1)