a = 4.9 (slider from 0 to 5, step 0.1)
b = 3.8 (slider from 0 to 5, step 0.1)
A = (-0.23762194922764965, 13.552281997740716)
B = Point(Circle[A, (2 * a)])
c = Segment(A, B)
C = Midpoint(A, B)
d = OrthogonalLine(C, c)
e = Circle(C, b)
D, E = Intersect(e, d)
f = Circle(E, Segment[A, C])
F, G = Intersect(f, c)
g = Ellipse(F, G, E)
H = Point(g)
Arc = Arc(g, A, H)
I = (-14.760627449962497, -2.3705312621010792)
J = Point(Circle[I, Circumference[g]])
h = Segment(I, J)
k = Circle(I, Arc)
K = Intersect(k, h, 1)
j = Tangent(H, g)
L = Point(j)
i = Segment(F, H)
l = Segment(F, H)
α = Angle(F, H, L)
I' = Rotate(I, (-α), K)
β = Angle(I', K, I)
m = Segment(L, H)
n = Ray(K, I')
p = Circle(K, Segment[F, H])
M = Intersect(p, n, 1)
M' = Mirror(M, h)
q = Ray(M', K)
r = Circle(M', (2 * a))
N = Intersect(r, q, 1)
s = Ellipse(M, N, K)
t = OrthogonalLine(M, h)
a_1 = OrthogonalLine(N, h)
O = Intersect(a_1, h)
u = Vector(I, O)
c_1 = Circle(O, N, u)
loc1 = Locus(N, H)

Tool: 點點圓
給圓心圓上一點作圓，再給圓外兩點作過這兩點且和此圓相切的所有圓
Input: O, O', A, B
Output: f, g

c = Circle(O, O')
d = Circle(A, B, O')
C = Intersect(c, d, 2)
a = Line(C, O')
b = Line(A, B)
D = Intersect(a, b)
E = Midpoint(D, O)
e = Circle(E, O)
F, G = Intersect(e, c)
f = Circle(A, F, B)
g = Circle(A, B, G)

Tool: 點圓圓
給圓心和圓上一點作圓,再作另一圓,給兩圓外一點,作過此點且與兩圓相切的圓
Input: O_1, B, O_2, D, A
Output: k, p, r, s

c = Circle(O_1, B)
d = Circle(O_2, D)
a, b, e, f = Tangent(c, d)
C = Intersect(a, b)
g = Line(C, A)
E = Intersect(c, a)
F, G_1 = Intersect(d, a)
h = Circle(A, F, E)
G = Intersect(h, g, 2)
k, p = 點點圓(O_2, D, A, G)
H = Intersect(e, f)
I = Intersect(c, e)
J = Intersect(d, e)
q = Circle(I, J, A)
i = Line(A, H)
K, L = Intersect(q, i)
r, s = 點點圓(O_1, B, L, A)

Tool: PLC
給一點、一直線、一圓(兩點)、反演中心
Input: A, a, D, E, F
Output: e', f', g', h'

c = Circle(D, E)
d = Circle(F, A)
c' = Mirror(c, d)
a' = Mirror(a, d)
G = Center(c')
H = Center(a')
I = Point(c')
e, f, g, h = 點圓圓(G, I, H, F, A)
h' = Mirror(h, d)
g' = Mirror(g, d)
f' = Mirror(f, d)
e' = Mirror(e, d)

Tool: LCC
給一直線，給兩圓，再給一反演中心
Input: A, B, C, D, E, F, P
Output: c_1, d_1, q_1, r_1

a = Line(A, B)
d = Circle(E, F)
b = Segment(E, F)
e = OrthogonalLine(B, a)
f = Circle(B, b)
G, H = Intersect(f, e)
g = Line(G, a)
h = Segment(C, D)
k = Circle(D, b)
I = Intersect(k, h)
q, r, s, t = PLC(E, g, C, I, D)
J = Center(q)
i = Segment(J, E)
K = Intersect(d, i, 1)
c_1 = Circle(J, K)
L = Center(r)
j = Segment(L, E)
M, N = Intersect(d, j)
d_1 = Circle(L, M)
l = Line(H, a)
m = Line(C, D)
e_1 = Circle(D, b)
O = Intersect(e_1, m, 2)
g_1, h_1, k_1, p_1 = PLC(E, l, C, O, P)
Q = Center(g_1)
R = Center(h_1)
a_1 = Line(Q, E)
S = Intersect(d, a_1, 2)
q_1 = Circle(Q, S)
b_1 = Line(R, E)
T = Intersect(d, b_1, 2)
r_1 = Circle(R, T)