% Perdigal's demonstration of Pythagorean theorem % Copyright (c) Christian Obrecht 2004 box(-3,-5.5,8,6,1.5) A B C triangle(5,4,3) BA = vector(B,A) CB = vector(C,B) AC = vector(A,C) B A D E square(length(BA),angle(BA):) C B F G square(length(CB),angle(CB):) A C H I square(length(AC),angle(AC):) O = barycenter(C,B,F,G) J = intersection(line(C,B),line(O,90+angle(BA):)) K = intersection(line(F,G),line(O,90+angle(BA):)) L = intersection(line(B,F),line(O,angle(BA):)) M = intersection(line(G,C),line(O,angle(BA):)) N = translation(C,-BA) P = translation(C,vector(O,B)) Q = translation(B,vector(O,A)) R = translation(F,vector(O,D)) S = translation(G,vector(O,E)) T = translation(J,vector(O,A)) U = translation(K,vector(O,E)) V = translation(L,vector(O,D)) W = translation(M,vector(O,B)) draw(B,A,D,E) draw(C,B,F,G) draw(A,C,H,I) draw(segment(J,K)) draw(segment(L,M)) draw(segment(P,U)) draw(segment(Q,W)) draw(segment(R,T)) draw(segment(S,V)) style(dotted) draw(segment(C,F)) draw(segment(B,G)) draw(segment(C,N)) style(full) thickness(2) draw(A,B,C)