Trasvasa

O, a, b, Punto inicial, Punto contacto

p = Circle(F, 0.0010)
A2: O - (0.0, a)
l = Segment(O, A2)
C: O + (b; 210.0 * °)
k = Segment(O, C)
D: A2 + C - O
j = Segment(C, D)
g = Segment(A2, D)
lista2: {AffineRatio[O, A2, F], AffineRatio[A2, D, F], AffineRatio[O, C, F], AffineRatio[C, D, F]}
lista3 = Sequence(If[Defined[Element[lista2, s]], s, 0.0], s, 1.0, Length[lista2])
indicador = Max(lista3)
lista5: {A2, D, C, D}
lista4: {O, A2, O, C}
G = If(Element[lista4, indicador] ≟ F, Element[lista5, indicador], Element[lista4, indicador])
n = Line(F, G)
h = OrthogonalLine(F, n)
P' = Mirror(P, h)
i = Ray(F, P')
A, B = Intersect(p, i)
m = Ray(B, P')
lista1b = RemoveUndefined({Intersect[m, g], Intersect[m, k], Intersect[m, l], Intersect[m, j]})
lista1a = If(F ≟ O, {C}, {})
lista1 = Join({lista1a, lista1b})
E = Element(lista1, 1.0)