•◦

▭

A = (-6, 6)
B = Point(Circle[A, 2])
C: A + Vector[A, B] + (2 * OrthogonalVector[Segment[A, B]])
D: A + (2 * Vector[A, B]) + (2 * OrthogonalVector[Segment[A, B]])
E: A + (2 * Vector[A, B]) + (3 * OrthogonalVector[Segment[A, B]])
F: A + (0 * Vector[A, B]) + (3 * OrthogonalVector[Segment[A, B]])
G: A + (0 * Vector[A, B]) + (2 * OrthogonalVector[Segment[A, B]])
H: A + (-Vector[A, B]) + (2 * OrthogonalVector[Segment[A, B]])
I: A + (-Vector[A, B]) + OrthogonalVector[Segment[A, B]]
J: A + (0 * Vector[A, B]) + OrthogonalVector[Segment[A, B]]
polyF_1, a, b, c, d, e, f, g, h, i, j = Polygon(A, B, C, D, E, F, G, H, I, J)
K = (0, 12)
L = Point(Circle[K, 2])
M: K + Vector[K, L] + (-3 * OrthogonalVector[Segment[K, L]])
N: K + (2 * Vector[K, L]) + (-3 * OrthogonalVector[Segment[K, L]])
O: K + (2 * Vector[K, L]) + (-4 * OrthogonalVector[Segment[K, L]])
P: K + (0 * Vector[K, L]) + (-4 * OrthogonalVector[Segment[K, L]])
polyL, k, l, m, n, o, p = Polygon(K, L, M, N, O, P)
Q = (6, 12)
R = Point(Circle[Q, 2])
S: Q + Vector[Q, R] + (-5 * OrthogonalVector[Segment[Q, R]])
T: Q + (0 * Vector[Q, R]) + (-5 * OrthogonalVector[Segment[Q, R]])
polyI, q, r, s, t = Polygon(Q, R, S, T)
U = (10, 6)
V = Point(Circle[U, 2])
W: U + Vector[U, V] + OrthogonalVector[Segment[U, V]]
Z: U + (2 * Vector[U, V]) + OrthogonalVector[Segment[U, V]]
A_1: U + (2 * Vector[U, V]) + (3 * OrthogonalVector[Segment[U, V]])
B_1: U + (0 * Vector[U, V]) + (3 * OrthogonalVector[Segment[U, V]])
polyP, u, v, w, z_1, a_1, b_1 = Polygon(U, V, W, Z, A_1, B_1)
C_1 = (18, 12)
D_1 = Point(Circle[C_1, 2])
E_1: C_1 + Vector[C_1, D_1] + (-2 * OrthogonalVector[Segment[C_1, D_1]])
F_1: C_1 + (0 * Vector[C_1, D_1]) + (-2 * OrthogonalVector[Segment[C_1, D_1]])
G_1: C_1 + (0 * Vector[C_1, D_1]) + (-4 * OrthogonalVector[Segment[C_1, D_1]])
H_1: C_1 + (-Vector[C_1, D_1]) + (-4 * OrthogonalVector[Segment[C_1, D_1]])
I_1: C_1 + (-Vector[C_1, D_1]) + (-OrthogonalVector[Segment[C_1, D_1]])
J_1: C_1 + (0 * Vector[C_1, D_1]) + (-OrthogonalVector[Segment[C_1, D_1]])
polyN, c_1, d_1, e_1, f_1, g_1, h_1, i_1, j_1 = Polygon(C_1, D_1, E_1, F_1, G_1, H_1, I_1, J_1)
K_1 = (24, 6)
L_1 = Point(Circle[K_1, 2])
M_1: K_1 + Vector[K_1, L_1] + (2 * OrthogonalVector[Segment[K_1, L_1]])
N_1: K_1 + (2 * Vector[K_1, L_1]) + (2 * OrthogonalVector[Segment[K_1, L_1]])
O_1: K_1 + (2 * Vector[K_1, L_1]) + (3 * OrthogonalVector[Segment[K_1, L_1]])
P_1: K_1 + (-Vector[K_1, L_1]) + (3 * OrthogonalVector[Segment[K_1, L_1]])
Q_1: K_1 + (-Vector[K_1, L_1]) + (2 * OrthogonalVector[Segment[K_1, L_1]])
R_1: K_1 + (0 * Vector[K_1, L_1]) + (2 * OrthogonalVector[Segment[K_1, L_1]])
polyT, k_1, l_1, m_1, n_1, o_1, p_1, q_1, r_1 = Polygon(K_1, L_1, M_1, N_1, O_1, P_1, Q_1, R_1)
S_1 = (-12, 4)
T_1 = Point(Circle[S_1, 2])
U_1: S_1 + Vector[S_1, T_1] + (-OrthogonalVector[Segment[S_1, T_1]])
V_1: S_1 + (2 * Vector[S_1, T_1]) + (-OrthogonalVector[Segment[S_1, T_1]])
W_1: S_1 + (2 * Vector[S_1, T_1]) + (0 * OrthogonalVector[Segment[S_1, T_1]])
Z_1: S_1 + (3 * Vector[S_1, T_1]) + (0 * OrthogonalVector[Segment[S_1, T_1]])
A_2: S_1 + (3 * Vector[S_1, T_1]) + (-2 * OrthogonalVector[Segment[S_1, T_1]])
B_2: S_1 + (0 * Vector[S_1, T_1]) + (-2 * OrthogonalVector[Segment[S_1, T_1]])
polyU, s_1, t_1, u_1, v_1, w_1, z_2, a_2, b_2 = Polygon(S_1, T_1, U_1, V_1, W_1, Z_1, A_2, B_2)
C_2 = (-4, 2)
D_2 = Point(Circle[C_2, 2])
E_2: C_2 + Vector[C_2, D_2] + (-3 * OrthogonalVector[Segment[C_2, D_2]])
F_2: C_2 + (-2 * Vector[C_2, D_2]) + (-3 * OrthogonalVector[Segment[C_2, D_2]])
G_2: C_2 + (-2 * Vector[C_2, D_2]) + (-2 * OrthogonalVector[Segment[C_2, D_2]])
H_2: C_2 + (0 * Vector[C_2, D_2]) + (-2 * OrthogonalVector[Segment[C_2, D_2]])
polyV, c_2, d_2, e_2, f_2, g_2, h_2 = Polygon(C_2, D_2, E_2, F_2, G_2, H_2)
I_2 = (4, 0)
J_2 = Point(Circle[I_2, 2])
K_2: I_2 + Vector[I_2, J_2] + (-2 * OrthogonalVector[Segment[I_2, J_2]])
L_2: I_2 + (0 * Vector[I_2, J_2]) + (-2 * OrthogonalVector[Segment[I_2, J_2]])
M_2: I_2 + (0 * Vector[I_2, J_2]) + (-3 * OrthogonalVector[Segment[I_2, J_2]])
N_2: I_2 + (-2 * Vector[I_2, J_2]) + (-3 * OrthogonalVector[Segment[I_2, J_2]])
O_2: I_2 + (-2 * Vector[I_2, J_2]) + (-2 * OrthogonalVector[Segment[I_2, J_2]])
P_2: I_2 + (-Vector[I_2, J_2]) + (-2 * OrthogonalVector[Segment[I_2, J_2]])
Q_2: I_2 + (-Vector[I_2, J_2]) + (-OrthogonalVector[Segment[I_2, J_2]])
R_2: I_2 + (0 * Vector[I_2, J_2]) + (-OrthogonalVector[Segment[I_2, J_2]])
polyW, i_2, j_2, k_2, l_2, m_2, n_2, o_2, p_2, q_2, r_2 = Polygon(I_2, J_2, K_2, L_2, M_2, N_2, O_2, P_2, Q_2, R_2)
S_2 = (10, 2)
T_2 = Point(Circle[S_2, 2])
U_2: S_2 + Vector[S_2, T_2] + (-OrthogonalVector[Segment[S_2, T_2]])
V_2: S_2 + (2 * Vector[S_2, T_2]) + (-OrthogonalVector[Segment[S_2, T_2]])
W_2: S_2 + (2 * Vector[S_2, T_2]) + (-2 * OrthogonalVector[Segment[S_2, T_2]])
Z_2: S_2 + Vector[S_2, T_2] + (-2 * OrthogonalVector[Segment[S_2, T_2]])
A_3: S_2 + Vector[S_2, T_2] + (-3 * OrthogonalVector[Segment[S_2, T_2]])
B_3: S_2 + (0 * Vector[S_2, T_2]) + (-3 * OrthogonalVector[Segment[S_2, T_2]])
C_3: S_2 + (0 * Vector[S_2, T_2]) + (-2 * OrthogonalVector[Segment[S_2, T_2]])
D_3: S_2 + (-Vector[S_2, T_2]) + (-2 * OrthogonalVector[Segment[S_2, T_2]])
E_3: S_2 + (-Vector[S_2, T_2]) + (-OrthogonalVector[Segment[S_2, T_2]])
F_3: S_2 + (0 * Vector[S_2, T_2]) + (-OrthogonalVector[Segment[S_2, T_2]])
polyX, s_2, t_2, u_2, v_2, w_2, z_3, a_3, b_3, c_3, d_3, e_3, f_3 = Polygon(S_2, T_2, U_2, V_2, W_2, Z_2, A_3, B_3, C_3, D_3, E_3, F_3)
G_3 = (18, 2.0000000000000004)
H_3 = Point(Circle[G_3, 2])
I_3: G_3 + Vector[G_3, H_3] + (-OrthogonalVector[Segment[G_3, H_3]])
J_3: G_3 + (2 * Vector[G_3, H_3]) + (-OrthogonalVector[Segment[G_3, H_3]])
K_3: G_3 + (2 * Vector[G_3, H_3]) + (-2 * OrthogonalVector[Segment[G_3, H_3]])
L_3: G_3 + Vector[G_3, H_3] + (-2 * OrthogonalVector[Segment[G_3, H_3]])
M_3: G_3 + Vector[G_3, H_3] + (-4 * OrthogonalVector[Segment[G_3, H_3]])
N_3: G_3 + (0 * Vector[G_3, H_3]) + (-4 * OrthogonalVector[Segment[G_3, H_3]])
polyY, g_3, h_3, i_3, j_3, k_3, l_3, m_3, n_3 = Polygon(G_3, H_3, I_3, J_3, K_3, L_3, M_3, N_3)
O_3 = (22, 2)
P_3 = Point(Circle[O_3, 2])
Q_3: O_3 + Vector[O_3, P_3] + (2 * OrthogonalVector[Segment[O_3, P_3]])
R_3: O_3 + (-Vector[O_3, P_3]) + (2 * OrthogonalVector[Segment[O_3, P_3]])
S_3: O_3 + (-Vector[O_3, P_3]) + (3 * OrthogonalVector[Segment[O_3, P_3]])
T_3: O_3 + (-2 * Vector[O_3, P_3]) + (3 * OrthogonalVector[Segment[O_3, P_3]])
U_3: O_3 + (-2 * Vector[O_3, P_3]) + OrthogonalVector[Segment[O_3, P_3]]
V_3: O_3 + (0 * Vector[O_3, P_3]) + OrthogonalVector[Segment[O_3, P_3]]
polyZ, o_3, p_3, q_3, r_3, s_3, t_3, u_3, v_3 = Polygon(O_3, P_3, Q_3, R_3, S_3, T_3, U_3, V_3)
lineL = LineBisector(k)
lineP = LineBisector(u)
lineN = LineBisector(c_1)
lineY = LineBisector(g_3)
lineZ = LineBisector(o_3)
lineF = LineBisector(B, A)
A' = Mirror(A, lineF)
B' = Mirror(B, lineF)
C' = Mirror(C, lineF)
D' = Mirror(D, lineF)
E' = Mirror(E, lineF)
F' = Mirror(F, lineF)
G' = Mirror(G, lineF)
H' = Mirror(H, lineF)
I' = Mirror(I, lineF)
J' = Mirror(J, lineF)
polyF', a', b', c', d', e', f', g', h', i', j' = Polygon(A', B', C', D', E', F', G', H', I', J')
flipF = false
W_3 = (-6, 4)
Z_3 = Point(Circle[W_3, Segment[A', B']])
A_4 = Rotate(Z_3 + (Segment[B', C'], 0), Angle[C' - B'] + Angle[Z_3 - W_3] - Angle[B' - A'], Z_3)
B_4 = Rotate(A_4 + (Segment[C', D'], 0), Angle[D' - C'] + Angle[A_4 - Z_3] - Angle[C' - B'], A_4)
C_4 = Rotate(B_4 + (Segment[D', E'], 0), Angle[E' - D'] + Angle[B_4 - A_4] - Angle[D' - C'], B_4)
D_4 = Rotate(C_4 + (Segment[E', F'], 0), Angle[F' - E'] + Angle[C_4 - B_4] - Angle[E' - D'], C_4)
E_4 = Rotate(D_4 + (Segment[F', G'], 0), Angle[G' - F'] + Angle[D_4 - C_4] - Angle[F' - E'], D_4)
F_4 = Rotate(E_4 + (Segment[G', H'], 0), Angle[H' - G'] + Angle[E_4 - D_4] - Angle[G' - F'], E_4)
G_4 = Rotate(F_4 + (Segment[H', I'], 0), Angle[I' - H'] + Angle[F_4 - E_4] - Angle[H' - G'], F_4)
H_4 = Rotate(G_4 + (Segment[I', J'], 0), Angle[J' - I'] + Angle[G_4 - F_4] - Angle[I' - H'], G_4)
polyF_f, w_3, z_4, a_4, b_4, c_4, d_4, e_4, f_4, g_4, h_4 = Polygon(W_3, Z_3, A_4, B_4, C_4, D_4, E_4, F_4, G_4, H_4)
flipL = false
K' = Mirror(K, lineL)
L' = Mirror(L, lineL)
M' = Mirror(M, lineL)
N' = Mirror(N, lineL)
O' = Mirror(O, lineL)
P' = Mirror(P, lineL)
polyL', k', l', m', n', o', p' = Polygon(K', L', M', N', O', P')
I_4 = (-4.5833799258154784E-5, 10.01354005525451)
J_4 = Point(Circle[I_4, Segment[K', L']])
K_4 = Rotate(J_4 + (Segment[L', M'], 0), Angle[M' - L'] + Angle[J_4 - I_4] - Angle[L' - K'], J_4)
L_4 = Rotate(K_4 + (Segment[M', N'], 0), Angle[N' - M'] + Angle[K_4 - J_4] - Angle[M' - L'], K_4)
M_4 = Rotate(L_4 + (Segment[N', O'], 0), Angle[O' - N'] + Angle[L_4 - K_4] - Angle[N' - M'], L_4)
N_4 = Rotate(M_4 + (Segment[O', P'], 0), Angle[P' - O'] + Angle[M_4 - L_4] - Angle[O' - N'], M_4)
polyL_1, i_4, j_4, k_4, l_4, m_4, n_4 = Polygon(I_4, J_4, K_4, L_4, M_4, N_4)
showPoints = true
U' = Mirror(U, lineP)
V' = Mirror(V, lineP)
W' = Mirror(W, lineP)
Z' = Mirror(Z, lineP)
O_4 = Mirror(A_1, lineP)
P_4 = Mirror(B_1, lineP)
polyP', u', v', w', z', o_4, p_4 = Polygon(U', V', W', Z', O_4, P_4)
Q_4 = (9.999960214912507, 4.01261502148693)
R_4 = Point(Circle[Q_4, Segment[U', V']])
S_4 = Rotate(R_4 + (Segment[V', W'], 0), Angle[W' - V'] + Angle[R_4 - Q_4] - Angle[V' - U'], R_4)
T_4 = Rotate(S_4 + (Segment[W', Z'], 0), Angle[Z' - W'] + Angle[S_4 - R_4] - Angle[W' - V'], S_4)
U_4 = Rotate(T_4 + (Segment[Z', O_4], 0), Angle[O_4 - Z'] + Angle[T_4 - S_4] - Angle[Z' - W'], T_4)
V_4 = Rotate(U_4 + (Segment[O_4, P_4], 0), Angle[P_4 - O_4] + Angle[U_4 - T_4] - Angle[O_4 - Z'], U_4)
polyP_1, q_4, r_4, s_4, t_4, u_4, v_4 = Polygon(Q_4, R_4, S_4, T_4, U_4, V_4)
flipP = false
flipN = false
W_4 = Mirror(C_1, lineN)
Z_4 = Mirror(D_1, lineN)
A_5 = Mirror(E_1, lineN)
B_5 = Mirror(F_1, lineN)
C_5 = Mirror(G_1, lineN)
D_5 = Mirror(H_1, lineN)
E_5 = Mirror(I_1, lineN)
F_5 = Mirror(J_1, lineN)
polyN', w_4, z_5, a_5, b_5, c_5, d_5, e_5, f_5 = Polygon(W_4, Z_4, A_5, B_5, C_5, D_5, E_5, F_5)
G_5 = (18, 10)
H_5 = Point(Circle[G_5, Segment[W_4, Z_4]])
I_5 = Rotate(H_5 + (Segment[Z_4, A_5], 0), Angle[A_5 - Z_4] + Angle[H_5 - G_5] - Angle[Z_4 - W_4], H_5)
J_5 = Rotate(I_5 + (Segment[A_5, B_5], 0), Angle[B_5 - A_5] + Angle[I_5 - H_5] - Angle[A_5 - Z_4], I_5)
K_5 = Rotate(J_5 + (Segment[B_5, C_5], 0), Angle[C_5 - B_5] + Angle[J_5 - I_5] - Angle[B_5 - A_5], J_5)
L_5 = Rotate(K_5 + (Segment[C_5, D_5], 0), Angle[D_5 - C_5] + Angle[K_5 - J_5] - Angle[C_5 - B_5], K_5)
M_5 = Rotate(L_5 + (Segment[D_5, E_5], 0), Angle[E_5 - D_5] + Angle[L_5 - K_5] - Angle[D_5 - C_5], L_5)
N_5 = Rotate(M_5 + (Segment[E_5, F_5], 0), Angle[F_5 - E_5] + Angle[M_5 - L_5] - Angle[E_5 - D_5], M_5)
polyN_1, g_5, h_5, i_5, j_5, k_5, l_5, m_5, n_5 = Polygon(G_5, H_5, I_5, J_5, K_5, L_5, M_5, N_5)
flipY = false
O_5 = Mirror(G_3, lineY)
P_5 = Mirror(H_3, lineY)
Q_5 = Mirror(I_3, lineY)
R_5 = Mirror(J_3, lineY)
S_5 = Mirror(K_3, lineY)
T_5 = Mirror(L_3, lineY)
U_5 = Mirror(M_3, lineY)
V_5 = Mirror(N_3, lineY)
polyY', o_5, p_5, q_5, r_5, s_5, t_5, u_5, v_5 = Polygon(O_5, P_5, Q_5, R_5, S_5, T_5, U_5, V_5)
W_5 = (20, 2)
Z_5 = Point(Circle[W_5, Segment[O_5, P_5]])
A_6 = Rotate(Z_5 + (Segment[P_5, Q_5], 0), Angle[Q_5 - P_5] + Angle[Z_5 - W_5] - Angle[P_5 - O_5], Z_5)
B_6 = Rotate(A_6 + (Segment[Q_5, R_5], 0), Angle[R_5 - Q_5] + Angle[A_6 - Z_5] - Angle[Q_5 - P_5], A_6)
C_6 = Rotate(B_6 + (Segment[R_5, S_5], 0), Angle[S_5 - R_5] + Angle[B_6 - A_6] - Angle[R_5 - Q_5], B_6)
D_6 = Rotate(C_6 + (Segment[S_5, T_5], 0), Angle[T_5 - S_5] + Angle[C_6 - B_6] - Angle[S_5 - R_5], C_6)
E_6 = Rotate(D_6 + (Segment[T_5, U_5], 0), Angle[U_5 - T_5] + Angle[D_6 - C_6] - Angle[T_5 - S_5], D_6)
F_6 = Rotate(E_6 + (Segment[U_5, V_5], 0), Angle[V_5 - U_5] + Angle[E_6 - D_6] - Angle[U_5 - T_5], E_6)
polyY_1, w_5, z_6, a_6, b_6, c_6, d_6, e_6, f_6 = Polygon(W_5, Z_5, A_6, B_6, C_6, D_6, E_6, F_6)
flipZ = false
G_6 = Mirror(O_3, lineZ)
H_6 = Mirror(P_3, lineZ)
I_6 = Mirror(Q_3, lineZ)
J_6 = Mirror(R_3, lineZ)
K_6 = Mirror(S_3, lineZ)
L_6 = Mirror(T_3, lineZ)
M_6 = Mirror(U_3, lineZ)
N_6 = Mirror(V_3, lineZ)
polyZ', g_6, h_6, i_6, j_6, k_6, l_6, m_6, n_6 = Polygon(G_6, H_6, I_6, J_6, K_6, L_6, M_6, N_6)
O_6 = (22, 2)
P_6 = Point(Circle[O_6, Segment[G_6, H_6]])
Q_6 = Rotate(P_6 + (Segment[H_6, I_6], 0), Angle[I_6 - H_6] + Angle[P_6 - O_6] - Angle[H_6 - G_6], P_6)
R_6 = Rotate(Q_6 + (Segment[I_6, J_6], 0), Angle[J_6 - I_6] + Angle[Q_6 - P_6] - Angle[I_6 - H_6], Q_6)
S_6 = Rotate(R_6 + (Segment[J_6, K_6], 0), Angle[K_6 - J_6] + Angle[R_6 - Q_6] - Angle[J_6 - I_6], R_6)
T_6 = Rotate(S_6 + (Segment[K_6, L_6], 0), Angle[L_6 - K_6] + Angle[S_6 - R_6] - Angle[K_6 - J_6], S_6)
U_6 = Rotate(T_6 + (Segment[L_6, M_6], 0), Angle[M_6 - L_6] + Angle[T_6 - S_6] - Angle[L_6 - K_6], T_6)
V_6 = Rotate(U_6 + (Segment[M_6, N_6], 0), Angle[N_6 - M_6] + Angle[U_6 - T_6] - Angle[M_6 - L_6], U_6)
polyZ_1, o_6, p_6, q_6, r_6, s_6, t_6, u_6, v_6 = Polygon(O_6, P_6, Q_6, R_6, S_6, T_6, U_6, V_6)
W_6 = (-12, -10)
horizontal = OrthogonalLine(W_6, yAxis)
Z_6 = Point(horizontal)
A_7 = (-12, -30)
B_7 = (28, -30)
q1, w_6, z_7, b_7, a_7 = Polygon(W_6, Z_6, B_7, A_7)
rectangleControl = PointIn(q1)
f_7 = OrthogonalLine(rectangleControl, horizontal)
g_7 = OrthogonalLine(rectangleControl, f_7)
h_7 = OrthogonalLine(W_6, g_7)
D_7 = Intersect(horizontal, f_7)
E_7 = Intersect(g_7, h_7)
q2, w_7, d_7, c_7, e_7 = Polygon(W_6, D_7, rectangleControl, E_7)
rectangleW: Length[w_7] / 2
rectangleH: Length[d_7] / 2
text1: "" + rectangleW + " by " + rectangleH + ""
showRectangle = true