// La même figure que la précédente // mais en utilisant l'instruction **sequence** // Rappel d'un extrait de la documentation officielle : /* int[] sequence(int n) if n >= 1 returns the array {0,1,...,n-1} (otherwise returns a null array); */ /* int[] sequence(int n, int m) if m >= n returns an array {n,n+1,...,m} (otherwise returns a null array); */ /* T[] sequence(T f(int), int n) if n >= 1 returns the sequence {f_i :i=0,1,...n-1} given a function T f(int) and integer int n (otherwise returns a null array); */ // import geometry_dev; // extension devenue l'extension geometry officielle import geometry; // le 12/05/09, dans la version 1.71 d'asymptote. :-)) unitsize(1cm); // ~~~~~~ DEFINITIONS ~~~~~~~~~~~~~~~~~~~~~~ pair pO=(0,0), pI=(1,0), pJ=rotate(45,pO)*pI; line d1 = line(pO,pI); line d2 = line(pO,pJ); currentcoordsys = cartesiansystem(pO,i=pI,j=pJ); int n1min=-2, n1max=5, n2min=-3, n2max=6; point pA=(2,0), pB=(4,0), pC=(0,3), pD=(0,5); // ~~~~~~ CONSTRUCTIONS ~~~~~~~~~~~~~~~~~~~~~~ label("$O$",pO,S); draw(d1^^d2); point f(int i){return locate((i+n1min,0));}; point[] pM1=sequence(f,n2max-n2min+1); dot(pM1); point g(int i){return locate((0,i+n2min));}; point[] pM2=sequence(g,n2max-n2min+1); dot(pM2); dot("$A$",pA,S); dot("$B$",pB,S); dot("$C$",pC,NW); dot("$D$",pD,NW); shipout(bbox(xmargin = 1mm,invisible));