picture currentdash,solid; solid = dashpattern(on 1); def dash expr p = currentdash := p enddef; dash solid; transform echelle; echelle := identity; def trace expr p = draw p transformed echelle dashed currentdash enddef; beginfig(1); p:=1.3; % le nombre premier h:=4; % l'inverse de la pente q:=p**h; echelle := identity xscaled 14mm yscaled 14mm; % Axes trace left -- (q*q+1)*right; trace 2.5*down -- .5*up; transform T; T := identity xscaled q shifted (0, -1); def poly expr f = trace f; trace f transformed T; enddef; def etiq(expr lx, ly, a) = dash withdots; trace (0, ypart a)--a--(xpart a, 0); label.top(lx, (xpart a ,0) transformed echelle); label.lft(ly, (0, ypart a) transformed echelle); enddef; % Ligne principale dash solid; poly (1, 0) -- (q, -1); % Lignes secondaires poly (1, 0) -- (p, -1/h) -- (p*p, -2/h); poly (q/p,-1+1/h) -- (q, -1); dash evenly; poly (p*p, -2/h) -- (q/p, -1+1/h); pickup pencircle scaled 2pt; poly (p, -1/h); poly (p*p, -2/h); poly (q/p, -1+1/h); poly (q, -1); pickup pencircle scaled .5pt; % Abscisses et ordonnées etiq (btex $1$ etex, "", (1, 0)); etiq (btex $p$ etex, "", (p, -1/h)); etiq (btex $p^2$ etex, "", (p*p, -2/h)); etiq (btex $q$ etex, btex $-1$ etex, (q, -1)); etiq (btex $q^2$ etex, btex $-2$ etex, (q*q, -2)); dash solid; (0, rho) = whatever [(q, -1), (p*q, -1-1/h)]; trace (0, rho) -- (q, -1); etiq ("", btex $-1+{1\over h(p-1)}$ etex, (0, rho)); endfig; end;