Personnellement, j’ai choisi de me baser une fois de plus sur le travail effectué par Christophe Poulain. C’est ainsi que tous mes fichiers font appel à courbescp13.mp dont vous trouverez une présentation ici.
J’ai complété ce travail par des macros personnels que vous trouverez dans le fichier dlf_courbe.mp disponible dans cet article.
Là encore, l’idée est de partir d’un exemple pour pouvoir rapidement obtenir ce que l’on veut.
Voici un premier exemple :

Voici son code:
input courbescp13;
input dlf_courbe.mp;
beginfig(1);
numeric xmin,xmax,ymin,ymax;
xmin:=-1;
ymin:=-5;
xmax:=10;
ymax:=9;
numeric unitex,unitey;
unitex:=1;
unitey:=1;
depart((xmin,ymin),(xmax,ymax),(0,0),unitex,unitey);
%draw millimetrepourcourbe withcolor orange;
draw grille(1) withcolor gris;
draw reperelycee withpen pencircle scaled 1.5bp;
graduationx.bot(xmin,xmax,1);
graduationy.lft(ymin,ymax,1);
%courbe 1
draw courbe1(0.1,10,100,x-2-(ln(x)/x)) withcolor bleu;
label.lrt(TEX "$({\cal C}_f)$",pointcourbe1(5));
%legende
label.lft(TEX "\begin{tabular}[t]{|l|} \hline \\$({\cal C}_f): y = x-2-\dfrac{\ln x}{x}$\\$(d_1): x=0$\\$(d_2):y=3$\\ $(\Delta):y=x-2$~\\ \hline \end{tabular}",placepoint(xmax,ymin+2));
%asymptote oblique
path asym;
asym = courbe3(-1,10,100,x-2);
pair a,b;
a:=pointcourbe3(xmin);
b:=pointcourbe3(xmax);
draw Asymptote(a,b) dashed evenly withpen pencircle scaled 1.5bp;
label.lft(TEX "$(\Delta)$",pointcourbe3(xmax-1));
%asymptote verticale
numeric xa;
xa:=0;
draw Asymptote(placepoint(xa,ymin),placepoint(xa,ymax)) withcolor vert withpen pencircle scaled 1.5bp;
label.lft(TEX "$(d_1)$",placepoint(xa,ymax-1));
%asymptote horizontale
numeric xv;
xv:=3;
draw Asymptotedouble(placepoint(xmin,xv),placepoint(xmax,xv)) withcolor violet withpen pencircle scaled 1.5bp;
label.bot(TEX "$(d_2)$",placepoint(xmax-1,xv));
%tangente
marque_tan:=50;
draw tangente1(1);
%point particulier
draw Projection(pointcourbe1(1));
dotlabel.bot(btex $A$ etex,pointcourbe1(1));
endfig;
end