A = Point(xAxis)
B = Point(yAxis)
C = Intersect(xAxis, yAxis)
A' = Mirror(A, C)
B' = Mirror(B, C)
DistanceCA = Distance(C, A)
TexteCA: "\overline{" + (Name[C]) + (Name[A]) + "} \, = \, " + DistanceCA
c = Circle(B, DistanceCA)
S = Intersect(c, xAxis, 1)
H = Intersect(c, xAxis, 2)
d = Circle(S, H)
A'_1 = Mirror(A, H)
H' = Mirror(H, A'_1)
e = Circle(H, H')
D_1 = Intersect(d, e, 1)
f = Conic(D_1, B, A', B', A)
P = Point(f)
Q = Point(f)
a = Ray(P, C)
b = Ray(S, Q)
g = AngularBisector(S, P, H)
h = OrthogonalLine(P, g)
R = Intersect(b, h)
i = Line(C, h)
j = Line(H, h)
k = Line(Q, h)
l = Segment(S, P)
m = Segment(P, H)
E = Intersect(i, l)
F = Intersect(g, i)
G = Intersect(f, a, 2)
I = Intersect(j, l)
X' = Intersect(k, l)
V = Intersect(a, k)
n = OrthogonalLine(Q, l)
T = Intersect(l, n)
p = Segment(A', A)
q = Segment(B', B)
D = Intersect(f, i, 2)
RapportTQ2sPX: Distance[T, Q]^(2) / Distance[P, X']
RapportQTsQX: Distance[Q, T] / Distance[Q, X']
RapportQRsPX: Distance[Q, R] / Distance[P, X']
DistanceEP = Distance(E, P)
DistanceDG = Distance(D, G)