r(u, v) = (4 * (1 - cos(u) / 2))
x1(u, v) = ((6 * cos(u)) * (1 + sin(u))) + ((r(u, v) * cos(u)) * cos(v))
x_2(u, v) = ((6 * cos(u)) * (1 + sin(u))) + (r(u, v) * cos(v + π))
y1(u, v) = (16 * sin(u)) + ((r(u, v) * sin(u)) * cos(v))
y_2(u, v) = (16 * sin(u))
z1(u, v) = (r(u, v) * sin(v))
t = 7.243116395776467 rad (slider from 0 to 1080°, step 0.08726646259971647)
s = 18.84955592153876 rad (slider from 0 to 1080°, step 0.08726646259971647)
a = Surface(x1(u, v), y1(u, v), z1(u, v), u, 0, t, v, 0, s)
b = Surface(x_2(u, v), y_2(u, v), z1(u, v), u, π, t + π, v, 0, s)
c = Surface(If[0 ≤ u  <  π, x1(u, v), x_2(u, v)], If[0 ≤ u  <  π, y1(u, v), y_2(u, v)], z1(u, v), u, 0, t, v, 0, s)

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)