> restart:with(linalg):with(plots):
Digits:=7: # Les calculs exacts sont inutiles pour les graphiques et prnnent du temps
#Une précision inférieure donne de mauvais résultats près des rebroussements

> M:=t->[cos(t),sin(t)]:

> a:=0:b:=2.:c:=3.5:
A:=M(a):B:=M(b):C:=M(c):# Les sommets du triangles sont pris qur le cercle trigonométrique
P:=evalm(B+dotprod(M(t)-B,C-B)/norm(C-B,2)**2*(C-B)):
Q:=evalm(C+dotprod(M(t)-C,A-C)/norm(A-C,2)**2*(A-C)):
#Enveloppe de la droite (PQ)
E:=matrix(3,3,[x,P[1],Q[1],y,P[2],Q[2],1,1,1]):
f:=det(E):
ff:=diff(f,t):
assign(solve({f,ff},{x,y}));

#Cercle d'Euler
w:=1/2*(A+B+C):
CerclEul:=circle(w,0.5,color=blue):

> droites:=NULL:
n:=50:
for k to n do
t:=evalf(k*2*Pi/n):
P:=B+dotprod(M(t)-B,C-B)/norm(C-B,2)**2*(C-B):
Q:=C+dotprod(M(t)-C,A-C)/norm(A-C,2)**2*(A-C):
R:=A+dotprod(M(t)-A,B-A)/norm(B-A,2)**2*(B-A):
droites:=droites,plot([[evalm(v*P+(1-v)*Q)[1],evalm(v*P+(1-v)*Q)[2],v=-200..200],[P,M(t)],[Q,M(t)],[R,M(t)],[M(t)],[[x,y]]],style=[line$4,point$2],symbol=circle,color=[black$5,red],numpoints=2,linestyle=[0,2$5]):
od:

> t:='t':display([display([droites],insequence=true),CerclEul,plot([[M(u)[1],M(u)[2],u=0..2*Pi],[2*B-A,2*A-B],[2*C-B,2*B-C],[2*A-C,2*C-A]],color=blue,style=line),plot([x,y,'t'=0..2*Pi],color=red,thickness=2)],scaling=constrained,axes=none,view=[(-2..2)$2]);