// Une variante de l'exemple précédent // où, cette fois, plutôt que de définir la fonction f // on définit une translation t que l'on exploite // pour les constructions. import graph_pi; import patterns; usepackage("mathrsfs"); size(10cm,0); graphicrules(xunit=1cm, yunit=1cm, xmin=-2, xmax=6, ymin=-2, ymax=10, crop=Crop ); // Définition et tracé de la grille grid(xStep=1, xstep=.5, yStep=1, ystep=.5, pTick=.7bp+.7white, ptick=.7bp+dotted+.7white, above=false ); // Définition et tracé des axes cartesianaxis( xticks=Ticks(Label(Fill(white)), Step=1, step=.5, NoZero, ptick=grey), yticks=Ticks(Label(Fill(white)), Step=2, step=1, NoZero, ptick=grey), Arrow ); // On définit une translation t de vecteur (a,b) real a=3, b=1; transform t=shift(a,b); // Définition de la fonction u et de sa courbe real u(real x) {return x^3;} path Cu=graph(u,-2,3,n=400); // La courbe Cf s'en déduit par la translation t path Cf=t*Cu; // On trace les courbes. draw(Cu,linewidth(1bp)+dashed+blue); draw(Cf,linewidth(1bp)+blue); xlimits(-2.5,7,Crop); ylimits(-2.5,11,Crop); // Ajout des noms de courbes, d'un repère. real k=1.5; label("$\mathscr{C}_u$",(k,u(k)),NW); label("$\mathscr{C}_f$",t*(k,u(k)),NW); labeloij(p=1.4bp+.5*red, arrow=Arrow(SimpleHead,8bp), dot ); // Des réprésentants du vecteur de la translation for(int k=-1; k<3; ++k) draw((k,u(k))--t*(k,u(k)),red,Arrow); k=1.5; draw((k,u(k))--t*(k,u(k)),red,Arrow);