a)

b)

c)

A = (-2.7224083233839305, 3.2850162033088823)
B = (-2.8303735289101115, -2.0700579907896994)
a = Segment(A, B)
b = OrthogonalLine(B, a)
c = OrthogonalLine(A, a)
C = Point(b)
d = OrthogonalLine(C, b)
D = Intersect(c, d)
e = Segment(A, D)
f = Segment(D, C)
g = Segment(C, B)
E = Point(a)
F = Point(f)
h = Segment(E, F)
G = Point(h)
H = (3.721315026436979, -2.050264369776566)
u = Vector(B, H)
A'_1 = Translate(A, u)
D'_1 = Translate(D, u)
E'_1 = Translate(E, u)
G'_1 = Translate(G, u)
F'_1 = Translate(F, u)
C'_1 = Translate(C, u)
i = Segment(A'_1, D'_1)
j = Segment(A'_1, H)
k = Segment(H, C'_1)
l = Segment(D'_1, C'_1)
m = Segment(E'_1, G'_1)
n = OrthogonalLine(G'_1, m)
I = (9.65940133037694, -2.1096452328159656)
v = Vector(B, I)
A' = Translate(A, v)
D' = Translate(D, v)
C' = Translate(C, v)
E' = Translate(E, v)
F' = Translate(F, v)
G' = Translate(G, v)
p = Segment(A', I)
q = Segment(I, C')
r = Segment(C', D')
s = Segment(D', A')
t = Segment(E', F')
a_1 = OrthogonalLine(G', t)
J = Intersect(a_1, s)
K = Intersect(a_1, q)
L = Intersect(a_1, p)
M = Intersect(a_1, r)
b_1 = Segment(J, M)
c_1 = Segment(J, K)
d_1 = Segment(L, K)
e_1 = Segment(L, M)
f_1 = Segment(J, L)
g_1 = Segment(M, K)
N = Intersect(n, i)
O = Intersect(n, k)
P = Mirror(C'_1, n)
Q = Mirror(D'_1, n)
h_1 = Segment(N, Q)
i_1 = Segment(O, P)
j_1 = Segment(Q, P)
R = Intersect(n, j)
k_1 = Segment(N, O)
l_1 = Segment(A'_1, N)
m_1 = Segment(N, D'_1)
n_1 = Segment(D'_1, C'_1)
p_1 = Segment(H, O)
q_1 = Segment(O, C'_1)
đa giác1, a_2, b_2, c_2, d_2 = Polygon(A, B, C, D)
đa giác2, h_2, o, n_2, a'_1 = Polygon(H, O, N, A'_1)
đa giác3, q_2, p_2, o_1, n_3 = Polygon(Q, P, O, N)