S_1

S_2

Ga et L

A = (-3.778533127564027, 5.233599991040865)
B = (-4, 1)
C = (1, 1)
ab = Line(A, B)
ac = Line(A, C)
BC = Segment(B, C)
AB = Segment(A, B)
AC = Segment(A, C)
J_a = Intersect(AngularBisector[B, A, C], OrthogonalLine[B, AngularBisector[A, B, C]])
D = Intersect(BC, OrthogonalLine[J_a, BC])
c_j = Circle(J_a, D)
E = Intersect(ac, OrthogonalLine[J_a, ac])
F = Intersect(ab, OrthogonalLine[J_a, ab])
c_b = Circle(B, D)
c_c = Circle(C, D)
c_a = Circle(A, F)
a = false
b = false
c = false
ad = Line(A, D)
cf = Line(C, F)
be = Line(B, E)
G_a = Intersect(ad, be)
abc = Circle(A, B, C)
O = Center(abc)
G: (A + B + C) / 3
L = Dilate(G, -3, O)
ss = Line(J_a, L)
og = Line(O, G)
de = Line(E, D)
E' = Mirror(E, OrthogonalLine[A, de])
au = Line(A, Mirror[A, BC])
U' = Intersect(c_a, au, 1)
P' = Mirror(A, U')
du = Line(U', D)
U = Mirror(U', OrthogonalLine[A, du])
dp = Line(D, P')
S_1 = Intersect(dp, ss)
Γ_1 = Circle(S_1, U)
vv = Line(E', au)
c_p = Circle(P', U')
V' = Translate(E', Vector[A, P'])
W' = Mirror(V', P')
ww = Line(W', au)
U'' = Mirror(U', A)
P'' = Mirror(A, U'')
c_p' = Circle(P'', U'')
V'' = Mirror(V', E')
W'' = Mirror(V'', P'')
dp' = Line(P'', D)
S_2 = Intersect(dp', ss)
du' = Line(U'', D)
U_2 = Mirror(U'', OrthogonalLine[A, du'])
Γ_2 = Circle(S_2, U_2)
dv = Line(V', D)
dw = Line(D, W')
V = Mirror(D, OrthogonalLine[C, dv])
W = Mirror(D, OrthogonalLine[B, dw])
dv' = Line(V'', D)
dw' = Line(D, W'')
W_2 = Mirror(D, OrthogonalLine[B, dw'])
V_2 = Mirror(D, OrthogonalLine[C, dv'])