animer

O = Intersect(xAxis, yAxis)
c = Circle(O, 1)
P = Point(c)
E_0 = (-2.3696718479051606, 1.6234478519036528)
M_0: E_0 + (1, 0)
E_0x = Ray(E_0, M_0)
D_0 = Point(E_0x)
k = AffineRatio(M_0, E_0, D_0)
DE_0 = Segment(E_0, D_0)
DM_0 = Segment(D_0, M_0)
OP = Segment(O, P)
H = Midpoint(P, Mirror[P, xAxis])
HP = Segment(P, H)
M = Dilate(P, k, H)
D = Dilate(O, k, H)
dy = OrthogonalLine(D, xAxis)
HM = Segment(M, H)
E = Intersect(yAxis, Line[D, OP])
EM = Segment(E, M)
Ex = OrthogonalLine(E, yAxis)
C = Intersect(dy, Ex)
CM = Segment(M, C)
tg = OrthogonalLine(M, CM)
lieu1 = Locus(M, P)
PD_0: D_0
PP: P
MD = Segment(M, D)