Medición

A = Intersect(xAxis, yAxis)
Separación = Point(Ray[A, Vector[(0, -1)]])
f = Line(Separación, xAxis)
Distancia = Point(Ray[Separación, Vector[(1, 0)]])
A' = Mirror(Separación, Distancia)
C' = Mirror(Distancia, A')
A'' = Mirror(A', C')
C'' = Mirror(C', A'')
A''' = Mirror(A'', C'')
C''' = Mirror(C'', A''')
D_1 = Midpoint(A''', C''')
g = OrthogonalLine(D_1, xAxis)
B = Intersect(g, xAxis)
c = Circle(Separación, 0.3)
F = Intersect(c, yAxis, 2)
G = Intersect(c, yAxis, 1)
h = Segment(F, G)
F' = Mirror(F, Distancia)
G' = Mirror(G, Distancia)
h' = Segment(F', G')
F'_1 = Mirror(F, Midpoint[Separación, Distancia])
G'_1 = Mirror(G, Midpoint[Separación, Distancia])
h'_1 = Segment(F'_1, G'_1)
H = Mirror(F'_1, A')
I = Mirror(G'_1, A')
i = Segment(H, I)
F'' = Mirror(F', C')
G'' = Mirror(G', C')
h'' = Segment(F'', G'')
H' = Mirror(H, A'')
I' = Mirror(I, A'')
i' = Segment(H', I')
F''' = Mirror(F'', C'')
G''' = Mirror(G'', C'')
h''' = Segment(F''', G''')
H'' = Mirror(H', A''')
I'' = Mirror(I', A''')
i'' = Segment(H'', I'')
d = Circle(A, Segment[Separación, Distancia])
J = Intersect(d, xAxis, 2)
K = Intersect(d, yAxis, 2)
e = Circle(J, Segment[Separación, Distancia])
L = Intersect(e, xAxis, 2)
k = Circle(L, J)
M_1 = Intersect(k, xAxis, 2)
p = Circle(M_1, L)
N = Intersect(p, xAxis, 2)
q = Circle(N, M_1)
O = Intersect(q, xAxis, 2)
r = Circle(O, N)
P = Intersect(r, xAxis, 2)
s = Circle(P, O)
M = 0 (slider from 0 to 13 - 2 / 3, step 0.01)
K' = Rotate(K, (((-π)) / 2 * M), A)
j = Segment(A, K')
J' = Rotate(J, (((-π)) / 2 * (M - 3)), L)
L' = Rotate(L, (((-π)) / 2 * (M - 5)), M_1)
l = Segment(L, J')
m = Segment(M_1, L')
Q = Rotate(M_1, (((-π)) / 2 * (M - 7)), N)
n = Segment(N, Q)
N' = Rotate(N, (((-π)) / 2 * (M - 9)), O)
t = Segment(O, N')
O' = Rotate(O, (((-π)) / 2 * (M - 11)), P)
a = Segment(P, O')
b = Segment(A, B)
f_1 = Segment(Separación, C''')
B' = Rotate(A, (((-π)) / 2 * (M - 1)), J)
g_1 = Segment(J, B')
o = false
h_1 = OrthogonalLine(O', xAxis)
E = Intersect(xAxis, h_1)
i_1 = Segment(E, O')
C: Separación
D: Distancia