LABELS - EFFETS DE TEXTE (30)
Liste des figures
Figure fig_aa01_110408_label
figure 0001
Figure fig_aa02_110408_label
figure 0002
Figure fig_aa03_110408_label
figure 0003
Figure fig_aa04_110408_label
figure 0004
Figure fig_aa05_130408_label
figure 0005
Figure fig_ab01_030420_fontsize
figure 0006
Figure fig_ab01_030420_fontsize_package
figure 0007
Figure fig_ab01_130408_fontsize
figure 0008
Figure fig_ab02_020808_polices
figure 0009
Figure fig_ab03_020808_polices
figure 0010
Figure fig_ca01_010808_couleurs
figure 0011
Figure fig_cr01_050409_couleurs_rgb
figure 0012
Figure fig_cr02_050409_couleurs_rgb
figure 0013
Figure fig_cr03_050409_couleurs_rgb
figure 0014
Figure fig_da01_120409_decimaux
figure 0015
Figure fig_db01_120409_decimaux
figure 0016
Figure fig_ea01_260208_effet_texte
figure 0017
Figure fig_eb01_050408_effet_texte
figure 0018
Figure fig_ee01_300509_effet_texte_3D
figure 0019
Figure fig_ee02_300509_effet_texte_3D
figure 0020
Figure fig_ee03_300509_effet_texte_3D
figure 0021
Figure fig_fa01_150109_format
figure 0022
Figure fig_fa02_150109_format
figure 0023
Figure fig_la01_160208_label_layer
figure 0024
Figure fig_oa01_181208_object_label
figure 0025
Figure fig_oa02_181208_object_label
figure 0026
Figure fig_oa03_181208_object_label
figure 0027
Figure fig_pa01_160409_pen_basealign
figure 0028
Figure fig_xa01_190308_logo_asymptote
figure 0029
Figure fig_xa02_050209_version_asymptote
figure 0030
Asymptote - Figure 0001: fig_aa01_110408_label.asy
(Code compilé avec Asymptote version 1.95svn)
largeur320 Figure fig_aa01_110408_label
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));
Asymptote - Figure 0002: fig_aa02_110408_label.asy
(Code compilé avec Asymptote version 1.95svn)
largeur320 Figure fig_aa02_110408_label
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));
Asymptote - Figure 0003: fig_aa03_110408_label.asy
(Code compilé avec Asymptote version 1.95svn)
largeur320 Figure fig_aa03_110408_label
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));
Asymptote - Figure 0004: fig_aa04_110408_label.asy
(Code compilé avec Asymptote version 1.95svn)
largeur320 Figure fig_aa04_110408_label
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 Nord 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  u 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));
Asymptote - Figure 0005: fig_aa05_130408_label.asy
(Code compilé avec Asymptote version 1.95svn)
largeur320 Figure fig_aa05_130408_label
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));
Asymptote - Figure 0006: fig_ab01_030420_fontsize.asy
(Code compilé avec Asymptote version 1.95svn)
largeur320 Figure fig_ab01_030420_fontsize
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);
Asymptote - Figure 0007: fig_ab01_030420_fontsize_package.asy
(Code compilé avec Asymptote version 1.95svn)
largeur320 Figure fig_ab01_030420_fontsize_package
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);
Asymptote - Figure 0008: fig_ab01_130408_fontsize.asy
(Code compilé avec Asymptote version 1.95svn)
largeur320 Figure fig_ab01_130408_fontsize
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);
Asymptote - Figure 0009: fig_ab02_020808_polices.asy
(Code compilé avec Asymptote version 1.95svn)
largeur320 Figure fig_ab02_020808_polices
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));
Asymptote - Figure 0010: fig_ab03_020808_polices.asy
(Code compilé avec Asymptote version 1.95svn)
largeur320 Figure fig_ab03_020808_polices
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));
Asymptote - Figure 0011: fig_ca01_010808_couleurs.asy
(Code compilé avec Asymptote version 1.95svn)
largeur320 Figure fig_ca01_010808_couleurs
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");
Asymptote - Figure 0012: fig_cr01_050409_couleurs_rgb.asy
(Code compilé avec Asymptote version 1.95svn)
largeur320 Figure fig_cr01_050409_couleurs_rgb
// 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);
Asymptote - Figure 0013: fig_cr02_050409_couleurs_rgb.asy
(Code compilé avec Asymptote version 1.95svn)
largeur320 Figure fig_cr02_050409_couleurs_rgb
// 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);
Asymptote - Figure 0014: fig_cr03_050409_couleurs_rgb.asy
(Code compilé avec Asymptote version 1.95svn)
largeur320 Figure fig_cr03_050409_couleurs_rgb
// 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);
Asymptote - Figure 0015: fig_da01_120409_decimaux.asy
(Code compilé avec Asymptote version 1.95svn)
largeur320 Figure fig_da01_120409_decimaux
// une façon d'obtenir des écritures décimales avec virgule :
usepackage("icomma"); // cela fonctionne sur mon serveur (cf. ci-contre)
// (serveur sous ubuntu, avec locale qui donne LC_NUMERIC="fr_FR.UTF-8")
// ... mais cela ne va pas sur mon pc sous XP. :-(

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)));
Asymptote - Figure 0016: fig_db01_120409_decimaux.asy
(Code compilé avec Asymptote version 1.95svn)
largeur320 Figure fig_db01_120409_decimaux
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)));
Asymptote - Figure 0017: fig_ea01_260208_effet_texte.asy
(Code compilé avec Asymptote version 1.95svn)
largeur320 Figure fig_ea01_260208_effet_texte
frame f;
label(f,"\textbf{Asymptote}",yellow,Fill(.5blue));
add(rotate(20)*scale(3)*f);
Asymptote - Figure 0018: fig_eb01_050408_effet_texte.asy
(Code compilé avec Asymptote version 1.95svn)
largeur320 Figure fig_eb01_050408_effet_texte
/* 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);



Asymptote - Figure 0019: fig_ee01_300509_effet_texte_3D.asy
(Code compilé avec Asymptote version 1.95svn)
largeur320 Figure fig_ee01_300509_effet_texte_3D
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);
Asymptote - Figure 0020: fig_ee02_300509_effet_texte_3D.asy
(Code compilé avec Asymptote version 1.95svn)
largeur320 Figure fig_ee02_300509_effet_texte_3D
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);
Asymptote - Figure 0021: fig_ee03_300509_effet_texte_3D.asy
(Code compilé avec Asymptote version 1.95svn)
largeur320 Figure fig_ee03_300509_effet_texte_3D
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);
Asymptote - Figure 0022: fig_fa01_150109_format.asy
(Code compilé avec Asymptote version 1.95svn)
largeur320 Figure fig_fa01_150109_format
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));
Asymptote - Figure 0023: fig_fa02_150109_format.asy
(Code compilé avec Asymptote version 1.95svn)
largeur320 Figure fig_fa02_150109_format
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));
Asymptote - Figure 0024: fig_la01_160208_label_layer.asy
(Code compilé avec Asymptote version 1.95svn)
largeur320 Figure fig_la01_160208_label_layer
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);
Asymptote - Figure 0025: fig_oa01_181208_object_label.asy
(Code compilé avec Asymptote version 1.95svn)
largeur320 Figure fig_oa01_181208_object_label
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
Asymptote - Figure 0026: fig_oa02_181208_object_label.asy
(Code compilé avec Asymptote version 1.95svn)
largeur320 Figure fig_oa02_181208_object_label
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);
});

Asymptote - Figure 0027: fig_oa03_181208_object_label.asy
(Code compilé avec Asymptote version 1.95svn)
largeur320 Figure fig_oa03_181208_object_label
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);
Asymptote - Figure 0028: fig_pa01_160409_pen_basealign.asy
(Code compilé avec Asymptote version 1.95svn)
largeur320 Figure fig_pa01_160409_pen_basealign
// 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));
Asymptote - Figure 0029: fig_xa01_190308_logo_asymptote.asy
(Code compilé avec Asymptote version 1.95svn)
largeur320 Figure fig_xa01_190308_logo_asymptote
/* 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));
Asymptote - Figure 0030: fig_xa02_050209_version_asymptote.asy
(Code compilé avec Asymptote version 1.95svn)
largeur320 Figure fig_xa02_050209_version_asymptote
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 Sun May 23 00:23:11 CEST 2010 par G.Marris       Valide XHTML