I

I

J

J

axes

0 ou 1

axe focal

foyers

A = (0, 2.78)
B = (2.54, 0.18)
C = (1.84, -1.72)
D = (-1.86, -0.04)
E = (-2.3734931460833253, 0.9158733410520554)
c = Conic(A, B, C, D, E)
bc = Line(B, C)
aa' = Line(A, bc)
cd = Line(C, D)
I_1 = Intersect(aa', cd)
ae = Line(A, E)
J_1 = Intersect(bc, ae)
ij_1 = Line(J_1, I_1)
de = Line(E, D)
K_1 = Intersect(ij_1, de)
ba' = Line(K_1, B)
A' = Intersect(ba', aa')
N = Midpoint(B, C)
M = Midpoint(A, A')
mn = Line(M, N)
bd = Line(D, B)
aa'' = Line(A, bd)
I'_1 = Intersect(cd, aa'')
ij'_1 = Line(I'_1, J_1)
K'_1 = Intersect(de, ij'_1)
ba'' = Line(B, K'_1)
A'' = Intersect(ba'', aa'')
P = Midpoint(A'', A)
Q = Midpoint(D, B)
pq = Line(P, Q)
O = Intersect(mn, pq)
mn' = Line(O, aa')
pq' = Line(O, aa'')
o = (-0.54, -1.4)
c_o = Circle(o, O)
om = OrthogonalLine(o, mn)
m = Mirror(O, om)
om' = OrthogonalLine(o, mn')
m' = Mirror(O, om')
op = OrthogonalLine(o, pq)
p = Mirror(O, op)
op' = OrthogonalLine(o, pq')
p' = Mirror(O, op')
mm' = Line(m', m)
pp' = Line(p', p)
ω = Intersect(mm', pp')
ow = Line(o, ω)
u, u' = Intersect(c_o, ow)
ou' = Line(O, u')
ou = Line(u, O)
tt = Tangent(B, c)
nn = OrthogonalLine(B, tt)
I_{u'} = Intersect(ou', tt)
I_u = Intersect(tt, ou)
J_{u'} = Intersect(nn, ou')
J_u = Intersect(nn, ou)
bt1 = true
OJ = Vector(O, J_{u'})
OI = Vector(O, I_{u'})
s: floor((1 + sgn((OI * OJ))) / 2)
I = Dilate(I_{u'}, s, I_u)
J = Dilate(J_{u'}, s, J_u)
M_{IJ} = Midpoint(J, I)
c_{ij} = Circle(M_{IJ}, I)
N_{ij} = Midpoint(O, M_{IJ})
C_n = Circle(N_{ij}, O)
T', T = Intersect(C_n, c_{ij})
ot = Line(O, T)
c_{ff} = Circle(O, T)
ax = Line(O, I)
F', F = Intersect(c_{ff}, ax)
fh = OrthogonalLine(F, tt)
H = Intersect(fh, tt)
d = Circle(O, H)
FH = Segment(F, H)
bt2 = false
fy_1 = OrthogonalLine(F, ax)
G', G = Intersect(d, fy_1)
FG = Segment(F, G)
v = Vector(F, G)
b = Translate(O, v)
b' = Mirror(b, O)
a', a = Intersect(d, ax)
SG = Segment(b, G)
fy, fx = Tangent(F, d)
oz = OrthogonalLine(O, fy)
oz' = OrthogonalLine(O, fx)