Pythagoras
Author: Markus Hohenwarter

c

b

a

c

b

a

A = (-10, 0)
B = (-2, 0)
v = Vector(A, B)
C: A + OrthogonalVector[v]
k4 = Circle(A, C)
b2 = Arc(k4, C, B)
F = Point(b2)
phi = Angle(C, A, F)
D: C + B - A
cstart = Segment(A, B)
arc = Semicircle(A, B)
E = Point(arc)
P, a, b1, c = Polygon(B, E, A)
beta = Angle(E, B, A)
Q = Rotate(F, -beta, A)
G: A + a UnitVector[Vector[A, Q]]
R, f, a_1, g = Polygon(A, G, F)
d = Line(D, b1)
e = OrthogonalLine(B, d)
H = Intersect(d, e)
S, h, b_1, d_1 = Polygon(B, D, H)
k5 = Circle(D, B)
arc2 = Arc(k5, B, C)
I = Rotate(C, -phi, D)
T = Rotate(D, -beta, I)
J: I + a UnitVector[Vector[I, T]]
U, j, i, d_2 = Polygon(I, D, J)
k = OrthogonalLine(C, b1)
l = OrthogonalLine(B, k)
m = OrthogonalLine(D, k)
n = OrthogonalLine(D, l)
K = Intersect(m, k)
L = Intersect(l, k)
M = Intersect(n, l)
N = Intersect(k, b1)
p = OrthogonalLine(A, l)
O = Intersect(p, l)
V, a_2, o, l_1, n_1 = Polygon(A, O, L, N)
W, k_1, l_2, m_1, b = Polygon(K, L, M, D)
Y = Point(j)
Z = Point(i)
A_1 = Point(d_2)
B_1 = Point(a_1)
C_1 = Point(g)
D_1 = Point(f)