constr

E = Point(xAxis)
D = (-3.0208101701940433, 3.8672145741597515)
Ea = Ray(E, E + (1, 0))
g = AngularBisector(E + (1, 0), E, D)
C = Rotate(E, 180° - Angle[E + (1, 0), E, D] / 2, D)
bc = Mirror(Line[C, D], Line[C, Ea])
ED = Segment(E, D)
DC = Segment(D, C)
J = Intersect(bc, OrthogonalLine[E, Ea])
Ei = Ray(E, Rotate[E + (1, 0), 60°, E])
I = Intersect(bc, Ei)
α = Angle(E + (1, 0), E, D)
β = Angle(C, I, E)
E' = Rotate(E, 180° - β, I)
M: J + Vector[E', I]
D' = Mirror(D, OrthogonalLine[C, Ea])
N: I + Vector[E', D']
EM = Segment(M, E)
h = Line(N, EM)
P = Intersect(h, Ei)
k = OrthogonalLine(P, Ea)
A = Intersect(k, Ea)
B = Intersect(k, Ray[C, E'])
poly1, AB, BC, CD, DE, AE = Polygon(A, B, C, D, E)
a = false
A' = Mirror(A, AB)
B' = Mirror(B, AB)
C' = Mirror(C, AB)
D'_{1} = Mirror(D, AB)
E'_{1} = Mirror(E, AB)
poly1', a', b', c', d'_{1}, e'_{1} = Polygon(A', B', C', D'_{1}, E'_{1})
F = Midpoint(D'_{1}, E'_{1})
A'' = Mirror(A', F)
B'' = Mirror(B', F)
C'' = Mirror(C', F)
G = Mirror(D'_{1}, F)
H = Mirror(E'_{1}, F)
poly1'', a'', b'', c'', g_1, h_1 = Polygon(A'', B'', C'', G, H)
A'_{1} = Mirror(A, F)
B'_{1} = Mirror(B, F)
C'_{1} = Mirror(C, F)
D'_{2} = Mirror(D, F)
E'_{2} = Mirror(E, F)
poly1'_{1}, a'_{1}, b'_{1}, c'_{1}, d'_{2}, e'_{2} = Polygon(A'_{1}, B'_{1}, C'_{1}, D'_{2}, E'_{2})
u = Vector(B'', C)
A''' = Translate(A'', u)
B''' = Translate(B'', u)
C''' = Translate(C'', u)
G' = Translate(G, u)
H' = Translate(H, u)
poly1''', a''', b''', c''', g', h' = Polygon(A''', B''', C''', G', H')
K = Translate(A'_{1}, u)
L = Translate(B'_{1}, u)
O = Translate(C'_{1}, u)
Q = Translate(D'_{2}, u)
R = Translate(E'_{2}, u)
poly2, k_1, l, o, q, r = Polygon(K, L, O, Q, R)
γ = Angle(E, D, C)
A'_{2} = Rotate(A, (-γ), D)
B'_{2} = Rotate(B, (-γ), D)
C'_{2} = Rotate(C, (-γ), D)
D'_{3} = Rotate(D, (-γ), D)
E'_{3} = Rotate(E, (-γ), D)
poly1'_{2}, a'_{2}, b'_{2}, c'_{2}, d'_{3}, e'_{3} = Polygon(A'_{2}, B'_{2}, C'_{2}, D'_{3}, E'_{3})
S = Mirror(A'_{2}, a'_{2})
T = Mirror(B'_{2}, a'_{2})
U = Mirror(C'_{2}, a'_{2})
V = Mirror(D'_{3}, a'_{2})
W = Mirror(E'_{3}, a'_{2})
poly3, s, t, u_1, v, w = Polygon(S, T, U, V, W)
Z = Midpoint(E'_{3}, D'_{3})
A_1 = Mirror(A'_{2}, Z)
B_1 = Mirror(B'_{2}, Z)
C_1 = Mirror(C'_{2}, Z)
D_1 = Mirror(D'_{3}, Z)
E_1 = Mirror(E'_{3}, Z)
poly4, a_1, b_1, c_1, d_1, e_1 = Polygon(A_1, B_1, C_1, D_1, E_1)
S' = Mirror(S, Z)
T' = Mirror(T, Z)
U' = Mirror(U, Z)
V' = Mirror(V, Z)
W' = Mirror(W, Z)
poly3', s', t', u', v', w' = Polygon(S', T', U', V', W')
uu: (-u)
S'' = Translate(S', uu)
T'' = Translate(T', uu)
U'' = Translate(U', uu)
V'' = Translate(V', uu)
W'' = Translate(W', uu)
poly3'', s'', t'', u'', v'', w'' = Polygon(S'', T'', U'', V'', W'')
F_1 = Translate(A_1, uu)
G_1 = Translate(B_1, uu)
H_1 = Translate(C_1, uu)
I_1 = Translate(D_1, uu)
J_1 = Translate(E_1, uu)
poly4', f_1, f, i, i_1, j_1 = Polygon(F_1, G_1, H_1, I_1, J_1)
b = Vector(W, C')
K_1 = Translate(A'_{2}, b)
L_1 = Translate(B'_{2}, b)
M_1 = Translate(C'_{2}, b)
N_1 = Translate(D'_{3}, b)
O_1 = Translate(E'_{3}, b)
poly5, j, l_1, m_1, n_1, o_1 = Polygon(K_1, L_1, M_1, N_1, O_1)
S'_{1} = Translate(S, b)
T'_{1} = Translate(T, b)
U'_{1} = Translate(U, b)
V'_{1} = Translate(V, b)
W'_{1} = Translate(W, b)
poly3'_{1}, s'_{1}, t'_{1}, u'_{1}, v'_{1}, w'_{1} = Polygon(S'_{1}, T'_{1}, U'_{1}, V'_{1}, W'_{1})