Tangrams

flip parallelogram

•◦

A = (-4, 4)
B = (-4, 3)
C = (-3, 3)
D = (-4, 1)
E = (-3, 2)
F = (-2, 1)
G = (-1, 1)
H = (0, 2)
I = (1, 2)
J = (0, 1)
K = (-0.7714271040460275, 1.8978947909035673)
L = (0.22857289595397262, 1.8978947909035673)
M = (0.22857289595397262, 0.8978947909035673)
N = (-0.7714271040460275, 0.8978947909035673)
O = (-4, 0)
P = (-4, -2)
Q = (-2, -2)
R = (-3.662856262427617, 3.9854135415576524)
S = Point(Circle[R, Segment[A, B]])
T = Rotate(S + (Segment[B, C], 0), Angle[C - B] + Angle[S - R] - Angle[B - A], S)
U = (-1, 0)
V = Point(Circle[U, Segment[O, P]])
W = Rotate(V + (Segment[P, Q], 0), Angle[Q - P] + Angle[V - U] - Angle[P - O], V)
Z = (0, 2)
A_1 = Point(Circle[Z, Segment[A, B]])
B_1 = Rotate(A_1 + (Segment[B, C], 0), Angle[C - B] + Angle[A_1 - Z] - Angle[B - A], A_1)
t6, b_1, z_1, a_1 = Polygon(Z, A_1, B_1)
C_1 = (-1.25, 1)
D_1 = Point(Circle[C_1, Segment[Z, A_1]])
E_1 = Rotate(D_1 + (Segment[A_1, B_1], 0), Angle[B_1 - A_1] + Angle[D_1 - C_1] - Angle[A_1 - Z], D_1)
t1, e_1, c_1, d_1 = Polygon(C_1, D_1, E_1)
F_1 = (-0.75, 2)
G_1 = Point(Circle[F_1, Segment[D, E]])
H_1 = Rotate(G_1 + (Segment[E, F], 0), Angle[F - E] + Angle[G_1 - F_1] - Angle[E - D], G_1)
t4, h_1, f_1, g_1 = Polygon(F_1, G_1, H_1)
I_1 = (1.25, -1.2499999999999998)
J_1 = Point(Circle[I_1, Segment[G, H]])
K_1 = Rotate(J_1 + (Segment[H, I], 0), Angle[I - H] + Angle[J_1 - I_1] - Angle[H - G], J_1)
L_1 = Rotate(K_1 + (Segment[I, J], 0), Angle[J - I] + Angle[K_1 - J_1] - Angle[I - H], K_1)
q3, i_1, j_1, k_1, l_1 = Polygon(I_1, J_1, K_1, L_1)
M_1 = (2, 0.75)
N_1 = Point(Circle[M_1, Segment[K, L]])
O_1 = Rotate(N_1 + (Segment[L, M], 0), Angle[M - L] + Angle[N_1 - M_1] - Angle[L - K], N_1)
P_1 = Rotate(O_1 + (Segment[M, N], 0), Angle[N - M] + Angle[O_1 - N_1] - Angle[M - L], O_1)
q1, m_1, n_1, o_1, p_1 = Polygon(M_1, N_1, O_1, P_1)
Q_1 = (4, 0)
R_1 = Point(Circle[Q_1, Segment[O, P]])
S_1 = Rotate(R_1 + (Segment[P, Q], 0), Angle[Q - P] + Angle[R_1 - Q_1] - Angle[P - O], R_1)
t2, s_1, q_1, r_1 = Polygon(Q_1, R_1, S_1)
T_1 = (-3, 1.75)
U_1 = Point(Circle[T_1, Segment[U, V]])
V_1 = Rotate(U_1 + (Segment[V, W], 0), Angle[W - V] + Angle[U_1 - T_1] - Angle[V - U], U_1)
t7, v_1, t_1, u_1 = Polygon(T_1, U_1, V_1)
W_1 = Mirror(I_1, i_1)
Z_1 = Mirror(J_1, i_1)
A_2 = Mirror(K_1, i_1)
B_2 = Mirror(L_1, i_1)
flip = false
C_2 = Mirror(I_1, l_1)
D_2 = Mirror(J_1, l_1)
E_2 = Mirror(K_1, l_1)
F_2 = Mirror(L_1, l_1)
f = LineBisector(i_1)
G_2 = Mirror(I_1, f)
H_2 = Mirror(J_1, f)
I_2 = Mirror(K_1, f)
J_2 = Mirror(L_1, f)
q3', g_2, h_2, i_2, j_2 = Polygon(G_2, H_2, I_2, J_2)
K_2 = (2.5, 1)
L_2 = Point(Circle[K_2, Segment[G_2, H_2]])
M_2 = Rotate(L_2 + (Segment[H_2, I_2], 0), Angle[I_2 - H_2] + Angle[L_2 - K_2] - Angle[H_2 - G_2], L_2)
N_2 = Rotate(M_2 + (Segment[I_2, J_2], 0), Angle[J_2 - I_2] + Angle[M_2 - L_2] - Angle[I_2 - H_2], M_2)
q2, k_2, l_2, m_2, n_2 = Polygon(K_2, L_2, M_2, N_2)
a = true