Pythagoras

a^2

b^2

c^2

a^2+b^2=c^2

a_r = 0 (slider from 0 to 1, step 0.01)
B = Point(xAxis)
A = Intersect(xAxis, yAxis)
O = Midpoint(A, B)
o = Circle(O, B)
C = Point(o)
D = Rotate(C, 90*°, A)
E = Rotate(A, 270*°, C)
m = Line(D, E)
v_b = Vector(D, E)
k_b = Length(v_b)
F = Rotate(C, 270*°, B)
G = Rotate(B, 90*°, C)
n = Line(F, G)
H = Intersect(m, n)
hc = Line(H, yAxis)
u_a = Vector(E, H)
ku_b = Length(u_a)
u_b = Vector(G, H)
ku_a = Length(u_b)
v_a = Vector(F, G)
k_a = Length(v_a)
I = Rotate(B, 270*°, A)
v_c = Vector(A, I)
k_c = Length(v_c)
d = Circle(H, (ku_a * ku_b / k_c))
K, L = Intersect(d, hc)
v_h = Vector(H, L)
k_H: (k_a * k_b / k_c)
sliderA_m: ku_b + k_H + k_c
a_3: 1 - a_r
ka_1: ku_b / sliderA_m
ka_2: (ku_b + k_H) / sliderA_m
J = Rotate(A, 90*°, B)
sliderB_m: ku_b + k_H + k_c
b_3 = 1 (slider from 0 to 1, step 0.01)
F' = If(a_3  <  ka_1, Point[F, Vector[(a_3 / ka_1 * u_b)]], If[a_3  <  ka_2, Point[F, u_b], Point[F, Vector[u_b + ((a_3 - ka_2) / (1 - ka_2) * v_c)]]])
P, a, c_2, g, f = Polygon(B, C, G, F)
k_3: (ku_b + k_H + k_c) / sliderA_m
G' = If(a_3  <  ka_1, Point[G, Vector[(a_3 / ka_1 * u_b)]], If[a_3  <  ka_2, Point[H, Vector[((a_3 - ka_1) / (ka_2 - ka_1) * v_h)]], Point[L, Vector[((a_3 - ka_2) / (1 - ka_2) * v_c)]]])
Ca' = If(a_3  <  ka_1, C, If[a_3  <  ka_2, Point[C, Vector[((a_3 - ka_1) / (ka_2 - ka_1) * v_h)]], Point[C, Vector[v_h + ((a_3 - ka_2) / (1 - ka_2) * v_c)]]])
u = Vector(G', Ca')
B' = If(a_3  <  ka_1, B, If[a_3  <  ka_2, B, Point[B, Vector[((a_3 - ka_2) / (1 - ka_2) * v_c)]]])
v = Vector(F', B')
Q, a_1, c', g', f' = Polygon(B', Ca', G', F')
kb_1: ku_a / sliderB_m
kb_2: (ku_a + k_H) / sliderB_m
E' = If(b_3  <  kb_1, Point[E, Vector[(b_3 / kb_1 * u_a)]], If[b_3  <  kb_2, Point[H, Vector[((b_3 - kb_1) / (kb_2 - kb_1) * v_h)]], Point[L, Vector[((b_3 - kb_2) / (1 - kb_2) * v_c)]]])
D' = If(b_3  <  kb_1, Point[D, Vector[(b_3 / kb_1 * u_a)]], If[b_3  <  kb_2, Point[D, u_a], Point[D, Vector[u_a + ((b_3 - kb_2) / (1 - kb_2) * v_c)]]])
Cb' = If(b_3  <  kb_1, C, If[b_3  <  kb_2, Point[C, Vector[((b_3 - kb_1) / (kb_2 - kb_1) * v_h)]], Point[C, Vector[v_h + ((b_3 - kb_2) / (1 - kb_2) * v_c)]]])
A' = If(b_3  <  kb_1, A, If[b_3  <  kb_2, A, Point[A, Vector[((b_3 - kb_2) / (1 - kb_2) * v_c)]]])
R, b, c_1, e, d_1 = Polygon(A, C, E, D)
S, b_4, cb', e', d' = Polygon(A', Cb', E', D')
T, c, b_2, j, i = Polygon(A, B, J, I)
α = Angle(A, C, B)
M = Midpoint(C, B)
N = Midpoint(A, C)
U = Intersect(hc, c)
V = Intersect(b, d_1)
h = Segment(G, B)
k = Segment(C, F)
l = Segment(E, A)
r = Segment(D, C)
s = Segment(A, J)
t = Segment(I, B)
b_1 = Segment(A, U)
e_1 = Segment(U, B)
W = Intersect(l, r)
Z = Intersect(h, k)
A_1 = Intersect(s, t)
B_1 = Midpoint(b_1)
C_1 = Midpoint(e_1)
f_1 = OrthogonalLine(B_1, c)
g_1 = OrthogonalLine(C_1, c)
D_1 = Intersect(f_1, j)
E_1 = Intersect(g_1, j)
F_1 = Midpoint(B_1, D_1)
G_1 = Midpoint(C_1, E_1)
H_1 = Midpoint(A, I)
h_1 = OrthogonalLine(H_1, d')
I_1 = Point(h_1)
p = 1 (slider from 0 to 1, step 0.01)