A = Point(xAxis)
B = Point(xAxis)
c_A = Circle(A, B)
X = Point(c_A)
c_X = Circle(X, Rotate[X, 90°, A])
ab = Line(A, B)
Z = Intersect(c_X, ab, 2)
V = Rotate(Z, 90°, Midpoint[X, Z])
U = Mirror(V, Line[X, Z])
VX = Segment(X, V)
VZ = Segment(V, Z)
UZ = Segment(Z, U)
ac = Line(A, X)
UX = Segment(X, U)
av = Line(A, V)
bc = Line(B, UX)
C = Intersect(ac, bc)
D = Intersect(av, bc)
de = OrthogonalLine(D, bc)
E = Intersect(ac, de)
DE = Segment(E, D)
cp = Line(C, VX)
P = Intersect(av, cp)
pq = Line(P, bc)
Q = Intersect(ab, pq)
qr = Line(Q, cp)
R = Intersect(bc, qr)
CP = Segment(C, P)
PQ = Segment(P, Q)
QR = Segment(Q, R)
AC = Segment(C, A)
AB = Segment(A, B)
BC = Segment(C, B)
BR = Segment(B, R)
lieu1 = Locus(C, X)
XX: X
by = OrthogonalLine(B, ab)
k: 0.58571
M = Dilate(B, k, A)
F = Rotate(Midpoint[A, B], 90°, A)
asy = Line(M, Line[B, F])