prologues := 3;
outputtemplate := "%j/%j-%c.svg";
outputformat := "svg";
verbatimtex
%&latex
\documentclass{minimal}
\usepackage[utf8]{inputenc}
\usepackage[charter]{mathdesign}
\usepackage{amsmath}
\begin{document}
etex
e:=2.718281828;
%% coef tractrice :
a:=2;
% hyperbolic functions
vardef exp(expr x)=
e**x
enddef;
vardef sinh( expr x) =
save xx ; xx = exp(x) ; (xx-1/xx)/2
enddef ;
vardef cosh(expr x) =
save xx ; xx = exp(x) ; (xx+1/xx)/2
enddef ;
vardef tanh(expr x)=
(sinh(x)/cosh(x))
enddef;
vardef coth(expr x)=
(cosh(x)/sinh(x))
enddef;
vardef tractrice (expr t) =
save trc;
pair trc;
trc:=(a*(t-tanh(t)),a/cosh(t));
trc
enddef;
% vecteur derivé
vardef derive_tract(expr t)=
save der;
pair der;
der:=(a-a/(cosh(t)**2),-a*sinh(t)/(cosh(t)**2));
der
enddef;
% tangente à la tractrice
vardef tangente_tract(expr t,unit)=
save tangente,A,B,vect;
pair vect;
vect:=derive_tract(t);
path tangente;
pair A,B;
A:=unit*(tractrice(t)+vect);
B:=unit*(tractrice(t)-vect);
tangente:=20[A,B]--20[B,A];
tangente
enddef;
u:=1cm;
%% tractrice
% reglage de l'intervalle de temps [-tmp,tmp]
tmp:=4.5;
% construction de la tractrice
path tract;
for i:=-tmp step 0.1 until tmp:
if i=-tmp:
tract:=u*tractrice(i);
else:
tract:=tract--u*tractrice(i);
fi;
endfor;
% on définit le matériel
path tang,forcat;
pair M,P,N;
fig:=0;
cadrex:=5u;
cadreyB:=-1u;
cadreyT:=5u;
% on construit nos images
for i:=-tmp step 0.05 until tmp:
beginfig(fig);
% le point qui parcours la tractrice
P:=u*tractrice(i);
% la tangente à la tractrice en P
%% attention à la tangente verticale
if fig=tmp*20:
tang:=(0,cadreyB)--(0,cadreyT);
draw tang withcolor red;
else:
tang:=tangente_tract(i,u);
fi;
% intersection de la tangente avec l'axe des abscisses
N:=tang intersectionpoint (5[(-u,0),(u,0)]--5[(u,0),(-u,0)]);
% symétrique de N par rapport à P
M:=P+arclength(N--P)*unitvector(P-N);
% on construit la courbe du forçat
if i=-tmp:
forcat:=M;
else:
forcat:=forcat--M;
fi;
% on dessine
%% axes
drawarrow (-cadrex,0)--(cadrex,0);
drawarrow (0,cadreyB)--(0,cadreyT);
%% tractrice
draw tract withcolor (0.5,0.5,0.5) withpen pencircle scaled 0.8pt;
%% tangente
draw tang dashed evenly withcolor green withpen pencircle scaled 0.9pt;
%% la partie de la tangente qui permet la construction
draw N--M withcolor blue withpen pencircle scaled 1pt;
%% la courbe du forcat
draw forcat withcolor red withpen pencircle scaled 1pt;
%% les annotations
dotlabel.urt(btex $M$ etex,M);
dotlabel.urt(btex $P$ etex,P);
dotlabel.urt(btex $N$ etex,N);
label.bot(btex $x$ etex, 0.9*(cadrex,0));
label.rt(btex $y$ etex,0.9*(0,cadreyT));
label(btex \textit{La courbe du forçat} etex, 0.6(cadrex,cadreyT+u));
draw btex $\left\{\begin{array}{l}x=a(\theta - 2\mathrm{th}\theta)\\y=\dfrac{2a}{\mathrm{ch}\theta}\end{array}\right.$ etex scaled 0.8 shifted (0.6(cadrex,cadreyT+u)-(u,u));
draw btex $(\mathcal{T})$ etex shifted (0.9*(-cadrex,0.6u)) withcolor (.5,.5,.5);
clip currentpicture to (-cadrex,cadreyB)--(cadrex,cadreyB)--(cadrex,cadreyT)--(-cadrex,cadreyT)--cycle;
endfig;
fig:=fig+1;
endfor;
end.