% Calcul de la trajectoire de TT
% Avec les points TT, P, Q
clf
hold on
axis('square')
axis([-m m -m m])
axis off
plot(x,y,'b',Px,Py,'r*',Qx,Qy,'ro')
n=m/18;
text(-1.5*m,m+2*n,'Choisissez un point de rebond sur le pourtour du billard')
text(-1.5*m,m+0.6*n,'afin de frapper la deuxième boule (o) avec la première (*)')
[TTx,TTy]=ginput(1);
u=acos(TTx/sqrt(TTx^2+TTy^2))*sign(TTy);
if choix == 3
  if sign(u) < 0
    u=u+6*pi;
  else
    u=u+4*pi;
  end
end
G=u;
TTx=eval(X);
TTy=eval(Y);
TT=[TTx;TTy];
% Calcul de C, M et W avec XX et YY
k1=eval(YY)/eval(XX);
k2=-1/k1;
Cx=(Py-TTy-Px*k2+TTx*k1)/(k1-k2);
Cy=Cx*k1-k1*TTx+TTy;
C=[Cx;Cy];
Mx=2*Cx-Px;
My=2*Cy-Py;
M=[Mx;My];
p=(My-TTy)/(Mx-TTx);
q=My-Mx*p;
Fa=[Y '-p*' X '-q'];
u=0:pi/300:2*pi;
if choix == 3
  u=u+4*pi;
end
Faa=eval(Fa);
Do=[];
fl=length(Faa);
for i=1:fl-1;
  if sign(Faa(i))*sign(Faa(i+1)) < 0
    Do=[Do (u(i)+u(i+1))/2];
  end
end
u=Do; % Définition de TT avec le u trouvé plus haut
x1=eval(X);
y1=eval(Y);
hold off
