Durch linken Mausklick auf  den Berührpunkt kann dieser verschoben werden. a bestimmt die Form der Ellipse.

a = 2 (slider from 0 to 10, step 0.1)
P_1: (a, 0.0)
P_2: (-(a), 0.0)
P_3 = (0, -1)
P_4 = (0, 1)
P_5: (a / sqrt(2.0), 1.0 / sqrt(2.0))
c = Conic(P_1, P_2, P_3, P_4, P_5)
A = Point(c)
b = Tangent(A, c)
m_1 = Slope(b)
x_1: (-(m_1) * 2.0 / y(A) + sqrt((1.0 / a^(2.0) + m_1^(2.0)) * (4.0 / y(A)^(2.0) - 1.0) - m_1^(2.0) * 4.0 / y(A)^(2.0))) / (1.0 / a^(2.0) + m_1^(2.0))
y_1: m_1 * x_1 + 2.0 / y(A)
Q_1: (x_1, y_1)
d: y = m_1 * x + 2.0 / y(A)
x_2: (-(m_1) * 2.0 / y(A) - sqrt((1.0 / a^(2.0) + m_1^(2.0)) * (4.0 / y(A)^(2.0) - 1.0) - m_1^(2.0) * 4.0 / y(A)^(2.0))) / (1.0 / a^(2.0) + m_1^(2.0))
y_2: m_1 * x_2 + 2.0 / y(A)
Q_2: (x_2, y_2)
x_3: (-(m_1) * 3.0 / y(A) + sqrt((1.0 / a^(2.0) + m_1^(2.0)) * (9.0 / y(A)^(2.0) - 1.0) - m_1^(2.0) * 9.0 / y(A)^(2.0))) / (1.0 / a^(2.0) + m_1^(2.0))
x_4: (-(m_1) * 3.0 / y(A) - sqrt((1.0 / a^(2.0) + m_1^(2.0)) * (9.0 / y(A)^(2.0) - 1.0) - m_1^(2.0) * 9.0 / y(A)^(2.0))) / (1.0 / a^(2.0) + m_1^(2.0))
y_3: m_1 * x_3 + 3.0 / y(A)
y_4: m_1 * x_4 + 3.0 / y(A)
Q_3: (x_3, y_3)
Q_4: (x_4, y_4)
e: y = m_1 * x + 3.0 / y(A)
f = Conic(Q_4, Q_2, A, Q_1, Q_3)
g, h = Asymptote(f)
i, j = AngularBisector(h, g)
O = (0, 0)
k = Line(A, O)
F_1, F_2 = Focus(f)
F_3: (y(F_1), -x(F_1))
F_4: -(F_3)
x_B: a / sqrt(1.0 + a^(2.0) * m_1^(2.0))
y_B: sqrt(1.0 - x_B^(2.0) / a^(2.0))
B = If(x(A) * y(A) > 0.0, (x_B, -(y_B)), (x_B, y_B))
p = Hyperbola(F_3, F_4, B)
l = Tangent(B, c)
m_2 = Slope(l)
m_3: -(m_1) * m_2 * a^(2.0)
D = Intersect(b, h)
A' = Mirror(A, O)
B' = Mirror(B, O)
m = Line(O, B)
n = Tangent(B', c)