P

axe transverse

M

P_1

P_2

axe focal

O = Intersect(xAxis, yAxis)
A = Point(xAxis)
A'_{2} = Rotate(A, -90°, O)
B = Point(Segment[O + (0, 0.0001), A'_{2} - (0, 0.0001)])
c = Circle(O, A)
f = OrthogonalLine(B, yAxis)
C = Intersect(c, f, 2)
g = OrthogonalLine(C, xAxis)
F = Intersect(g, xAxis)
F' = Mirror(F, O)
d = Ellipse(F, F', B)
A' = Mirror(A, O)
B' = Mirror(B, O)
h = Line(B, xAxis)
i = Line(B', xAxis)
j = Line(A, yAxis)
k = Line(A', yAxis)
D = Intersect(h, j)
E = Intersect(h, k)
G = Intersect(i, k)
H = Intersect(i, j)
l = Line(H, O)
m = Line(D, G)
P' = Point(yAxis)
P = Point(xAxis)
n = OrthogonalLine(P, m)
M = Intersect(l, n)
p = OrthogonalLine(M, xAxis)
P_2, P_1 = Intersect(d, p)
q = Line(P, P_2)
r = Line(P, P_1)
s = Line(A, A')
t = Line(O, B)
a = Segment(D, E)
b = Segment(E, G)
e = Segment(G, H)
f_1 = Segment(H, D)
o = true
g_1 = OrthogonalLine(P', m)
M' = Intersect(l, g_1)
h_1 = OrthogonalLine(M', t)
P'_1, P'_2 = Intersect(d, h_1)
i_1 = Line(P', P'_2)
j_1 = Line(P', P'_1)
u = false