cas 1 d_2 et +R

cas 2 d_2 et -R

cas 3 d_1et +R

cas 4 d_1 et -R

d: y = 0
C' = Point(yAxis)
c'y = OrthogonalLine(C', d)
C = Point(c'y)
R' = Point(c'y)
u_{R'} = Vector(C', R')
R_{max} = Dilate(Translate[C, u_{R'}], 0.999, C)
CR = Segment(C, R_{max})
R = Point(CR)
u_R = Vector(C, R)
d_1 = Translate(d, u_R)
A_3 = Point(d_1)
d_2 = Translate(d, Vector[(-u_R)])
cx = Line(C, d_2)
E = Translate(R', u_R)
ab_3 = Line(A_3, E)
B_3 = Intersect(cx, ab_3)
D = Mirror(E, C')
DB_3 = Segment(D, B_3)
ap_3 = Line(A_3, DB_3)
P_3 = Intersect(c'y, ap_3)
M_3 = Midpoint(C, P_3)
A_1 = Point(d_2)
ab_1 = Line(A_1, D)
B_{1} = Intersect(ab_1, cx)
EB_1 = Segment(E, B_{1})
ap_1 = Line(A_1, EB_1)
P_1 = Intersect(ap_1, c'y)
M_1 = Midpoint(C, P_1)
E' = Translate(R', Vector[(-u_R)])
D' = Mirror(E', C')
ab_2 = Line(A_1, E')
B_2 = Intersect(cx, ab_2)
DB_2 = Segment(D', B_2)
ap_2 = Line(A_1, DB_2)
P_2 = Intersect(c'y, ap_2)
M_2 = Midpoint(C, P_2)
c' = Circle(C', R')
cy = OrthogonalLine(C, d)
c = Circle(C, R)
c'_1 = Circle(C', E')
c'_2 = Circle(C', E)
F_1 = Intersect(c'y, d_1)
F_2 = Intersect(c'y, d_2)
f1 = false
f2 = false
f3 = false
f4 = false
hcP_1 = Circle(M_1, C)
hcM_1 = Semicircle(F_2, M_1)
T_1 = Intersect(hcP_1, hcM_1, 1)
cT_1 = Circle(F_2, T_1)
K'_1, K_1 = Intersect(cT_1, d_2)
Mx_1 = OrthogonalLine(M_1, c'y)
Ky_1 = OrthogonalLine(K_1, d_2)
O_1 = Intersect(Mx_1, Ky_1)
H_1 = Intersect(d, Ky_1)
Γ_1 = Circle(O_1, H_1)
O'_1 = Mirror(O_1, M_1)
H'_1 = Mirror(H_1, c'y)
Γ'_1 = Circle(O'_1, H'_1)
Mx_2 = Line(M_2, d_2)
hcP_2 = Circle(M_2, C)
hcM_2 = Semicircle(F_2, M_2)
T_2 = Intersect(hcP_2, hcM_2, 1)
cT_2 = Circle(F_2, T_2)
K'_2, K_2 = Intersect(cT_2, d_2)
Ky_2 = OrthogonalLine(K_2, d_2)
O_2 = Intersect(Mx_2, Ky_2)
H_2 = Intersect(Ky_2, d)
Γ_2 = Circle(O_2, H_2)
O'_2 = Mirror(O_2, c'y)
H'_2 = Mirror(H_2, c'y)
Γ'_2 = Circle(O'_2, H'_2)
Mx_3 = Line(M_3, d_1)
hcP_3 = Circle(M_3, C)
hcM_3 = Semicircle(F_1, M_3)
T_3 = Intersect(hcP_3, hcM_3, 1)
cT_3 = Circle(F_1, T_3)
K'_3, K_3 = Intersect(cT_3, d_1)
Ky_3 = OrthogonalLine(K_3, d_1)
H_3 = Intersect(Ky_3, d)
O_3 = Intersect(Mx_3, Ky_3)
Γ_3 = Circle(O_3, H_3)
O'_3 = Mirror(O_3, c'y)
H'_3 = Mirror(H_3, c'y)
Γ'_3 = Circle(O'_3, H'_3)
ab_4 = Line(A_3, D')
B_4 = Intersect(cx, ab_4)
BE_4 = Segment(E', B_4)
ap_4 = Line(A_3, BE_4)
P_4 = Intersect(ap_4, c'y)
M_4 = Midpoint(C, P_4)
hcP_4 = Circle(M_4, P_4)
hcM_4 = Semicircle(F_1, M_4)
T_4 = Intersect(hcM_4, hcP_4)
cT_4 = Circle(F_1, T_4)
K'_4, K_4 = Intersect(cT_4, d_1)
Ky_4 = OrthogonalLine(K_4, d_1)
Mx_4 = Line(M_4, d_1)
O_4 = Intersect(Ky_4, Mx_4)
H_4 = Intersect(Ky_4, d)
Γ_4 = Circle(O_4, H_4)
O'_4 = Mirror(O_4, c'y)
H'_4 = Mirror(H_4, c'y)
Γ'_4 = Circle(O'_4, H'_4)