Références : MathCurve, Palais de la Découverte.
%@AUTEUR: Maxime Chupin %@DATE: 5 décembre 2010 verbatimtex %&latex \documentclass{minimal} \usepackage[latin1]{inputenc} \usepackage[garamond]{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.1 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*10: 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.