Cónica dado un foco, dos tangentes y el punto de contacto de una de ellas

F = (-0.7243974630021154, 1.057167019027487)
A = (-4.2239323467230445, 0.5046088794926035)
B = (4.432811839323464, 6.214376321353067)
t = Line(A, B)
C = (-2.545792811839324, 5.764143763213532)
D = (6.602114164904858, -0.027484143763210313)
t_P = Line(C, D)
P = Point(t_P)
S_1 = Mirror(F, t)
S_2 = Mirror(F, t_P)
a = Line(S_2, P)
b = LineBisector(S_1, S_2)
F_2 = Intersect(a, b)
c = Circle(F_2, S_1)
i = Line(F_2, S_1)
P_1 = Intersect(t, i)
E = Midpoint(F_2, F)
j = Line(F, F_2)
G = Mirror(P_1, j)
P' = Mirror(P, j)
P'_1 = Mirror(P, E)
k = Conic(P', P, P_1, P'_1, G)
d = Line(S_2, b)
Q = Intersect(d, t_P)
g = Parabola(F, Line[S_1, S_2])

Tool: Conica Punto Tangente Tangente_Punto (command ConicaPuntoTangenteTangente_Punto)
Dar el foco, dos tangentes y el punto de contacto de la última
Input: F, t, t_P, P
Output: e, g, f, F_2

P = Point(t_P)
S_1 = Mirror(F, t)
S_2 = Mirror(F, t_P)
a = Line(S_2, P)
b = LineBisector(S_1, S_2)
F_2 = Intersect(a, b)
e = Ellipse(F, F_2, P)
f = Hyperbola(F, F_2, P)
g = Parabola(F, Line[S_1, S_2])