![]() ![]() |
unitsize(1cm); // On place le point (0,0) et on l'étiquette A au nord-ouest. dot(Label("$A$"),(0,0),NW,red); // Une syntaxe plus rapide pour la même chose. dot("$A$",(1,0),NW,red); // ... mais l'utilisation de Label permet de spécifier // séparément les mises en forme du point et de son label. dot(Label("$A$",blue),(2,0),NW,red); // Point rouge, étiquette bleue // Utilisation de fontsize pour la taille du label. dot(Label("$B$",fontsize(16pt)+.7green),(1,-1),E,4bp+purple); // Des fonctions séparées pour mettre point et/ou label : dot((1,-2)); label("$C$",(1,-2),S); // Ajout d'un cadre, distant des bords de l'image de 5mm shipout(bbox(5mm)); |
![]() ![]() |
unitsize(3cm); dot((0,0)); label("N",(0,0),N); label("E",(0,0),E); label("S",(0,0),S); label("W",(0,0),W); dot((1,0)); label("NE",(1,0),NE); label("SE",(1,0),SE); label("SW",(1,0),SW); label("NW",(1,0),NW); pair A=(0,-1); dot(A); label("N",A,2N); label("E",A,4E); label("S",A,6S); label("W",A,8W); pair M=(1,-1); dot(M); label("A",M,N+NE); // A au Nord Nord-Est label("B",M,S+SE); // B au Sud Sud-Est label("C",M,W+NW); // C au Ouest Nord-Ouest label("D",M,W+SW); // D au Ouest Sud-Ouest // Ajout d'un cadre, distant des bords de l'image de 5mm shipout(bbox(5mm)); |
![]() ![]() |
unitsize(3cm); // Labels en mode texte dot((0,0)); label("N",(0,0),5N); label("E",(0,0),5E); label("S",(0,0),5S); label("W",(0,0),5W); // Labels en mode maths dot((1,0)); label("$N$",(1,0),5N); label("$E$",(1,0),5E); label("$S$",(1,0),5S); label("$W$",(1,0),5W); // Ajout d'un cadre, distant des bords de l'image de 5mm shipout(bbox(5mm)); |
![]() ![]() |
size(7cm,0); draw(unitcircle); // On trace le cercle de centre O et rayon 1... dot(unitcircle,blue); // et les 4 points qui ont défini sa construction. defaultpen(fontsize(12pt)+red); // Stylo par défaut pen p2=fontsize(8pt)+paleblue; // Un stylo particulier pour certains labels. label("Nord (N)",(0,1),N); // Etiquette au nord du point (0,1) label("Est (E)",(1,0),E); // Etiquette à l'est du point (1,0) label("Sud (S)",(0,-1),S); // Etiquette au sud du point (0,-1) label("Ouest (W)",(-1,0),W); // Etiquette à l'ouest du point (-1,0) real t=sqrt(2)/2; // t est le réel égal à la moitie de racine carrée de 2. label("Nord-Est",(t,t),NE,p2); // Etiquette au nord-est du point (t,t). label("Nord-Ouest",(-t,t),NW,p2); label("Sud-Ouest",(-t,-t),SW,p2); label("Sud-Est",(t,-t),SE,p2); // Etiquette au sud-est du point (t,-t). // Ajout d'un cadre, distant des bords de l'image de 5mm shipout(bbox(5mm)); |
![]() ![]() |
unitsize(1cm); import math; add(grid(4,4,gray)); // Une grille de 4 sur 4 dot("$O$",(0,0),SE,green); // On place l'origine du repère. pair A=(1,1); // On définit le centre d'un octogone, real r=2; // le rayon de son cercle circonscrit... draw(shift(A)*rotate(22.5)*scale(r)*polygon(8)); // ... et on le trace. /* Quelques explications : polygon(8) : octogone inscrit dans le cercle trigonométrique scale(r) : agrandissement de rapport r=2 rotate(22.5) : rotation de centre O, d'angle 22,5° shift(A) : translation de vecteur vec(OA) */ pen p1=fontsize(12pt)+1bp+red; // Deux stylos différents pen p2=fontsize(9pt)+blue; // pour écrire les étiquettes. label("N",A+r*N,N,p1); // A+r*N désigne le point (1,1)+2*(0,1)=(1,3) label("E",A+r*E,E,p1); label("S",A+r*S,S,p1); // A+r*S désigne le point (1,1)+2*(0,-1)=(1,-1) label("W",A+r*W,W,p1); label(rotate(45)*"NE",A+r*NE,NE,p2); label(rotate(-45)*"NW",A+r*NW,NW,p2); label(rotate(45)*"SW",A+r*SW,SW,p2); label(rotate(-45)*"SE",A+r*SE,SE,p2); // Ajout d'un cadre, distant des bords de l'image de 5mm shipout(bbox(5mm,gray)); |
![]() ![]() |
size(7cm,0); // Un "tableau" de "pairs" prédéfinis par Asymptote pair p[]={N,S,E,W,NE,NW,SE,SW,NNE,NNW,SSE,SSW,ENE,ESE,WNW,WSW}; string n[]={"N","S","E","W","NE","NW","SE","SW","NNE","NNW","SSE","SSW","ENE","ESE","WNW","WSW"}; for(int k=0; k<p.length; ++k) dot(Label(n[k],align=p[k]),p[k]); // Ajout d'un cadre, distant des bords de l'image de 5mm shipout(bbox(5mm)); |
![]() ![]() |
unitsize(1cm); import math; defaultpen(fontsize(10pt)); label("$10$",(0,0),blue); label("$15$",(1,0),fontsize(15pt)+red); label("$20$",(2,0),fontsize(20pt)+green); label("$25$",(3,0),fontsize(25pt)+blue); label("$30$",(4,0),fontsize(30pt)+red); label("$35$",(5,0),fontsize(35pt)+green); label("$40$",(6,0),fontsize(40pt)+blue); label("$45$",(7,0),fontsize(45pt)+red); label("Comprendre la taille des \'etiquettes (labels).",(0,1),E); label("Comparer avec l'exemple suivant !",(7.5,-1),W); |
![]() ![]() |
unitsize(1cm); import math; /////////////////////////////////////////////////////////////////// import fontsize; // <<<<<<<<< pour obtenir des tailles plus grandes /////////////////////////////////////////////////////////////////// defaultpen(fontsize(10pt)); label("$10$",(0,0),blue); label("$15$",(1,0),fontsize(15pt)+red); label("$20$",(2,0),fontsize(20pt)+green); label("$25$",(3,0),fontsize(25pt)+blue); label("$30$",(4,0),fontsize(30pt)+red); label("$35$",(5,0),fontsize(35pt)+green); label("$40$",(6,0),fontsize(40pt)+blue); label("$45$",(7,0),fontsize(45pt)+red); label("Comprendre la taille des \'etiquettes (labels).",(0,1),E); label("Comparer avec l'exemple pr\'ec\'edent !",(7.5,-1),W); |
![]() ![]() |
unitsize(1cm,0); import math; add(grid(6,6,gray)); // Une grille de 6 sur 6 label("fontsize(8pt)+purple",(3,1),fontsize(8pt)+purple); label("fontsize(10pt)+green",(3,2),fontsize(10pt)+green); label("fontsize(12pt)+red",(3,3),fontsize(12pt)+red); label("fontsize(14pt)+blue",(3,4),fontsize(14pt)+blue); label("fontsize(16pt)+orange",(3,5),fontsize(16pt)+orange); |
![]() ![]() |
unitsize(1cm,1cm); real i=0,j=0; pen p1=AvantGarde(series="m",shape="n"); pen p2=Bookman(series="m",shape="n"); pen p3=Courier(series="m",shape="n"); pen p4=Helvetica(series="m",shape="n"); pen p5=NewCenturySchoolBook(series="m",shape="n"); pen p6=Palatino(series="m",shape="n"); pen p7=TimesRoman(series="m",shape="n"); pen p8=ZapfChancery(series="m",shape="n"); pen p9=Symbol(series="m",shape="n"); /* Une fonte possède une famille (family), un codage (encoding) et aussi : + une série (series) de valeur m par défaut Les autres valeurs sont obtenues par une combinaison de deux attributs : - un poids (qui correspond à la graisse de la fonte) : ul (ultral), el (extral), l (light), sl (semil), sb (semib), b (bold), eb (extrab), ub (ultrab), - une largeur : uc (ultrac), ec (extrac), c (condensed), sc (semic), m (medium), sx (semix), x (expanded), ex (extrax), ux (ultrax). + une forme (shape) dont la valeur par défaut est n Autres valeurs : n, it, sl, sc, ui, ol La forme correspond aux différents variations de la fonte : n pour normal, it pour italique, sl pour penché (slanted), sc pour les petites capitales. */ void testpolice(string phrase, pen police, real d=0) { label(phrase,(i,j),police); label("ABCDEFGHIJK",(i+3,j-d),police); label("abcdefghijk",(i+3,j-.5-d),police); label("0123456789",(i+3,j-1-d),police); j-=2+d; } testpolice("AvantGarde",p1); testpolice("Bookman",p2); testpolice("Courier",p3); testpolice("Helvetica",p4); testpolice("NewCenturySchoolBook",p5,.5); testpolice("Palatino",p6); testpolice("TimesRoman",p7); testpolice("ZapfChancery",p8); testpolice("Symbol",p9); shipout(bbox(3mm,white)); |
![]() ![]() |
unitsize(1cm,1cm); real i=0,j=0; pen p1=Helvetica(series="m",shape="n"); pen p2=Helvetica(series="m",shape="it"); pen p3=Helvetica(series="b",shape="n"); /* Une fonte possède une famille (family), un codage (encoding) et aussi : + une série (series) de valeur m par défaut Les autres valeurs sont obtenues par une combinaison de deux attributs : - un poids (qui correspond à la graisse de la fonte) : ul (ultral), el (extral), l (light), sl (semil), sb (semib), b (bold), eb (extrab), ub (ultrab), - une largeur : uc (ultrac), ec (extrac), c (condensed), sc (semic), m (medium), sx (semix), x (expanded), ex (extrax), ux (ultrax). + une forme (shape) dont la valeur par défaut est n Autres valeurs : n, it, sl, sc, ui, ol La forme correspond aux différents variations de la fonte : n pour normal, it pour italique, sl pour penché (slanted), sc pour les petites capitales. */ void testpolice(string phrase, pen police, real d=0) { label(phrase,(i,j),police); label("ABCDEFGHIJK",(i+3,j-d),police); label("abcdefghijk",(i+3,j-.5-d),police); label("0123456789",(i+3,j-1-d),police); j-=2+d; } testpolice("Helvetica",p1); testpolice("Helv.italique",p2); testpolice("Helv.gras",p3); shipout(bbox(3mm,white)); |
![]() ![]() |
size(7.5cm,0); int i=0; int j=0; bool components=false; pen p; void col(bool fill=false ... string[] s) { for(int n=0; n < s.length; ++n) { j -= 30; string s=s[n]; eval("p="+s+";",true); if(components) { real[] a=colors(p); for(int i=0; i < a.length; ++i) s += " "+(string) a[i]; } if(fill) label(s,(i+30,j),E,p,Fill(gray)); else label(s,(i+30,j),E,p); fill(box((i,j-5),(i+30,j+5)),p); } } col("palered"); col("lightred"); col("mediumred"); col("red"); col("heavyred"); col("brown"); col("darkbrown"); j -= 30; col("palegreen"); col("lightgreen"); col("mediumgreen"); col("green"); col("heavygreen"); col("deepgreen"); col("darkgreen"); j -= 30; col("paleblue"); col("lightblue"); col("mediumblue"); col("blue"); col("heavyblue"); col("deepblue"); col("darkblue"); j -= 30; col("palecyan"); col("lightcyan"); col("mediumcyan"); col("cyan"); col("heavycyan"); col("deepcyan"); col("darkcyan"); j -= 30; col("pink"); col("lightmagenta"); col("mediummagenta"); col("magenta"); col("heavymagenta"); col("deepmagenta"); col("darkmagenta"); j -= 30; col("paleyellow"); col("lightyellow"); col("mediumyellow"); col("yellow"); col("lightolive"); col("olive"); col("darkolive"); j -= 30; i += 300; j=0; col("palegray"); col("lightgray"); col("mediumgray"); col("gray"); col("heavygray"); col("deepgray"); col("darkgray"); j -= 30; col("black"); col("white",fill=true); j -= 30; col("orange"); col("fuchsia"); j -= 30; col("chartreuse"); col("springgreen"); j -= 30; col("purple"); col("royalblue"); j -= 30; col("Cyan"); col("Magenta"); col("Yellow"); col("Black"); j -= 30; col("cmyk+red"); col("cmyk+blue"); col("cmyk+green"); |
![]() ![]() |
// couleurs obtenues avec rgb(a,b,0), // avec a et b réels entre 0 et 1. unitsize(.6cm); defaultpen(fontsize(10pt)+blue); // Stylo par défaut int n=10; for (int i = 0; i <= n; ++i) { for (int j = 0; j <= n; ++j) { pen p =rgb(i/n,j/n,0); filldraw(shift(j,i)*unitsquare,p,.2bp+black); if(i==0) label(string(j/n),(j+.5,0),S); } label(string(i/n),(0,i+.5),W); } label("rgb(a,b,0)",(n/2,n+1),N); label("b",(n/2,-1),S); label("a",(-1.3,n/2),W); |
![]() ![]() |
// couleurs obtenues avec rgb(a,0,b), // avec a et b réels entre 0 et 1. unitsize(.6cm); defaultpen(fontsize(10pt)+blue); // Stylo par défaut int n=10; for (int i = 0; i <= n; ++i) { for (int j = 0; j <= n; ++j) { pen p =rgb(i/n,0,j/n); filldraw(shift(j,i)*unitsquare,p,.2bp+black); if(i==0) label(string(j/n),(j+.5,0),S); } label(string(i/n),(0,i+.5),W); } label("rgb(a,0,b)",(n/2,n+1),N); label("b",(n/2,-1),S); label("a",(-1.3,n/2),W); |
![]() ![]() |
// couleurs obtenues avec rgb(0,a,b), // avec a et b réels entre 0 et 1. unitsize(.6cm); defaultpen(fontsize(10pt)+blue); // Stylo par défaut int n=10; for (int i = 0; i <= n; ++i) { for (int j = 0; j <= n; ++j) { pen p =rgb(0,i/n,j/n); filldraw(shift(j,i)*unitsquare,p,.2bp+black); if(i==0) label(string(j/n),(j+.5,0),S); } label(string(i/n),(0,i+.5),W); } label("rgb(0,a,b)",(n/2,n+1),N); label("b",(n/2,-1),S); label("a",(-1.3,n/2),W); |
![]() ![]() |
frame f; label(f,"\textbf{Asymptote}",yellow,Fill(.5blue)); add(rotate(20)*scale(3)*f); |
![]() ![]() |
/* Ecrire le long d'un chemin */ import labelpath; unitsize(1cm); string t="\Large Ecrire sur un chemin"; path c=(0,0)..(2,2)..{dir(10)}(7,0.5); labelpath(t,c); draw(c, red); |
![]() ![]() |
import graph3; size(7.5cm,0); currentprojection=perspective(100,100,200,up=Y); draw(extrude("ABC",2Z),red); limits(O,10(X+Y+Z)); xaxis3(Label("$x$",1),blue,arrow=Arrow3); yaxis3(Label("$y$",1),blue,arrow=Arrow3); zaxis3(Label("$z$",1),blue,arrow=Arrow3); |
![]() ![]() |
import graph3; size(7.5cm,0); currentprojection=perspective(100,100,150); draw(extrude("ABC",3Z),green); limits(O,15X+10Y+15Z); xaxis3(Label("$x$",1),blue,arrow=Arrow3); yaxis3(Label("$y$",1),blue,arrow=Arrow3); zaxis3(Label("$z$",1),blue,arrow=Arrow3); |
![]() ![]() |
import graph3; size(7.5cm,0); currentprojection=perspective(100,100,50); draw(rotate(90,X)*extrude("ABC",Z),orange); limits(O,15X+10Y+7Z); xaxis3(Label("$x$",1),blue,arrow=Arrow3); yaxis3(Label("$y$",1),blue,arrow=Arrow3); zaxis3(Label("$z$",1),blue,arrow=Arrow3); |
![]() ![]() |
import three; size(7.5cm); currentprojection=perspective(camera=(3,5,6),up=Y); currentlight=Headlamp; surface p=extrude("$\alpha x^2$",2Z); draw(p,material(blue)); draw(shift(0,10,0)*p,material(blue,red)); |
![]() ![]() |
import three; size(7.5cm); currentprojection=orthographic(camera=(3,5,6),up=Y); currentlight=Headlamp; surface p=extrude("$\alpha x^2$",2Z); draw(p,material(blue)); draw(shift(0,10,0)*p,material(blue,yellow)); |
![]() ![]() |
// une façon d'obtenir des écritures décimales avec virgule : usepackage("icomma"); locale("fr_FR"); size(7cm,5cm,IgnoreAspect); int k=0; label(string(pi),(0,k)); label(format(pi),(0,--k)); label(format("%f",pi),(0,--k)); label(format("%.2f",pi),(0,--k)); label(format("%.5f",pi),(0,--k)); shipout(bbox(.5cm,Fill(white))); |
![]() ![]() |
/////////////////////////////////////// /// TEST de l'exemple précédent (vieux de 3 ans) /// avec un serveur réactualisé et une version d'Asymptote récente /////////////////////////////////////// // une façon d'obtenir des écritures décimales avec virgule : usepackage("icomma"); locale("fr_FR"); size(7cm,5cm,IgnoreAspect); int k=0; label(string(pi),(0,k)); label(format(pi),(0,--k)); label(format("%f",pi),(0,--k)); label(format("%.2f",pi),(0,--k)); label(format("%.5f",pi),(0,--k)); shipout(bbox(.5cm,Fill(white))); |
![]() ![]() |
usepackage("siunitx", "locale=DE"); // autre extension qui permet // d'obtenir des écritures décimales avec virgule au lieu de point. size(7cm,5cm,IgnoreAspect); int k=0; label(string(pi),(0,k)); label(format("\num{%f}",pi),(0,--k)); label(format("\num{%.2f}",pi),(0,--k)); label(format("\num{%.5f}",pi),(0,--k)); shipout(bbox(.5cm,Fill(white))); |
![]() ![]() |
// Un exemple de Philippe defaultpen(fontsize(9pt)+blue); size(8cm,0); pair x=0; pair y=(-6.5cm,0); label(format(6.66666), x, E); label("format(6.66666)", y, E); x+=(0,-1cm);y+=(0,-1cm); label(format("$x=%f$", 6.66666), x, E); label("format(\"\$x=\%f\$\", 6.66666)", y, E); x+=(0,-1cm);y+=(0,-1cm); label(format("$x=%.1f$", 6.66666), x, E); label("format(\"\$x=\%.1f\$\", 6.66666)", y, E); x+=(0,-1cm);y+=(0,-1cm); label(format("$x=%.2f$", 6.66666), x, E); label("format(\"\$x=\%.2f\$\", 6.66666)", y, E); x+=(0,-1cm);y+=(0,-1cm); label(format("$x=%.0f$", 6.66666), x, E); label("format(\"\$x=\%.0f\$\", 6.6666)", y, E); x+=(0,-1cm);y+=(0,-1cm); label(format("$x=%07.3f$", 6.66666), x, E); label("format(\"\$x=\%07.3f\$\", 6.6666)", y, E); x+=(0,-1cm);y+=(0,-1cm); label(format("$x=%7.3f$", 6.66666), x, E); label("format(\"\$x=\% 7.3f\$\", 6.6666)", y, E); x+=(0,-1cm);y+=(0,-1cm); label(format("$x=%g$", 66.666), x, E); label("format(\"\$x=\%g\$\", 66.66666)", y, E); x+=(0,-1cm);y+=(0,-1cm); label(format("$x=%g$", 666666.666), x, E); label("format(\"\$x=\%g\$\", 666666.666)", y, E); x+=(0,-1cm);y+=(0,-1cm); label(format("$x=%g$", 666666666.666), x, E); label("format(\"\$x=\%g\$\", 666666666.666)", y, E); x+=(0,-1cm);y+=(0,-1cm); label(format("$x=%e$", 666666.666), x, E); label("format(\"\$x=\%e\$\", 666666.666)", y, E); x+=(0,-1cm);y+=(0,-1cm); label(format("$x=%.2e$", 666666.666), x, E); label("format(\"\$x=\%.2e\$\", 666666.666)", y, E); x+=(0,-1cm);y+=(0,-1cm); label(format("$x=%i$", 6), x, E); label("format(\"\$x=\%i\$\", 6)", y, E); x+=(0,-1cm);y+=(0,-1cm); label(format("$x=%f$", 6.0), x, E); label("format(\"\$x=\%f\$\", 6.0)", y, E); x+=(0,-1cm);y+=(0,-1cm); label(format("$x=%+.2f$", 6.66666), x, E); label("format(\"\$x=\%+.2f\$\", 6.66666)", y, E); x+=(0,-1cm);y+=(0,-1cm); label(format("$x=%+.2f$", -6.66666), x, E); label("format(\"\$x=\%+.2f\$\", -6.66666)", y, E); x+=(0,-1cm);y+=(0,-1cm); label(format("$x=% .2f$", 6.666666), x, E); label("format(\"\$x=\% .2f\$\", 6.666666)", y, E); |
![]() ![]() |
// Un exemple (à peine modifié) de Philippe // d'utilisation de la fonction texfrac, // incluse dans son extension base_pi qui est téléchargeable ici : // base_pi.asy /* string texfrac(int p, int q, string factor="", bool signin=false, bool factorin=true, bool displaystyle=false, bool zero=true) */ import base_pi; size(8cm,0); defaultpen(.4green); for (int i=-2; i<=4; ++i) { label(texfrac(i,4), (i*cm,0)); label(texfrac(i,4,signin=true), (i*cm,-cm)); label(texfrac(i,4,factor="\pi"), (i*cm,-2cm)); label(texfrac(i,4,factor="\pi",factorin=false), (i*cm,-3cm)); label(texfrac(i,4,factor="\pi",signin=true,factorin=true), (i*cm,-4cm)); label(texfrac(i,4,factor="\pi",signin=true,factorin=false, displaystyle=true,zero=false), (i*cm,-5cm)); } |
![]() ![]() |
// Un exemple d'utilisation des fonctions rational et texfrac, // incluses dans l'extension base_pi qui est téléchargeable ici : // base_pi.asy /* struct rational int p; // numérateur int q; // dénominateur real ep; // précision avec laquelle le rationnel a été obtenu dans // le cas où il y convertion à partir d'un irrationnel. } rational operator init() {return new rational;} La fonction rational rational(real x, real ep=1/10^5) retourne un rationnel qui approche x en vérifiant abs(p/q-x)<=ep. string texfrac(rational x, string factor="", bool signin=false, bool factorin=true, bool displaystyle=false, bool zero=true) */ import base_pi; size(8cm,0); defaultpen(fontsize(9pt)+.6red); real x=0; rational rat; label(format("$\pi\approx %.15f$",pi),(x,-x)); for(int k=1; k<8;++k){ rat=rational(pi,ep=1/10^(k)); label(texfrac(rat)+format("$\approx %.15f$",rat.p/rat.q),(++x,-x)); } |
![]() ![]() |
unitsize(1cm); picture pic1; unitsize(pic1,1cm); draw(pic1,(0,0)--(5,2),red); label(pic1,"un label quelconque",(5,1),W); fill(pic1,box((2.5,0),(4.5,2)),green); picture pic2; unitsize(pic2,1cm); draw(pic2,(0,0)--(5,2),red); label(pic2,"un label quelconque",(5,1),W); layer(pic2); // Les constructions suivantes de pic2 : dans un nouveau calque, au dessus ! // Cela va permettre de dessiner au dessus d'un label ! fill(pic2,box((2.5,0),(4.5,2)),green); frame f1=pic1.fit(), f2=pic2.fit(), f3=bbox(pic1,paleblue,Fill); // Ajout des trois frames à currentpicture add(f1); add(f2,truepoint(S),S); add(f3,truepoint(S),S); |
![]() ![]() |
unitsize(1cm); path seg=(0,4)--(5,3); // définition d'un chemin (segment). transform t=shift(0,-.8); // définition d'une translation. DefaultHead=SimpleHead; draw("$a$",seg,Arrow()); draw(Label("$b$",BeginPoint),t*seg,Arrow()); draw(Label("$c$",EndPoint,red),t^2*seg,Arrow()); draw(Label("$d$",EndPoint,red),t^3*seg,S,Arrow()); draw(Label("$e$",EndPoint,align=S,red),t^4*seg,Arrow()); draw(Label("$f$",align=LeftSide),t^5*seg,Arrow()); draw(Label("$g$",align=RightSide),t^6*seg,Arrow()); draw(Label("$h$",align=Center),t^7*seg,Arrow()); draw(Label("$i$",align=Center,UnFill),t^8*seg,Arrow()); draw(Label("$j$",Relative(.25)),t^9*seg,Arrow()); draw(Label("$k$",Relative(.75),blue),t^10*seg,.5green,Arrow()); shipout(bbox(2mm,white)); |
![]() ![]() |
unitsize(1cm); real marge=3mm; pair z0=(0,0); pair z1=(0,2); draw("LARGE ELLIPSE",ellipse,z0,marge); draw("petite boite",box,z1,marge); // mais comment les relier ? cf. exemple suivant |
![]() ![]() |
unitsize(1cm); real marge=3mm; pair z0=(0,0); pair z1=(0,2); object objet_0=draw("LARGE ELLIPSE",ellipse,z0,marge); object objet_1=draw("petite boite",box,z1,marge); add(new void(picture pic, transform t) { draw(pic,point(objet_0,E,t){E}..{W}point(objet_1,E,t),Arrow); }); |
![]() ![]() |
unitsize(1cm); real marge=1mm; dot((0,0)); dot((2,0),red); // object align(object F, pair align) // returns a copy of object F aligned in the direction align // Objet à 1 bp = 1/72 inch = 127/360 mm = 0,035777 cm au nord du point (0,0) object objet_1=align(object("N",ellipse,marge),N); add(objet_1); // Objet à 5 bp ( = 0,1763888 cm ) à l'est du point (0,0) object objet_2=align(object("E",ellipse,marge),(5,0)); add(objet_2); // Objet à 10 bp ( = 0,35777 cm ) au sud du point (0,0) object objet_3=align(object("S",ellipse,marge),10S); add(objet_3); // Objet à 0 bp à l'ouest du point (0,0) object objet_4=align(object("W",ellipse,marge),realEpsilon*W); add(objet_4); // Objet à 2 cm à l'est du point (0,0), à 0 cm à l'est du point (2,0) object objet_5=align(object("E",ellipse,marge),(2,0)*3600/127); add(objet_5); |
![]() ![]() |
usepackage("esvect"); usepackage("fourier","upright"); import graph; unitsize(0.75cm); real u0=-1, r=3; int n=4; object objtemp, ui[]; pair z[]; for(int k=0; k<=n; ++k){ z.push(u0+k*r); objtemp = draw(Label(format("$u_%i$",k),align=N),ellipse,z[k],nullpen); ui.push(objtemp); label(format("$M_%i$",k),z[k],4S); } // Du "deferred drawing" pour le tracé des flèches entre les "objects". add(new void(picture pic, transform t) { for(int k=0; k<n; ++k) draw(pic,Label("$+r$",align=LeftSide), point(ui[k],NE,t){NE}..{S}point(ui[k+1],N,t), Arrow); }); xaxis(Ticks("%",Step=1,step=1,Size=1mm)); draw("$\vec{i}$",(0,0)--(1,0),1.5bp+red,Arrow(SimpleHead,size=8)); label("$O$",0,S,red); real abs[]={5,11}; for(real x:abs) labelx(string(x),x,realEpsilon*S); |
![]() ![]() |
usepackage("esvect"); usepackage("fourier","upright"); import graph; unitsize(0.7cm); real u0=-1, r=3; int n=4; object objtemp, ui[]; pair z[]; int uc[]={2,4}; // rang des termes connus for(int k=0; k<=n; ++k){ z.push(u0+k*r); bool b; for(int j:uc) if(j==k) b=true; if (b) objtemp=draw(Label(format("$u_%i$",k)+format("$=%f$",z[k].x),align=N), ellipse,z[k],red); else objtemp=draw(Label(format("$u_%i$",k),align=N), ellipse,z[k],nullpen); ui.push(objtemp); label(format("$M_%i$",k),z[k],S); } // Du "deferred drawing" pour le tracé des flèches entre les "objects". add(new void(picture pic, transform t) { for(int k=0; k<n; ++k) draw(pic,Label("$+r$",align=LeftSide), point(ui[k],NE,t){NE}..{S}point(ui[k+1],N,t), Arrow); }); xaxis(Ticks("%",Step=1,step=1,Size=1mm)); draw("$\vec{i}$",(0,0)--(1,0),1.5bp+red,Arrow(SimpleHead,size=8)); label("$O$",0,S,red); |
![]() ![]() |
usepackage("esvect"); usepackage("fourier","upright"); import graph; unitsize(0.27cm); real u0=2, r=2; int n=4; object objtemp, ui[]; pair z[]; int uc[]={3,4}; // rang des termes connus for(int k=0; k<=n; ++k){ z.push(u0*r^k); bool b; for(int j:uc) if(j==k) b=true; if (b) objtemp=draw(Label(format("$u_%i$",k)+format("$=%f$",z[k].x),align=N), ellipse,z[k],red); else objtemp=draw(Label(format("$u_%i$",k),align=N), ellipse,z[k],nullpen); ui.push(objtemp); label(format("$M_%i$",k),z[k],S); } // Du "deferred drawing" pour le tracé des flèches entre les "objects". add(new void(picture pic, transform t) { for(int k=0; k<n; ++k) draw(pic,Label("$\times q$",align=LeftSide), point(ui[k],NNE,t){N}..{S}point(ui[k+1],N,t), Arrow); }); xaxis(Ticks("%",Step=1,step=1,Size=1mm)); label("$O$",0,S,red); |
![]() ![]() |
// Comprendre le stylo (pen) "basealign" unitsize(1cm); pair c=(0,0); label("abc ijk pqr xyz",c,Align,blue); draw(c--c+3); // dessin de la ligne de base c=c-(0,1); label("abc ijk pqr xyz",c,Align,red+basealign); draw(c--c+3); // dessin de la ligne de base shipout(bbox(5mm,white)); |
![]() ![]() |
size(7.5cm); pair pO=(0,0); int n=100; pen p1=.5bp+blue, p2=paleblue, p3=blue, p4=.8white; transform t=scale(.4); pair[] z; z[1]=(1,0); for(int i=2; i<=n; ++i) { z[i]=rotate(90,z[i-1])*(z[i-1]+dir(z[i-1])); } for(int i=n; i>=2; --i) { real taux=1-i/(2*n); path ch=pO--z[i]--z[i-1]; fill(ch--cycle,taux*p2); draw(ch,p1); draw(t*format("$\sqrt{%i}$",i), ellipse,z[i],p3,Fill(p4)); } draw(pO--z[1],p1); draw(t*"$\sqrt1$", ellipse,z[1],p3,Fill(p4)); |
![]() ![]() |
size(7.5cm); pair pO=(0,0); int n=100; pen p1=.5bp+green, p2=palegreen, p3=blue, p4=paleyellow; transform t=scale(.4); pair[] z; z[1]=(1,0); for(int i=2; i<=n; ++i) { z[i]=rotate(90,z[i-1])*(z[i-1]+dir(z[i-1])); } for(int i=n; i>=2; --i) { real taux=1-i/(2*n); path ch=pO--z[i]--z[i-1]; fill(ch--cycle,taux*p2); draw(ch,p1); draw(t*format("$\sqrt{%i}$",i), ellipse,z[i],p3,Fill(p4)); } draw(pO--z[1],p1); draw(t*"$\sqrt1$", ellipse,z[1],p3,Fill(p4)); |
![]() ![]() |
/* Un exemple issu de la galerie du site officiel qui n'est dans cette partie que parce que c'est un texte et le logo de notre magnifique logiciel. :-)) */ import graph; size(7cm,4cm,IgnoreAspect); picture logo(pair s=0, pen q) { picture pic; pen p=linewidth(2)+fontsize(24)+q; real a=-0.4; real b=0.95; real y=5; path A=(a,0){dir(10)}::{dir(89.5)}(0,3y/2); draw(pic,A,p); draw(pic,(0,-y){dir(88.3)}::{dir(20)}(b,0),p); real c=0.5*a; pair z=(0,2.5); label(pic,"{\it symptote}",z,0.25*E+0.169S,p); pair w=(0,1.7); draw(pic,intersectionpoint(A,w-1--w)--w,p); axes(pic,p); return shift(s)*pic; } pair z=(-0.015,0.08); for(int x=0; x < 10; ++x) add(logo(0.1*x*z,gray(0.04*x))); add(logo(red)); |
![]() ![]() |
size(7cm,0); draw((0,0){dir(-45)}..{dir(45)}(10,0),red); draw((5,1)--(5,3)); dotfactor=10; dot((0,5)); dot((10,5)); label("Cr\'e\'e avec Asymptote "+version.VERSION,point(S),2S); shipout(bbox(5mm,gray)); |
Dernière modification le Wed May 7 10:29:15 CEST 2014 par G.Marris Valide XHTML