O = (0, 0)
a = Line(O, xAxis)
O' = Point(a)
c = Circle(O, O')
R = (4, 2)
d_1 = Circle(O', R)
D_0 = (-2.618696178325325, 3.7103542033087322)
D_1: D_0 + (1, 0)
b = Ray(D_0, D_1)
D' = Point(b)
d = Segment(D_0, D')
B = Mirror(O', O)
A = Intersect(d_1, a, 1)
e = OrthogonalLine(O', a)
F: O' - (0, d)
D: F + (d, 0)
f = Line(D, e)
g = Line(F, a)
C = Point(a)
E_1 = Point(g)
G = Point(g)
H = Point(a)
poly1, c_1, e_1, g_1, h = Polygon(C, E_1, G, H)
I = Point(e)
J = Point(f)
K = Point(f)
L = Point(e)
poly2, i, j, k, l = Polygon(I, J, K, L)
m = Line(A, D)
S = Intersect(e, m)
n = Line(B, S)
E = Intersect(n, g)
p = Circle(F, O')
M = Midpoint(F, E)
q = Circle(M, F)
N, P' = Intersect(p, q)
r = Line(P', E)
s = Line(F, r)
P_1 = Point(s)
Q = Point(r)
T = Point(r)
U = Point(s)
poly3, p_1, q_1, t, u = Polygon(P_1, Q, T, U)
a_1 = OrthogonalLine(O', r)
b_1 = Line(B, r)
P = Intersect(b_1, a_1)
f_1 = Line(F, P')