ControlCentroCircunferencia = Point(xAxis)
ControlPared = Point(yAxis)
E = Intersect(xAxis, yAxis)
B_1 = Point(Ray[ControlCentroCircunferencia, Vector[(-1, 0)]])
c = Circle(ControlCentroCircunferencia, B_1)
D = Point(Segment[E, ControlPared])
F = Mirror(D, xAxis)
f, g = Tangent(D, c)
h, i = Tangent(E, c)
j, k = Tangent(F, c)
G = Intersect(k, f)
H = Intersect(i, f)
I = Intersect(k, h)
l = Segment(H, I)
A = Intersect(c, f)
n = Segment(A, G)
C = Intersect(c, k)
p = Segment(C, G)
O = Intersect(c, h)
P = Intersect(c, j)
Q = Intersect(c, i)
R = Intersect(c, g)
e = Circle(ControlCentroCircunferencia, G)
K = Intersect(e, g, 1)
L = Intersect(e, i, 1)
M = Intersect(e, h, 1)
N = Intersect(e, j, 1)
m = Segment(R, K)
q = Segment(L, Q)
r = Segment(M, O)
s = Segment(P, N)
B' = Mirror(ControlPared, xAxis)
t = Segment(D, ControlPared)
a = Segment(B', F)
B = Intersect(c, xAxis, 2)
b = Segment(B, G)