## Asymptote Generalities – fig1760

Category: Asymptote,Examples 2D,GeneralitiesPh. Ivaldi @ 5 h 39 min

 (Compiled with Asymptote version 2.14svn-r5318)

import graph;
size(6cm,0);

path a = polargraph(new real(real t){return t;}, 0, 3pi, operator ..);
path b = polargraph(new real(real t){return 2t;}, 0, 3.75pi, operator ..);

real sharp=40;
path c=relpoint(a,1){relpoint(a,1)-postcontrol(a,length(a)-1)}..{dir(sharp)}relpoint(b,1);

fill(a..c..reverse(b)&cycle,0.8*red);
shipout(bbox(2mm, Fill(0.15*blue)));



Étiquettes : , , , , ,

## Asymptote using graph.asy – fig0010

Category: Asymptote,Examples 2D,graph.asyPh. Ivaldi @ 3 h 10 min

 (Compiled with Asymptote version 2.14svn-r5318)

size(8cm,0,false);
import graph;

xlimits(0, 200);
ylimits(-50, 50);
yaxis("y-value");
xaxis("x-value");



Étiquettes : ,

## Asymptote using graph.asy – fig0020

Category: Asymptote,Examples 2D,graph.asyPh. Ivaldi @ 4 h 10 min

 (Compiled with Asymptote version 2.14svn-r5318)

size(8cm,0,false);
import graph;

xlimits(0, 200);
ylimits(-50, 50);
yaxis( "y-value", Left);
xaxis( "x-value", Bottom(true));



Étiquettes : ,

## Asymptote using graph.asy – fig0030

Category: Asymptote,Examples 2D,graph.asyPh. Ivaldi @ 5 h 10 min

 (Compiled with Asymptote version 2.14svn-r5318)

size(8cm,0,false);
import graph;

xlimits( -100, 100);
ylimits( -50, 50);
yaxis( "y" , RightTicks());
xaxis( "x", Ticks());



Étiquettes : ,

## Asymptote using graph.asy – fig0040

Category: Asymptote,Examples 2D,graph.asyPh. Ivaldi @ 6 h 10 min

 (Compiled with Asymptote version 2.14svn-r5318)

size(8cm,0);
import graph;

xlimits( -100, 100);
ylimits( -50, 50);
yaxis( "$y$" , Ticks(Label(currentpen+fontsize(8),align=E)));
xaxis( "$x$", Ticks(Label(currentpen+fontsize(8))));



Étiquettes : ,

## Asymptote using graph.asy – fig0050

Category: Asymptote,Examples 2D,graph.asyPh. Ivaldi @ 7 h 10 min

 (Compiled with Asymptote version 2.14svn-r5318)

size(8cm,0);
import graph;

xlimits( -100, 100);
ylimits( -50, 50);

defaultpen(overwrite(SuppressQuiet));

yaxis( "$y$" , Ticks(Label(.8red+fontsize(8),align=E)), p=.8red);
xaxis( "$x$", Ticks(Label(.8blue+fontsize(8))), p=.8blue);



Étiquettes : , ,

## Asymptote using graph.asy – fig0060

Category: Asymptote,Examples 2D,graph.asyPh. Ivaldi @ 8 h 10 min

 (Compiled with Asymptote version 2.14svn-r5318)

size(8cm,0);
import graph;

xlimits( -3pi, 3pi);
ylimits( -5, 5);
yaxis( "y" , LeftRight(), RightTicks(pTick=.8red, ptick=lightgrey, extend=true));
xaxis( "x-value", BottomTop(), Ticks(Label("$%.2f$",red), Step=2pi, step=pi/5, pTick=.8red, ptick=lightgrey, extend=true));



Étiquettes : , ,

## Asymptote using graph.asy – fig0070

Category: Asymptote,Examples 2D,graph.asyPh. Ivaldi @ 9 h 10 min

 (Compiled with Asymptote version 2.14svn-r5318)

size(8cm,0);
import graph;

xlimits( -3pi, 3pi);
xaxis(BottomTop(), Ticks(Label("$%.2f$",red), Step=2pi, step=pi/5, pTick=.8red));



Étiquettes : , ,

## Asymptote using graph.asy – fig0080

Category: Asymptote,Examples 2D,graph.asyPh. Ivaldi @ 10 h 10 min

 (Compiled with Asymptote version 2.14svn-r5318)

size(8cm,0);
import graph;
texpreamble("\usepackage[frenchb]{babel}");

xlimits( -3pi, 3pi);
xaxis(BottomTop(), Ticks(Label("$\nombre{%.2f}$",red), Step=2pi, step=pi/5, pTick=.8red));



Étiquettes : , , ,

## Asymptote using graph.asy – fig0090

Category: Asymptote,Examples 2D,graph.asyPh. Ivaldi @ 11 h 10 min

 (Compiled with Asymptote version 2.14svn-r5318)

size(8cm,0);
import graph;
texpreamble("\usepackage[frenchb]{babel}");

xlimits( -10000, 10000);
xaxis(BottomTop(), Ticks(Label("$\nombre{%0.f}$",red), Step=5000, step=500, pTick=.8red));



Étiquettes : , , ,

## Asymptote using graph.asy – fig0110

Category: Asymptote,Examples 2D,graph.asyPh. Ivaldi @ 12 h 10 min

 (Compiled with Asymptote version 2.14svn-r5318)

// An other solution...
size(8cm,0);
import graph;
usepackage("icomma");

xlimits( -3pi, 3pi);

xaxis(Ticks(Label(red), Step=2pi,step=pi/5,pTick=.8red));



Étiquettes : , , ,

## Asymptote using graph.asy – fig0120

Category: Asymptote,Examples 2D,graph.asyPh. Ivaldi @ 13 h 10 min

 (Compiled with Asymptote version 2.14svn-r5318)

size(6cm,0);
import graph;

xlimits( -3, 3);
ylimits( -3, 3);
xaxis(Ticks("%"));
yaxis(Ticks("%"));

labelx(1,2S);
labely(1,2W);
labelx("$O$",0,SW);
dot((0,0));



Étiquettes : , ,

## Asymptote using graph.asy – fig0130

Category: Asymptote,Examples 2D,graph.asyPh. Ivaldi @ 14 h 10 min

 (Compiled with Asymptote version 2.14svn-r5318)

import graph;

unitsize(x=1cm);
real f(real x){return x;}
xlimits( -3, 3);
ylimits( -3, 3);
draw(graph(f,-3,3));
xaxis(Label("$x$",position=EndPoint, align=SE),Ticks("%",extend=true), Arrow);
yaxis(Label("$y$",position=EndPoint, align=NW),Ticks("%",extend=true), Arrow);

labelx(1,2S);
labely(1,2W);
labelx("$O$",0,SE);
dot((0,0));



Étiquettes : , ,

## Asymptote using graph.asy – fig0140

Category: Asymptote,Examples 2D,graph.asyPh. Ivaldi @ 15 h 10 min

 (Compiled with Asymptote version 1.84svn-r4619)

unitsize(x=1cm);
import graph;

xlimits( -3, 2);
ylimits( -3, 3);
xaxis(xmin=-3, xmax=2,Ticks("%"));
yaxis(ymin=-3, ymax=3, Ticks("%"));

labelx(1,2S);
labely(1,2W);
labelx("$O$",0,SW);
dot((0,0));
draw(Label("$x$",position=Relative(1),align=2S),(currentpicture.userMin().x-1,0)--(currentpicture.userMax().x+1,0),Arrow);
draw(Label("$y$",position=Relative(1),align=2W),(0,currentpicture.userMin().y-1)--(0,currentpicture.userMax().y+1),Arrow);



Étiquettes : , ,

## Asymptote using graph.asy – fig0150

Category: Asymptote,Examples 2D,graph.asyPh. Ivaldi @ 16 h 10 min

 (Compiled with Asymptote version 2.14svn-r5318)

import graph;
unitsize(1cm);

xlimits( -3, 2);
ylimits( -3, 3);
xaxis("$x$",Ticks("%",begin=false, end=false),arrow=Arrow);
yaxis("$y$",Ticks("%",begin=false, end=false),arrow=Arrow);

labelx(1,2S);
labely(1,2W);
labelx("$O$",0,SW);
dot((0,0));



Étiquettes : , ,

## Asymptote using graph.asy – fig0160

Category: Asymptote,Examples 2D,graph.asyPh. Ivaldi @ 17 h 10 min

 (Compiled with Asymptote version 2.14svn-r5318)

import graph;
unitsize(1cm);

xlimits( -3, 2);
ylimits( -3, 3);
xaxis("$x$",Ticks(ticklabel=NoZeroFormat,1bp+red,end=false),arrow=Arrow);
yaxis("$y$",Ticks(ticklabel=NoZeroFormat,1bp+red,end=false),arrow=Arrow);

labelx(scale(.75)*"$O$",0,SW);



Étiquettes : , ,

## Asymptote using graph.asy – fig0170

Category: Asymptote,Examples 2D,graph.asyPh. Ivaldi @ 18 h 10 min

 (Compiled with Asymptote version 2.14svn-r5318)

import graph;
unitsize(1cm);

xlimits( -3, 2);
ylimits( -3, 3);
xaxis("$x$",Ticks(modify=NoZero,1bp+red,end=false),arrow=Arrow);
yaxis("$y$",Ticks(modify=NoZero,1bp+red,end=false),arrow=Arrow);

labelx(scale(.75)*"$O$",0,SW);



Étiquettes : , ,

## Asymptote using graph.asy – fig0180

Category: Asymptote,Examples 2D,graph.asyPh. Ivaldi @ 19 h 10 min

 (Compiled with Asymptote version 2.14svn-r5318)

import graph;
unitsize(1cm);

xlimits( -3, 2);
ylimits( -3, 3);

xaxis("$x$", Ticks(ticklabel=OmitFormat(-2,-1,2),
modify=NoZero,
1bp+red,
end=false),
arrow=Arrow);

yaxis("$y$", Ticks(ticklabel=OmitFormat(-2,-1,2,3),
modify=NoZero,
1bp+red,
end=false),
arrow=Arrow);

labelx(scale(.75)*"$O$",0,SW);



Étiquettes : , ,

## Asymptote using graph.asy – fig0190

Category: Asymptote,Examples 2D,graph.asyPh. Ivaldi @ 20 h 10 min

 (Compiled with Asymptote version 2.14svn-r5318)

import graph;
unitsize(x=1cm, y=1.5cm);

xlimits( -3, 2);
ylimits( -2, 2);
xaxis(BottomTop, Ticks("%",extend=true, ptick=lightgrey));
yaxis(LeftRight, Ticks("%",extend=true, ptick=lightgrey));
xequals(Label("$y$",align=2NW),0,ymin=-2.5, ymax=2.5, p=linewidth(1.5pt), Arrow(2mm));
yequals(Label("$x$",align=2SE),0,xmin=-3.5, xmax=2.5, p=linewidth(1.5pt), Arrow(2mm));
labelx(Label("$1$",UnFill), 1);
labely(Label("$1$",UnFill), 1);
labelx("$O$",0,SW);
dot((0,0));



Étiquettes : , , ,

## Asymptote using graph.asy – fig0200

Category: Asymptote,Examples 2D,graph.asyPh. Ivaldi @ 21 h 10 min

 (Compiled with Asymptote version 1.84svn-r4619)

import graph;

void graphicrules(picture pic=currentpicture, string prefix=defaultfilename, real unit=1cm,
real xunit=unit != 0 ? unit : 0,
real yunit=unit != 0 ? unit : 0,
real xmin, real xmax, real ymin, real ymax)
{
xlimits(xmin, xmax);
ylimits(ymin, ymax);
unitsize(x=xunit, y=yunit);
}

void grid(picture pic=currentpicture,
real xmin=pic.userMin().x, real xmax=pic.userMax().x,
real ymin=pic.userMin().y, real ymax=pic.userMax().y,
real xStep=1, real xstep=.5,
real yStep=1, real ystep=.5,
pen pTick=nullpen, pen ptick=grey, bool above=false)
{
draw(pic,box((xmin,ymin),(xmax,ymax)),invisible);
xaxis(pic, BottomTop, xmin, xmax, Ticks("%",extend=true,Step=xStep,step=xstep,pTick=pTick,ptick=ptick), above=above);
yaxis(pic, LeftRight, ymin, ymax, Ticks("%",extend=true,Step=yStep,step=ystep,pTick=pTick,ptick=ptick), above=above);
}

void cartesianaxis(picture pic=currentpicture,
Label Lx=Label("$x$",align=S),
Label Ly=Label("$y$",align=W),
real xmin=pic.userMin().x, real xmax=pic.userMax().x,
real ymin=pic.userMin().y, real ymax=pic.userMax().y,
real extrawidth=1, real extraheight=extrawidth,
pen p=currentpen,
ticks xticks=Ticks("%",pTick=nullpen, ptick=grey),
ticks yticks=Ticks("%",pTick=nullpen, ptick=grey),
bool above=true,
arrowbar arrow=Arrow)
{
extraheight= cm*extraheight/(2*pic.yunitsize);
extrawidth = cm*extrawidth/(2*pic.xunitsize);
yequals(pic, Lx, 0, xmin-extrawidth, xmax+extrawidth, p, above, arrow=arrow);
xequals(pic, Ly, 0, ymin-extraheight, ymax+extraheight, p, above, arrow=arrow);
yequals(pic, 0, xmin, xmax, p, xticks, above);
xequals(pic, 0, ymin, ymax, p, yticks, above);
}

void labeloij(picture pic=currentpicture,
Label Lo=Label("$O$",NoFill),
Label Li=Label("$\vec{\imath}$",NoFill),
Label Lj=Label("$\vec{\jmath}$",NoFill),
pair diro=SW, pair diri=S, pair dirj=W,
pen p=scale(2)*currentpen,
filltype filltype=NoFill, arrowbar arrow=Arrow(2mm))
{
if (Lo.filltype==NoFill) Lo.filltype=filltype;
if (Li.filltype==NoFill) Li.filltype=filltype;
if (Lj.filltype==NoFill) Lj.filltype=filltype;
labelx(pic, Lo, 0, diro, p);
draw(pic, Li, (0,0)--(1,0), diri, p, arrow);
draw(pic, Lj, (0,0)--(0,1), dirj, p, arrow);
dot(pic, (0,0), dotsize(p)+p);
}

//The figure starts here
graphicrules(yunit=1.5cm, xmin=-3, xmax=3, ymin=-2, ymax=2);
grid();
cartesianaxis(arrow=None);
labeloij(UnFill);



Étiquettes : , , , ,

## Asymptote using graph.asy – fig0210

Category: Asymptote,Examples 2D,graph.asyPh. Ivaldi @ 22 h 10 min

 (Compiled with Asymptote version 1.84svn-r4619)

import graph;

void graphicrules(picture pic=currentpicture, real unit=1cm,
real xunit=unit != 0 ? unit : 0,
real yunit=unit != 0 ? unit : 0,
real xmin, real xmax, real ymin, real ymax)
{
xlimits(xmin, xmax);
ylimits(ymin, ymax);
pic.unitsize(x=xunit,y=yunit);
}

picture millimeterpaper(picture pic=currentpicture, pair O=(0,0),
real xmin=infinity, real xmax=infinity,
real ymin=infinity, real ymax=infinity,
pen p=.5bp+orange)
{
picture opic;
real
cofx=pic.xunitsize/cm,
cofy=pic.yunitsize/cm;
real
xmin= (xmin == infinity) ? pic.userMin().x*cofx : xmin*cofx,
xmax= (xmax == infinity) ? pic.userMax().x*cofx : xmax*cofx,
ymin= (ymin == infinity) ? pic.userMin().y*cofy : ymin*cofy,
ymax= (ymax == infinity) ? pic.userMax().y*cofy : ymax*cofy;
path
ph=(xmin*cm,0)--(xmax*cm,0),
pv=(0,ymin*cm)--(0,ymax*cm);
real [] step={5, 1, .5, .1};
pen [] p_={ p, scale(.7)*p, scale(.4)*p, scale(.2)*p};

for (int j=0; j<4; ++j)
{
for (real i=O.y; i<= ymax; i+=step[j])
draw(opic, shift(0,i*cm)*ph, p_[j]);
for (real i=O.y; i>=ymin ; i-=step[j])
draw(opic, shift(0,i*cm)*ph, p_[j]);
for (real i=O.x; i<=xmax; i+=step[j])
draw(opic, shift(i*cm,0)*pv, p_[j]);
for (real i=O.x; i>=xmin; i-=step[j])
draw(opic, shift(i*cm,0)*pv, p_[j]);
}

return opic;
}

graphicrules(xunit=2cm, yunit=1.5cm, xmin=-3, xmax=2, ymin=-2, ymax=2);
xaxis(xmin=-3, xmax=2, Ticks("%"));
yaxis(ymin=-2, ymax=2, Ticks("%"));
xequals(Label("$y$",align=2NW),0,ymin=-2.25, ymax=2.25, p=linewidth(1.5pt), Arrow(2mm));
yequals(Label("$x$",align=2SE),0,xmin=-3.25, xmax=2.25, p=linewidth(1.5pt), Arrow(2mm));
labelx(Label("$1$",UnFill), 1);
labely(Label("$1$",UnFill), 1);
labelx("$O$",0,SW);
dot((0,0));



Étiquettes : ,

## Asymptote using graph.asy – fig0220

Category: Asymptote,Examples 2D,graph.asyPh. Ivaldi @ 23 h 10 min

 (Compiled with Asymptote version 2.14svn-r5318)

/*One can see this graphe drawed with my package HERE*/
import graph;
import patterns;
usepackage("mathrsfs");

unitsize(2cm,1.5cm);
real xmin=-1,xmax=4;
real ymin=-1,ymax=5;

// Definition of fonctions f and g :
real f(real x) {return 4x-x^2+4/(x^2+1)^2;}
real g(real x) {return x-1+4/(x^2+1)^2;}

// Trace the curves :
path Cf=graph(f,xmin,xmax,n=400);
path Cg=graph(g,xmin,xmax,n=400);
draw(Cf,linewidth(1bp));
draw(Cg,linewidth(1bp));
xlimits(xmin,xmax,Crop);
ylimits(ymin,ymax,Crop);

// The grid :
xaxis(BottomTop, xmin, xmax, Ticks("%", Step=1, step=0.5, extend=true, ptick=lightgrey));
yaxis(LeftRight, ymin, ymax, Ticks("%", Step=1, step=0.5, extend=true, ptick=lightgrey));
// The axis.
xequals(Label("$y$",align=W),0,ymin=ymin-0.25, ymax=ymax+0.25,
Ticks(NoZero,pTick=nullpen, ptick=grey),
p=linewidth(1pt), Arrow(2mm));
yequals(Label("$x$",align=S),0,xmin=xmin-0.25, xmax=xmax+0.25,
Ticks(NoZero,pTick=nullpen, ptick=grey),
p=linewidth(1pt), Arrow(2mm));

labelx(Label("$O$",NoFill), 0, SW);
draw(Label("$\vec{\imath}$",align=S,UnFill),
(0,0)--(1,0),scale(2)*currentpen,Arrow);
draw(Label("$\vec{\jmath}$",align=W,UnFill),
(0,0)--(0,1),scale(2)*currentpen,Arrow);
dot((0,0));

label("$\mathscr{C}_f$",(2.25,f(2.25)),2N);
label("$\mathscr{C}_f$",(2.25,g(2.25)),2S);

// Les hachures.
path vline=(1,-1)--(1,5);
fill(buildcycle(vline,graph(f,1,4),graph(g,1,4)),pattern("hachure"));



Étiquettes : , , , , ,

## Asymptote using graph.asy – fig0230

Category: Asymptote,Examples 2D,graph.asyPh. Ivaldi @ 0 h 10 min

 (Compiled with Asymptote version 2.14svn-r5318)

import graph;
unitsize(x=1cm,y=2cm);

struct rational
{
int p;
int q;
real ep=1/10^5;
};

rational operator init() {return new rational;}

rational rational(real x, real ep=1/10^5)
{
rational orat;
int q=1;
while (abs(round(q*x)-q*x)>ep)
{
++q;
}
orat.p=round(q*x);
orat.q=q;
orat.ep=ep;
return orat;
}

int pgcd(int a, int b)
{
int a_=abs(a), b_=abs(b), r=a_;
if (b_>a_) {a_=b_; b_=r; r=a_;}
while (r>0)
{
r=a_%b_;
a_=b_;
b_=r;
}
return a_;
}

string texfrac(int p, int q,
string factor="",
bool signin=false, bool factorin=true,
bool displaystyle=false,
bool zero=true)
{
if (p==0) return (zero ? "$0$" : "");
string disp= displaystyle ? "$\displaystyle " : "$";
int pgcd=pgcd(p,q);
int num= round(p/pgcd), den= round(q/pgcd);
string nums;
if (num==1)
if (factor=="" || (!factorin && (den !=1))) nums="1"; else nums="";
else
if (num==-1)
if (factor=="" || (!factorin && (den !=1))) nums="-1"; else nums="-";
else nums= (string) num;
if (den==1) return "$" + nums + factor + "$";
else
{
string dens= (den==1) ? "" : (string) den;
if (signin || num>0)
if (factorin)
return disp + "\frac{" + nums + factor + "}{" + (string) dens + "}$"; else return disp + "\frac{" + nums + "}{" + (string) dens + "}"+ factor + "$";
else
{
if (num==-1)
if (factor=="" || !factorin) nums="1"; else nums="";
else nums=(string)(abs(num));
if (factorin)
return disp + "-\frac{" + nums + factor + "}{" + (string) dens + "}$"; else return disp + "-\frac{" + nums + "}{" + (string) dens + "}"+ factor + "$";
}
}
}

string texfrac(rational x,
string factor="",
bool signin=false, bool factorin=true,
bool displaystyle=false,
bool zero=true)
{
return texfrac(x.p, x.q, factor, signin, factorin, displaystyle, zero);
}

ticklabel labelfrac(real ep=1/10^5, real factor=1.0,
string symbol="",
bool signin=false, bool symbolin=true,
bool displaystyle=false,
bool zero=true)
{
return new string(real x)
{
return texfrac(rational(x/factor), symbol, signin, symbolin, displaystyle, zero);
};
}

ticklabel labelfrac=labelfrac();

xlimits( -2pi, 2pi);
ylimits( -1, 1);

yaxis("y",LeftRight , Ticks(labelfrac,Step=.5,step=.25, ptick=grey, extend=true));

xaxis("$\theta$",BottomTop, Ticks(labelfrac(factor=pi,symbol="\pi",symbolin=false),
Step=pi/2, step=pi/4, ptick=grey, extend=true));

draw(graph(new real(real x){return sin(x);},-2pi,2pi));
draw(graph(new real(real x){return cos(x);},-2pi,2pi), .8red);



Étiquettes : , , , , ,

## Asymptote using graph.asy – fig0240

Category: Asymptote,Examples 2D,graph.asyPh. Ivaldi @ 1 h 10 min

 (Compiled with Asymptote version 1.84svn-r4619)

import graph;

// public real xunit=1cm,yunit=1cm;

void graphicrules(picture pic=currentpicture, string prefix=defaultfilename, real unit=1cm,
real xunit=unit != 0 ? unit : 0,
real yunit=unit != 0 ? unit : 0,
real xmin, real xmax, real ymin, real ymax)
{
xlimits(xmin, xmax);
ylimits(ymin, ymax);
unitsize(x=xunit, y=yunit);
}

struct rational
{
int p;
int q;
real ep=1/10^5;
};

rational operator init() {return new rational;}

rational rational(real x, real ep=1/10^5)
{
rational orat;
int q=1;
while (abs(round(q*x)-q*x)>ep)
{
++q;
}
orat.p=round(q*x);
orat.q=q;
orat.ep=ep;
return orat;
}

int pgcd(int a, int b)
{
int a_=abs(a), b_=abs(b), r=a_;
if (b_>a_) {a_=b_; b_=r; r=a_;}
while (r>0)
{
r=a_%b_;
a_=b_;
b_=r;
}
return a_;
}

string texfrac(int p, int q,
string factor="",
bool signin=false, bool factorin=true,
bool displaystyle=false,
bool zero=true)
{
if (p==0) return (zero ? "$0$" : "");
string disp= displaystyle ? "$\displaystyle " : "$";
int pgcd=pgcd(p,q);
int num= round(p/pgcd), den= round(q/pgcd);
string nums;
if (num==1)
if (factor=="" || (!factorin && (den !=1))) nums="1"; else nums="";
else
if (num==-1)
if (factor=="" || (!factorin && (den !=1))) nums="-1"; else nums="-";
else nums= (string) num;
if (den==1) return "$" + nums + factor + "$";
else
{
string dens= (den==1) ? "" : (string) den;
if (signin || num>0)
if (factorin)
return disp + "\frac{" + nums + factor + "}{" + (string) dens + "}$"; else return disp + "\frac{" + nums + "}{" + (string) dens + "}"+ factor + "$";
else
{
if (num==-1)
if (factor=="" || !factorin) nums="1"; else nums="";
else nums=(string)(abs(num));
if (factorin)
return disp + "-\frac{" + nums + factor + "}{" + (string) dens + "}$"; else return disp + "-\frac{" + nums + "}{" + (string) dens + "}"+ factor + "$";
}
}
}

string texfrac(rational x,
string factor="",
bool signin=false, bool factorin=true,
bool displaystyle=false,
bool zero=true)
{
return texfrac(x.p, x.q, factor, signin, factorin, displaystyle, zero);
}

ticklabel labelfrac(real ep=1/10^5, real factor=1.0,
string symbol="",
bool signin=false, bool symbolin=true,
bool displaystyle=false,
bool zero=true)
{
return new string(real x)
{
return texfrac(rational(x/factor), symbol, signin, symbolin, displaystyle, zero);
};
}

ticklabel labelfrac=labelfrac();

void grid(picture pic=currentpicture,
real xmin=pic.userMin().x, real xmax=pic.userMax().x,
real ymin=pic.userMin().y, real ymax=pic.userMax().y,
real xStep=1, real xstep=.5,
real yStep=1, real ystep=.5,
pen pTick=nullpen, pen ptick=grey, bool above=true)
{
xaxis(pic, BottomTop, xmin, xmax, Ticks("%",extend=true,Step=xStep,step=xstep,pTick=pTick,ptick=ptick), above=above);
yaxis(pic, LeftRight, ymin, ymax, Ticks("%",extend=true,Step=yStep,step=ystep,pTick=pTick,ptick=ptick), above=above);
}

void cartesianaxis(picture pic=currentpicture,
Label Lx=Label("$x$",align=S),
Label Ly=Label("$y$",align=W),
real xmin=pic.userMin().x, real xmax=pic.userMax().x,
real ymin=pic.userMin().y, real ymax=pic.userMax().y,
real extrawidth=1, real extraheight=extrawidth,
pen p=currentpen,
ticks xticks=Ticks("%",pTick=nullpen, ptick=grey),
ticks yticks=Ticks("%",pTick=nullpen, ptick=grey),
bool above=true,
arrowbar arrow=Arrow)
{
extraheight= cm*extraheight/(2*pic.yunitsize);
extrawidth = cm*extrawidth/(2*pic.xunitsize);
yequals(pic, Lx, 0, xmin-extrawidth, xmax+extrawidth, p, above, arrow=arrow);
yequals(pic, 0, xmin, xmax, p, xticks, above);
xequals(pic, Ly, 0, ymin-extraheight, ymax+extraheight, p, above, arrow=arrow);
xequals(pic, 0, ymin, ymax, p, yticks, above);
}

void labeloij(picture pic=currentpicture,
Label Lo=Label("$O$",NoFill),
Label Li=Label("$\vec{\imath}$",NoFill),
Label Lj=Label("$\vec{\jmath}$",NoFill),
pair diro=SW, pair diri=S, pair dirj=W,
pen p=scale(2)*currentpen,
filltype filltype=NoFill, arrowbar arrow=Arrow(2mm))
{
if (Lo.filltype==NoFill) Lo.filltype=filltype;
if (Li.filltype==NoFill) Li.filltype=filltype;
if (Lj.filltype==NoFill) Lj.filltype=filltype;
labelx(pic, Lo, 0, diro, p);
draw(pic, Li, (0,0)--(1,0), diri, p, arrow);
draw(pic, Lj, (0,0)--(0,1), dirj, p, arrow);
dot(pic, (0,0), dotsize(p)+p);
}

void labeloIJ(picture pic=currentpicture,
Label Lo=Label("$O$",NoFill),
Label LI=Label("$I$",NoFill),
Label LJ=Label("$J$",NoFill),
pair diro=SW, pair dirI=S, pair dirJ=W,
pen p=currentpen,
filltype filltype=NoFill, arrowbar arrow=Arrow)
{
if (Lo.filltype==NoFill) Lo.filltype=filltype;
if (LI.filltype==NoFill) LI.filltype=filltype;
if (LJ.filltype==NoFill) LJ.filltype=filltype;
labelx(pic, LI, 1, dirI, p);
labely(pic, LJ, 1, dirJ, p);
labelx(pic, Lo, 0, diro, p);
dot(pic, (0,0), dotsize(p)+p);
}

graphicrules(xunit=1cm, yunit=3cm,
xmin=-2pi, xmax=2pi, ymin=-1, ymax=1);
grid(xStep=pi/2, xstep=pi/4, yStep=.5, ystep=.25);
cartesianaxis(xticks=Ticks(Label(UnFill),labelfrac(factor=pi,symbol="\pi",symbolin=true, zero=false),Step=pi/2, step=pi/4, ptick=grey),
yticks=Ticks(Label(UnFill),labelfrac(zero=false),Step=.5,step=.25, ptick=grey), arrow=None);
dot("$O$",(0,0),2SW);



Étiquettes : , , , , ,

## Asymptote using graph.asy – fig0250

Category: Asymptote,Examples 2D,graph.asyPh. Ivaldi @ 2 h 10 min

 (Compiled with Asymptote version 2.14svn-r5318)

size(10cm,0);
import contour;
import graph;

xlimits( -3, 3);
ylimits( -3, 3);
yaxis( "$y$" , Ticks());
xaxis( "$x$", Ticks());

real f(real x, real y) {return x*y;}

draw(contour(f,(-3,-3),(3,3),new real[] {1}));



Étiquettes : , , , ,

## Asymptote using graph.asy – fig0260

Category: Asymptote,Examples 2D,graph.asyPh. Ivaldi @ 3 h 10 min

 (Compiled with Asymptote version 2.14svn-r5318)

size(10cm,0);
import contour;
import stats;
import graph;

xlimits( -5, 5);
ylimits( -4, 5);
yaxis( "$y$" , Ticks(Label(currentpen+fontsize(8),align=E)));
xaxis( "$x$", Ticks(Label(currentpen+fontsize(8))));

real f(real x, real y) {return x^2-x-y^2+3y-6;}

int min=-5,
max=5,
n=max-min+1;

real[] value=sequence(min,max);

pen[] p=sequence(new pen(int i) {
return (value[i] >= 0 ? solid : dashed) +
(value[i] >= 0 ? (value[i]/max)*red : (value[i]/min)*blue) +
fontsize(4);
},n);

Label[] Labels=sequence(new Label(int i) {
return Label(value[i] != 0 ? (string) value[i] : "",Relative(unitrand()),(0,0),
UnFill(1bp));
},n);

draw(Labels,contour(f,(-5,-5),(5,5),value),p);



Étiquettes : , , , , ,

## Asymptote using graph.asy – fig0270

Category: Asymptote,Examples 2D,graph.asyPh. Ivaldi @ 4 h 10 min

 (Compiled with Asymptote version 2.14svn-r5318)

//Author: John Bowman
import graph;

size(250,200,IgnoreAspect);

real Sin(real t, real w) {return sin(w*t);}

draw(graph(new real(real t) {return Sin(t,pi);},0,1),blue,"$\sin(\pi x)$");
draw(graph(new real(real t) {return Sin(t,2pi);},0,1),red,"$\sin(2\pi x)$");

xaxis("$x$",BottomTop,Ticks);
yaxis("$y$",LeftRight,Ticks);

attach(legend(),point(E),20E,UnFill);



Étiquettes : , ,

## Asymptote using graph.asy – fig0280

Category: Asymptote,Examples 2D,graph.asyPh. Ivaldi @ 5 h 10 min

 (Compiled with Asymptote version 2.14svn-r5318)

import graph;

size(10cm,6cm,IgnoreAspect);

typedef real realfcn(real);
realfcn F(real p){
return new real(real x){return sin(x)/sqrt(p);};
};

real pmax=5;
for (real p=1; p<=pmax; p+=1)
{
draw(graph(F(p),-2pi,2pi),
((p-1)/(pmax-1)*blue+(1-(p-1)/(pmax-1))*red),
"$\frac{\sin(x)}{\sqrt{" + (string) p +"}}$");
}

xlimits(-2pi,2pi);
ylimits(-1,1);

xaxis("$x$",BottomTop,Ticks);
yaxis("$y$",LeftRight,Ticks);

attach(legend(),point(E),20E,UnFill);



Étiquettes : , , , ,

## Asymptote using graph.asy – fig0290

Category: Asymptote,Examples 2D,graph.asyPh. Ivaldi @ 6 h 10 min

 (Compiled with Asymptote version 2.14svn-r5318)

import graph;
size(10cm);

xaxis("$x$", -2*pi,2*pi, Arrow);
yaxis("$y$", -4,4, Arrow);

typedef real realfcn(real); // Define new type: real function of real

realfcn TPC(int n) { //Return Taylor polynomial (degrees 2*n) of cos
return new real(real x) {
return sum(sequence(new real(int m){return (-1)^m*x^(2*m)/gamma(2*m+1);}, n+1));
};
}
draw(graph(cos,-2pi,2pi), linewidth(2bp), legend="$\cos$");

int n=6; // Number of curves
pen[] p={palered, lightred, red, blue, purple, green};
p.cyclic=true; // p[6]=p[0], p[7]=p[1], etc...

for (int i=0; i < n; ++i) {
draw(graph(TPC(i),-2*pi,2*pi), bp+p[i], legend="$T_{"+(string)i+"}$");
}

xlimits(-2*pi,2*pi, Crop);
ylimits(-4,4, Crop);

attach(legend(linelength=3mm),point(E),5E);
shipout(bbox(Fill(lightgrey)));



Étiquettes : , , , ,

## Asymptote using graph.asy – fig0300

Category: Asymptote,Examples 2D,graph.asyPh. Ivaldi @ 7 h 10 min

 (Compiled with Asymptote version 2.14svn-r5318)

//Beta distribution
import graph;
unitsize(10cm,3cm);

typedef real realfcn(real);

realfcn betaFunction(real alpha, real beta){
return new real(real x){
return gamma(alpha+beta)/(gamma(alpha)+gamma(beta))*x^(alpha-1)*(1-x)^(beta-1);
};
};

real[][] ab=new real[][] {{0.5,0.5},{5,1},{1,3},{2,2},{2,5}};
pen[] p=new pen[] {0.8*red, 0.8*green, 0.8*blue, 0.8*magenta, black};

for (int i=0; i < 5; ++i) {
draw(graph(betaFunction(ab[i][0],ab[i][1]),1e-5,1-1e-5), bp+p[i],
legend="$\alpha="+(string)ab[i][0]+",\;\beta="+(string)ab[i][1]+"$");
}

xlimits(0,1,Crop);
ylimits(0,2.6,Crop);

xaxis("$x$",BottomTop,linewidth(bp),Ticks);
yaxis("$y$",LeftRight,linewidth(bp),Ticks(Step=0.2));

attach(scale(0.75)*legend(linelength=3mm),point(N),5S,UnFill);



Étiquettes : , , ,

## Asymptote using graph.asy – fig0310

Category: Asymptote,Examples 2D,graph.asyPh. Ivaldi @ 8 h 10 min

 (Compiled with Asymptote version 2.14svn-r5318)

// Other examples of interpolations can be found here
import graph;
unitsize(1cm);

typedef real hermite(real);

hermite hermite(pair [] m, real [] d)
{/*DOC Retourne la fonction polynôme de Hermite
passant par les points m(x_i,y_i) de nombre dérivée d_i en ce point.
Return Hermite polynomial interpolation function
passing by the points m (x_i, y_i) of derived number d_i in this point.
DOC*/
return new real(real x){
int n=m.length;
if (n != d.length) abort("Hermite: nombres de paramètres incorrectes.");
real q,qk,s,y=0;
for (int k=0; k<n ; ++k) {
real q=1, qk=1, s=0;
for (int j=0; j<n; ++j)
{
if (j!=k){
q=q*(x-m[j].x)^2;
qk=qk*(m[k].x-m[j].x)^2;
s=s+1/(m[k].x-m[j].x);
}
}
y=y+q/qk*(m[k].y+(x-m[k].x)*(d[k]-2*s*m[k].y));
}
return y;
};
}

pair[] m;
real[] d;
int nbpt=5;
real xmin=-2pi,
xmax=2pi,
l=xmax-xmin,
step=l/(nbpt+1);
for (int i=1; i<=nbpt; ++i)
{
real x=xmin+i*step;
m.push((x,sin(x)));
draw(m[m.length-1],linewidth(2mm));
d.push(cos(x));
}

xlimits(-2pi,2pi);
ylimits(-2,2);
xaxis("$x$",BottomTop,Ticks);
yaxis("$y$",LeftRight,Ticks);

draw(graph(sin,xmin,xmax),1mm+.8red,"$x\longmapsto{}\sin x$");
draw(graph(hermite(m,d),xmin,xmax),"$x\longmapsto{}H(x)$");

attach(legend(),point(10S),30S);



Étiquettes : , , , ,

## Asymptote using graph.asy – fig0320

Category: Asymptote,Examples 2D,graph.asyPh. Ivaldi @ 9 h 10 min

 (Compiled with Asymptote version 2.14svn-r5318)

import graph;
import interpolate;

size(15cm,10cm,IgnoreAspect);

real[] xpt,ypt;
real [] xpt={1, 2, 4, 5, 7, 8, 10};
real [] ypt={1, 2, 2, 3, 1, 0.5, 3};

horner h=diffdiv(xpt,ypt);
fhorner L=fhorner(h);

scale(false,true);

pen p=linewidth(1);

draw(graph(L,min(xpt),max(xpt)),dashed+black+p,"Lagrange interpolation");
draw(graph(xpt,ypt,Hermite(natural)),red+p,"natural spline");
draw(graph(xpt,ypt,Hermite(monotonic)),blue+p,"monotone spline");
xaxis("$x$",BottomTop,LeftTicks(Step=1,step=0.25));
yaxis("$y$",LeftRight,RightTicks(Step=5));
dot(pairs(xpt,ypt),4bp+0.7black);

attach(legend(),point(10S),30S);



Étiquettes : , , ,

## Asymptote using graph.asy – fig0330

Category: Asymptote,Examples 2D,graph.asyPh. Ivaldi @ 10 h 10 min

 (Compiled with Asymptote version 2.14svn-r5318)

import slopefield;
import graph;
size(8cm,0);
real f(real t) {return exp(-t^2);}
defaultpen();

xlimits( 0,1);
ylimits( 0,1);
yaxis( "$y$" ,LeftRight, RightTicks);
xaxis( "$x$", Ticks());
draw(graph(f,0,1),"$x\longmapsto{}e^{-x^2}$");
draw(curve((0,0),f,(0,0),(1,10)),linecap(0)+red,"$\displaystyle x\longmapsto\int_{0}^{x}e^{-t^2}\;dt$");

//Test with three values calculated with Maxima:
dot((.25,0.13816319508411845*sqrt(pi))^^(.5 , 0.26024993890652326*sqrt(pi)));
dot((.75, 0.3555778168267576*sqrt(pi)));

attach(legend(),point(10S),30S);



Étiquettes : , , , ,

## Asymptote using graph.asy – fig0340

Category: Asymptote,Examples 2D,graph.asyPh. Ivaldi @ 11 h 10 min

 (Compiled with Asymptote version 2.14svn-r5318)

//Author: John Bowman
import graph;
size(2cm, 0);
xlimits(0, 100);
ylimits(-50, 50);
yaxis( "y-value" ,Left, Courier("m", "n") + fontsize(12), RightTicks("%.4g"));



Étiquettes : , ,

## Asymptote using graph.asy – fig0350

Category: Asymptote,Examples 2D,graph.asyPh. Ivaldi @ 12 h 10 min

 (Compiled with Asymptote version 2.14svn-r5318)

// From Asymptote's FAQ
import graph;

real width=15cm;
real aspect=0.3;

picture pic1,pic2;

size(pic1,width,aspect*width,IgnoreAspect);
size(pic2,width,aspect*width,IgnoreAspect);

scale(pic1,false);
scale(pic2,false);

real xmin1=6;
real xmax1=9;
real xmin2=8;
real xmax2=16;

real a1=1;
real a2=0.001;

real f1(real x) {return a1*sin(x/2*pi);}
real f2(real x) {return a2*sin(x/4*pi);}

draw(pic1,graph(pic1,f1,xmin1,xmax1));
draw(pic2,graph(pic2,f2,xmin2,xmax2));

xaxis(pic1,Bottom,LeftTicks());
yaxis(pic1,"$f_1(x)$",Left,RightTicks);

xaxis(pic2,Bottom,LeftTicks(Step=4));
yaxis(pic2,"$f_2(x)$",Left,RightTicks);

yequals(pic1,0,Dotted);
yequals(pic2,0,Dotted);

pair min1=point(pic1,SW);
pair max1=point(pic1,NE);

pair min2=point(pic2,SW);
pair max2=point(pic2,NE);

real scale=(max1.x-min1.x)/(max2.x-min2.x);
real shift=min1.x/scale-min2.x;

transform t1 = pic1.calculateTransform();
transform t2 = pic2.calculateTransform();
transform T=xscale(scale*t1.xx)*yscale(t2.yy);

real height=truepoint(N).y-truepoint(S).y;



Étiquettes : , , , ,

## Asymptote using graph3.asy – fig0100

Category: Asymptote,Examples 3D,graph3.asyPh. Ivaldi @ 12 h 11 min

 (Compiled with Asymptote version 1.92svn-r4817)

// From documentation of Asymptote
import graph;
import palette;
import contour;
texpreamble("\usepackage{icomma}");

size(10cm,10cm,IgnoreAspect);

pair a=(0,0);
pair b=(5,10);

real fz(pair z) {
return z.x*z.y*exp(-z.x);
}
real f(real x, real y) {return fz((x,y));}

int N=200;
int Divs=10;
int divs=2;

defaultpen(1bp);
pen Tickpen=black;
pen tickpen=gray+0.5*linewidth(currentpen);
pen[] Palette=BWRainbow();

scale(false);

bounds range=image(f,Automatic,a,b,N,Palette);

xaxis("$x$",BottomTop,LeftTicks(pTick=grey, ptick=invisible, extend=true));
yaxis("$y$",LeftRight,RightTicks(pTick=grey, ptick=invisible, extend=true));

// Major contours
real[] Cvals;
Cvals=sequence(11)/10 * (range.max-range.min) + range.min;
draw(contour(f,a,b,Cvals,N,operator ..),Tickpen);

// Minor contours
real[] cvals;
real[] sumarr=sequence(1,divs-1)/divs * (range.max-range.min)/Divs;
for (int ival=0; ival < Cvals.length-1; ++ival)
cvals.append(Cvals[ival]+sumarr);
draw(contour(f,a,b,cvals,N,operator ..),tickpen);

palette("$f(x,y)=xye^{-x}$",range,point(NW)+(0,1),point(NE)+(0,0.25),Top,Palette,
PaletteTicks(N=Divs,n=divs,Tickpen,tickpen));



Étiquettes : , , , , ,

## Asymptote using tube.asy – fig0130

Category: Asymptote,Examples 3D,tube.asyPh. Ivaldi @ 7 h 11 min

 (Compiled with Asymptote version 2.14svn-r5318)

import tube;
import graph;
size(12cm,0);
currentprojection=perspective(4,3,6);

real f(real t) {return cos(2*t);}
path g=polargraph(f,0,2pi,10,operator ..)&cycle;
path3 p=path3(scale(20)*g);

draw(tube(p,rotate(60)*polygon(3)), 0.8*red);
draw(tube(shift(Z)*p,scale(0.25)*unitcircle), orange);
draw(shift(1.25*Z)*p);



Étiquettes : , ,

## Asymptote using tube.asy – fig0140

Category: Asymptote,Examples 3D,tube.asyPh. Ivaldi @ 8 h 11 min

 (Compiled with Asymptote version 2.14svn-r5318)

import tube;
import graph;
size(12cm,0);
currentprojection=perspective(0,3,6);

real f(real t) {return cos(2*t);}
path g=polargraph(f,0,2pi,10,operator --)&cycle;
path3 p=path3(scale(20)*g);

draw(tube(p,2W--2E), red, bp+black);
draw(tube(p,unitcircle), orange, bp+black);



Étiquettes : , ,

## Unofficial package graph_pi.asy – fig0010

Category: Asymptote,graph_pi.asy,Unofficial packagesPh. Ivaldi @ 5 h 50 min

 (Compiled with Asymptote version 2.14svn-r5318)

import graph_pi;

graphicrules(yunit=1.5cm, xmin=-3, xmax=3, ymin=-2, ymax=2);
grid();
cartesianaxis(arrow=None);
labeloij(UnFill);



Étiquettes : , ,

## Unofficial package graph_pi.asy – fig0020

Category: Asymptote,graph_pi.asy,Unofficial packagesPh. Ivaldi @ 6 h 50 min

 (Compiled with Asymptote version 2.14svn-r5318)

import graph_pi;

graphicrules(yunit=1.5cm, xmin=-3, xmax=3, ymin=-2, ymax=2);
grid(pic=currentpicture,
xmin=-3, xmax=3,
ymin=-2, ymax=2,
xStep=1, xstep=.1,
yStep=1, ystep=.1,
pTick=.8red, ptick=.8green,
above=false);
cartesianaxis(pic=currentpicture,
Lx=Label(scale(2)*"$x$",align=NW),
Ly=Label("$y$",align=SE),
xmin=-3, xmax=3,
ymin=-2, ymax=2,
extrawidth=5, extraheight=5,
p=currentpen,
xticks=Ticks("%",pTick=1mm+yellow, ptick=grey),
yticks=NoTicks,
viewxaxis=true,
viewyaxis=false,
above=true,
arrow=Arrow);
labeloIJ(pic=currentpicture,
Lo=Label("$O$",NoFill),
LI=Label("$I$",white,Fill(black)),
LJ=Label(" "),
diro=NE, dirI=N, dirJ=E,
p=blue,
filltype=NoFill,
marker=dot(2mm+red));



Étiquettes : , ,

## Unofficial package graph_pi.asy – fig0030

Category: Asymptote,graph_pi.asy,Unofficial packagesPh. Ivaldi @ 7 h 50 min

 (Compiled with Asymptote version 2.14svn-r5318)

import graph_pi;
size(200,0);
graphicrules(xmin=-1, xmax=4, ymin=-1, ymax=3);

grid(xstep=0,ystep=0);

cartesianaxis(xticks=Ticks(Label(Fill(white)), NoZero, ptick=invisible),
yticks=Ticks(Label(Fill(white)), NoZero, ptick=invisible));

labelx("$O$",0,SW);

shipout(bbox(Fill(white)));



Étiquettes : , ,

## Unofficial package graph_pi.asy – fig0040

Category: Asymptote,graph_pi.asy,Unofficial packagesPh. Ivaldi @ 8 h 50 min

 (Compiled with Asymptote version 2.14svn-r5318)

import graph_pi;

graphicrules(xunit=2cm, yunit=1.5cm, xmin=-3, xmax=2, ymin=-2, ymax=2);
cartesianaxis();
labelx(Label("$1$",UnFill), 1);
labely(Label("$1$",UnFill), 1);
labelx("$O$",0,SW);
dot((0,0));



Étiquettes : ,

## Unofficial package graph_pi.asy – fig0050

Category: Asymptote,graph_pi.asy,Unofficial packagesPh. Ivaldi @ 9 h 50 min

 (Compiled with Asymptote version 2.14svn-r5318)

import graph_pi;

graphicrules(xunit=2cm, yunit=1.5cm, xmin=-3, xmax=2, ymin=-2, ymax=2);
xmin=-2.5, xmax=1.5,
ymin=-1.5, ymax=1.5,
p=3bp+orange),
(0,0));
cartesianaxis();
labelx(Label("$1$",UnFill), 1);
labely(Label("$1$",UnFill), 1);
labelx("$O$",0,SW);
dot((0,0));



Étiquettes : ,

## Unofficial package graph_pi.asy – fig0060

Category: Asymptote,graph_pi.asy,Unofficial packagesPh. Ivaldi @ 10 h 50 min

 (Compiled with Asymptote version 2.14svn-r5318)

import graph_pi;
import patterns;

graphicrules(xunit=2.5cm,yunit=1.5cm, xmin=-1, xmax=4, ymin=-1, ymax=5,
crop=Crop);

// Définition des fonctions f et g :
real f(real x) {return 4x-x^2+4/(x^2+1)^2;}
real g(real x) {return x-1+4/(x^2+1)^2;}

// Tracé des courbes :
path Cf=graph(f,n=700);
path Cg=graph(g,n=700);
draw(Cf,linewidth(1bp));
draw(Cg,linewidth(1bp));
crop(currentpicture);

// La grille.
grid();
// Les axes.
cartesianaxis(xticks=Ticks(NoZero,ptick=grey),
yticks=Ticks(NoZero,ptick=grey),arrow=None);
labeloij(UnFill);

label("$\mathscr{C}_f$",(2.25,f(2.25)),2N);
label("$\mathscr{C}_f$",(2.25,g(2.25)),2S);

// Les hachures.
path vline=(1,-1)--(1,5);
fill(buildcycle(vline,graph(f,1,4),graph(g,1,4)),pattern("hachure"));



Étiquettes : , ,

## Unofficial package graph_pi.asy – fig0070

Category: Asymptote,graph_pi.asy,Unofficial packagesPh. Ivaldi @ 11 h 50 min

 (Compiled with Asymptote version 2.14svn-r5318)

import graph_pi;

graphicrules(xunit=1cm, yunit=2cm,
xmin=-2pi, xmax=2pi, ymin=-1, ymax=1);

yaxis("y",LeftRight ,
Ticks(labelfrac,Step=.5,step=.25, ptick=grey, extend=true));

xaxis("$\theta$",BottomTop,
Ticks(labelfrac(factor=pi,symbol="\pi",symbolin=false),
Step=pi/2, step=pi/4, ptick=grey, extend=true));

draw(graph(new real(real x){return sin(x);},-2pi,2pi));
draw(graph(new real(real x){return cos(x);},-2pi,2pi), .8red);



Étiquettes : , ,

## Unofficial package graph_pi.asy – fig0080

Category: Asymptote,graph_pi.asy,Unofficial packagesPh. Ivaldi @ 12 h 50 min

 (Compiled with Asymptote version 2.14svn-r5318)

import graph_pi;

graphicrules(xunit=1cm, yunit=3cm,
xmin=-2pi, xmax=2pi, ymin=-1, ymax=1);

grid(xStep=pi/2, xstep=pi/4, yStep=.5, ystep=.25);

cartesianaxis(xticks=Ticks(Label(Fill(white)),
labelfrac(factor=pi,symbol="\pi",symbolin=true,
zero=false),Step=pi/2, step=pi/4, ptick=grey),
yticks=Ticks(Label(Fill(white)),
labelfrac(zero=false),Step=.5,step=.25, ptick=grey), Arrow);

dot("$O$",(0,0),2SW);

shipout(bbox(Fill(white)));



Étiquettes : , ,

## Unofficial package graph_pi.asy – fig0090

Category: Asymptote,graph_pi.asy,Unofficial packagesPh. Ivaldi @ 13 h 50 min

 (Compiled with Asymptote version 2.14svn-r5318)

import graph_pi;

real f(real x){return -.8x+3;}

graphicrules(unit=1cm,
xmin=-2, xmax=6, ymin=-2, ymax=6);

draw(graph(f));
draw(graph(new real(real x){return x;}), grey);
cartesianaxis();
draw(recursivegraph(f,-1.8,n=7),.8red);



Étiquettes : ,

## Unofficial package graph_pi.asy – fig0100

Category: Asymptote,graph_pi.asy,Unofficial packagesPh. Ivaldi @ 14 h 50 min

 (Compiled with Asymptote version 2.14svn-r5318)

import graph_pi;

real f(real x){return -.8x+3;}

graphicrules(unit=1cm,
xmin=-2, xmax=6, ymin=-2, ymax=6);

draw(graph(f));
draw(graph(new real(real x){return x;}), grey);
cartesianaxis();
draw(recursivegraph(f,-1.8,n=7),
//This is the default options
recursiveoption(L="u",
labelbegin=true,
labelend=true,
labelinner=true,
labelalternate=false,
format="",
labelplace=onX,
px=nullpen,
py=nullpen,
startonyaxis=false,
circuitarrow=None,
automarker=marker(cross(4)),
xaxismarker=nomarker,
yaxismarker=nomarker,
xmarker=nomarker,
fmarker=nomarker),
.8red);



Étiquettes : ,

## Unofficial package graph_pi.asy – fig0110

Category: Asymptote,graph_pi.asy,Unofficial packagesPh. Ivaldi @ 15 h 50 min

 (Compiled with Asymptote version 2.14svn-r5318)

import graph_pi;

real f(real x){return -x^3/8-x^2/4+2x;}

graphicrules(xunit=6cm,yunit=4cm,
xmin=.9, xmax=2.1, ymin=0, ymax=3);

draw(graph(f));
draw(graph(new real(real x){return x;}), grey);
cartesianaxis(viewyaxis=false);

draw(recursivegraph(f,1,n=5),.8red);



Étiquettes : ,

## Unofficial package graph_pi.asy – fig0120

Category: Asymptote,graph_pi.asy,Unofficial packagesPh. Ivaldi @ 16 h 50 min

 (Compiled with Asymptote version 2.14svn-r5318)

import graph_pi;

real f(real x){return -x^3/8-x^2/4+2x;}

graphicrules(xunit=6cm,yunit=4cm,
xmin=.9, xmax=2.1, ymin=0, ymax=3);

draw(graph(f));
draw(graph(new real(real x){return x;}), grey);
cartesianaxis(xticks=NoTicks,viewyaxis=false);

draw(recursivegraph(f,1,n=5),
recursiveoption(Label("v", p=blue),
labelinner=false),
.8red);



Étiquettes : ,

## Unofficial package graph_pi.asy – fig0130

Category: Asymptote,graph_pi.asy,Unofficial packagesPh. Ivaldi @ 17 h 50 min

 (Compiled with Asymptote version 2.14svn-r5318)

import graph_pi;

real f(real x){return -x^3/8-x^2/4+2x;}

graphicrules(xunit=6cm,yunit=4cm,
xmin=.9, xmax=2.1, ymin=0, ymax=3);

draw(graph(f));
draw(graph(new real(real x){return x;}), grey);
cartesianaxis(xticks=NoTicks,viewyaxis=false);

draw(recursivegraph(f,1,n=5),
recursiveoption(Label(scale(.75)*"v"),
labelinner=false,
format="=%.2f"),
.8red);



Étiquettes : ,

## Unofficial package graph_pi.asy – fig0140

Category: Asymptote,graph_pi.asy,Unofficial packagesPh. Ivaldi @ 18 h 50 min

 (Compiled with Asymptote version 2.14svn-r5318)

import graph_pi;

real f(real x){return -x^3/8-x^2/4+2x;}

graphicrules(unit=2cm,
xmin=-5, xmax=.25, ymin=-5, ymax=0);

draw(graph(f));
cartesianaxis();
draw(graph(new real(real x){return x;}), grey);

draw(recursivegraph(f,-1.5,n0=1,n=12),
recursiveoption(Label(scale(.8)*"\alpha",align=2N),
px=dashed,
xaxismarker=scale(2)*MarkFill[0],
automarker=nomarker,
circuitarrow=Arrow(position=Relative(.5))),
.8red);



Étiquettes : ,

## Unofficial package graph_pi.asy – fig0150

Category: Asymptote,graph_pi.asy,Unofficial packagesPh. Ivaldi @ 19 h 50 min

 (Compiled with Asymptote version 2.14svn-r5318)

import graph_pi;

real k=3.2;
real f(real x){return k*x*(1-x);}
graphicrules(unit=8cm,
xmin=0, xmax=1, ymin=0, ymax=1);

draw(graph(f));
cartesianaxis();
draw(graph(new real(real x){return x;}), grey);

draw(recursivegraph(f,.1,n=12),
recursiveoption(Label("%"),
labelplace=onXY,
px=dashed+grey,
py=dashed+grey,
automarker=nomarker,
circuitarrow=Arrow(position=Relative(.5),size=2mm)),
.8red);



Étiquettes : ,

## Unofficial package graph_pi.asy – fig0160

Category: Asymptote,graph_pi.asy,Unofficial packagesPh. Ivaldi @ 20 h 50 min

 (Compiled with Asymptote version 2.14svn-r5318)

import graph_pi;

real k=1.5;
real f(real x){return k*x*(1-x);}
graphicrules(xunit=40cm, yunit=20cm,
xmin=0, xmax=.35, ymin=0, ymax=.35);

draw(graph(f));
cartesianaxis();
draw(graph(new real(real x){return x;}), grey);

draw(recursivegraph(f,.05,n=10),
recursiveoption(Label("",UnFill),
labelalternate=true,
px=dashed+grey,
format="%.2f"),
.8red);



Étiquettes : ,

## Unofficial package graph_pi.asy – fig0170

Category: Asymptote,graph_pi.asy,Unofficial packagesPh. Ivaldi @ 21 h 50 min

 (Compiled with Asymptote version 2.14svn-r5318)

import graph_pi;

texpreamble("\usepackage{amsmath}");
real k=3.2;
real f(real x){return k*x*(1-x);}
real g(real x){return f(f(x));}
graphicrules(unit=8cm,
xmin=0, xmax=1, ymin=0, ymax=1);

draw(graph(f),legend="$f:x\longmapsto 3.2x(1-x)$");
draw(graph(g),blue,legend="$g:x\longmapsto{}(f\circ f)(x)$");
cartesianaxis();
draw(graph(new real(real x){return x;}), grey);

draw(recursivegraph(g,.12,n=12),
recursiveoption(Label("u",align=2S),
labelplace=onX,
labelinner=false,
px=dashed+lightgrey,
xmarker=nomarker,
circuitarrow=Arrow(position=Relative(.5),size=2mm)),
.8red, legend="$u_{n+1}=g(u_{n})\;\text{et}\;u_{0}=0.12$");
draw(recursivegraph(g,.6,n=12),
recursiveoption(Label("v",align=2W),
labelplace=onY,
labelinner=false,
py=dashed+lightgrey,
xmarker=nomarker,
circuitarrow=Arrow(position=Relative(.5),size=2mm)),
.8green, legend="$v_{n+1}=g(v_{n})\;\text{et}\;v_{0}=0.6$");
attach(legend(), point(S), 5S);



Étiquettes : ,

## Unofficial package graph_pi.asy – fig0180

Category: Asymptote,graph_pi.asy,Unofficial packagesPh. Ivaldi @ 22 h 50 min

 (Compiled with Asymptote version 2.14svn-r5318)

/* Example posted by Olivier Guibé */

import graph_pi;
texpreamble("\usepackage{amsmath}");

real g(real x){return (x^3-1)/5;}
graphicrules(unit=1cm,
xmin=-1, xmax=4, ymin=-2, ymax=5,
ycrop=Crop);
draw(graph(g),legend="$g:x\longmapsto (x^3-1)/5$");
cartesianaxis();
draw(graph(new real(real x){return x;}), grey);

draw(recursivegraph(g,2.45,n=4),
recursiveoption(Label(scale(.8)*"w",UnFill,align=2N),
px=dashed,
labelinner=false,
automarker=nomarker,
//              xaxismarker=scale(.2)*MarkFill[0],
circuitarrow=Arrow(position=Relative(.5))),.8green,
legend="$w_{n+1}=g(z_{n})\;\text{et}\;w_{0}=2.45$");

attach(legend(), point(S), N);



Étiquettes : ,

## Unofficial package graph_pi.asy – fig0190

Category: Asymptote,graph_pi.asy,Unofficial packagesPh. Ivaldi @ 23 h 50 min

 (Compiled with Asymptote version 2.14svn-r5318)

import graph_pi;

size(10cm,0);

real f(real x){return x^2;};

xlimits(-2, 2);
ylimits(0, 4.25);

draw(graph(f, -2, 2));

/*MODgraph_pi.asy.html#graphpoint(...)MOD*/
graphpoint(Label("$M$",align=NW), f, 1.5);
graphpoint("$P$", f, 1, extendy=true, px=Dotted+red, py=Dotted+blue);
graphpoint("$N$", f, -1, draw=onX, px=Dotted+red);
graphpoint("$Q$", f, sqrt(3), extendx=true);

xaxis(BottomTop(), LeftTicks());
yaxis(Ticks());
yaxis(LeftRight(), Ticks());



Étiquettes : ,

## Unofficial package graph_pi.asy – fig0200

Category: Asymptote,graph_pi.asy,Unofficial packagesPh. Ivaldi @ 0 h 50 min

 (Compiled with Asymptote version 2.14svn-r5318)

import graph_pi;

unitsize(x=2cm,y=4cm);
real f(real x){return abs(sin(x));};
real g(real x){return cos(x);};
real x;

xlimits(-.25, 8);
ylimits(-1.25, 1.25);
xaxis(LeftTicks);
yaxis(Ticks);
path Cf=graph(f, 0, 8,500);
path Cg=graph(g, 0, 8,500);
draw(Cf,bp+red);
draw(Cg,bp+blue);

x=pi/4;
dot((x,f(x))^^(x,g(x)));

x=3*pi/4;
path tg=tangent(Cf, x);
draw(tg);
pair M=intersectionpoint(tg,Cg);
dot("$M$",M,E);
draw((x,f(x))--(x,g(x)),scale(2)*MarkFill[0]);

x=pi;
dot((x,g(x)));

x=5*pi/4;
drawright=false, p=red, arrow=Arrow(5mm,NoFill));
dot((x,f(x)));

x=2*pi;
dot((x,f(x)));



Étiquettes : , ,

## Unofficial package graph_pi.asy – fig0210

Category: Asymptote,graph_pi.asy,Unofficial packagesPh. Ivaldi @ 1 h 50 min

 (Compiled with Asymptote version 2.14svn-r5318)

import graph_pi;

unitsize(x=3cm,y=3cm);
// All marks will have this size. Default=sqrt(2)*dotsize(currentpen);
graphmarksize=4mm;

real f(real x){return sin(x);};
path Cf=graph(f, .5, 2);
transform T=shift((0,-.5));
// ---------------------------------
// * definition of ArcMarkerExtrem *
// marker ArcMarkerExtrem(real radius=graphmarksize(), real angle=180,
//                        bool begin=true, bool end=true,
//                        pen p=currentpen, bool put=Above)

draw(Cf, ArcMarkerExtrem());
draw(T*Cf, red, ArcMarkerExtrem(angle=270, begin=false));

// ----------------------------------
// * Definition of Hookmarkerextrem *
// marker HookMarkerExtrem(real height=graphmarksize(), real width=height/2,
//                         bool begin=true, bool end=true,
//                         pen p=currentpen, bool put=Above)

draw(T^3*Cf,HookMarkerExtrem);//Without brackets values returns to default
draw(T^4*Cf, green, HookMarkerExtrem(height=2*graphmarksize, width=-graphmarksize*2,green));

// ------------------------------------
// * Definition of CircleMarkerExtrem *
// marker CircleMarkerExtrem(real radius=graphmarksize(), real angle=90,
//                           bool begin=true, bool end=true,
//                           pen p=currentpen, filltype filltype=NoFill,
//                           bool put=Above)

draw(T^5*Cf, green, CircleMarkerExtrem(green));



Étiquettes : ,

## Official Asymptote example – Bode

Category: Asymptote,Official Gallery One-PagerPh. Ivaldi @ 9 h 57 min

 (Compiled with Asymptote version 2.14svn-r5318)
/* This code comes from The Official Asymptote Gallery */

import graph;
texpreamble("\def\Arg{\mathop {\rm Arg}\nolimits}");

size(10cm,5cm,IgnoreAspect);

real ampl(real x) {return 2.5/(1+x^2);}
real phas(real x) {return -atan(x)/pi;}

scale(Log,Log);
draw(graph(ampl,0.01,10));
ylimits(0.001,100);

xaxis("$\omega\tau_0$",BottomTop,LeftTicks);
yaxis("$|G(\omega\tau_0)|$",Left,RightTicks);

picture q=secondaryY(new void(picture pic) {
scale(pic,Log,Linear);
draw(pic,graph(pic,phas,0.01,10),red);
ylimits(pic,-1.0,1.5);
yaxis(pic,"$\Arg G/\pi$",Right,red,
LeftTicks("$% #.1f$",
begin=false,end=false));
yequals(pic,1,Dotted);
});
label(q,"(1,0)",Scale(q,(1,0)),red);



Étiquettes : , , ,

## Official Asymptote example – Gouraudcontour

Category: Asymptote,Official Gallery One-PagerPh. Ivaldi @ 15 h 57 min

 (Compiled with Asymptote version 2.14svn-r5318)
/* This code comes from The Official Asymptote Gallery */

import graph;
import palette;
import contour;

size(200);

int n=100;

real[] x=new real[n];
real[] y=new real[n];
real[] f=new real[n];

real F(real a, real b) {return a^2+b^2;}

real r() {return 1.1*(rand()/randMax*2-1);}

for(int i=0; i < n; ++i) {
x[i]=r();
y[i]=r();
f[i]=F(x[i],y[i]);
}

pen Tickpen=black;
pen tickpen=gray+0.5*linewidth(currentpen);
pen[] Palette=BWRainbow();

bounds range=image(x,y,f,Range(0,2),Palette);
draw(contour(pairs(x,y),f,new real[]{0.25,0.5,1},operator ..));

palette("$f(x,y)$",range,point(NW)+(0,0.5),point(NE)+(0,0.8),Top,Palette,
PaletteTicks(Tickpen,tickpen));



Étiquettes : , , ,

## Official Asymptote example – HermiteSpline

Category: Asymptote,Official Gallery One-PagerPh. Ivaldi @ 16 h 57 min

 (Compiled with Asymptote version 2.14svn-r5318)
/* This code comes from The Official Asymptote Gallery */

import graph;

size(140mm,70mm,IgnoreAspect);
scale(false);
real[] x={1,3,4,5,6};
real[] y={1,5,2,0,4};

marker mark=marker(scale(1mm)*cross(6,false,r=0.35),red,Fill);

draw(graph(x,y,Hermite),"Hermite Spline",mark);
xaxis("$x$",Bottom,LeftTicks(x));
yaxis("$y$",Left,LeftTicks);
attach(legend(),point(NW),40S+30E,UnFill);



Étiquettes : , , , ,

## Official Asymptote example – alignedaxis

Category: Asymptote,Official Gallery One-PagerPh. Ivaldi @ 4 h 57 min

 (Compiled with Asymptote version 2.14svn-r5318)
/* This code comes from The Official Asymptote Gallery */

import graph;

real Freq=60.0;
real margin=5mm;

pair exp(pair x) {
return exp(x.x)*(cos(x.y)+I*sin(x.y));
}

real Merr(real x, real w) {
real tau=x/(2*Freq);
return 20*log(abs((tau*w+tau/(exp(I*2*pi*Freq*tau)-1))*(I*2*pi*Freq)));
}

real Aerr(real x, real w) {
real tau=x/(2*Freq);
return degrees((tau*w+tau/(exp(I*2*pi*Freq*tau)-1))*(I*2*pi*Freq));
}

picture pic1;
scale(pic1,Log,Linear);
real Merr1(real x){return Merr(x,1);}
draw(pic1,graph(pic1,Merr1,1e-4,1),black+1.2);

ylimits(pic1,-60,20);
yaxis(pic1,"magnitude (dB)",LeftRight,RightTicks(new
real[] {-60,-40,-20,0,20}));
xaxis(pic1,"$f/f_\mathrm{Ny}$",BottomTop,LeftTicks(N=5));
yequals(pic1,0,Dotted);
yequals(pic1,-20,Dotted);
yequals(pic1,-40,Dotted);
xequals(pic1,1e-3,Dotted);
xequals(pic1,1e-2,Dotted);
xequals(pic1,1e-1,Dotted);

size(pic1,100,100,point(pic1,SW),point(pic1,NE));

label(pic1,"$\theta=1$",point(pic1,N),2N);

frame f1=pic1.fit();

picture pic1p;
scale(pic1p,Log,Linear);
real Aerr1(real x){return Aerr(x,1);}
draw(pic1p,graph(pic1p,Aerr1,1e-4,1),black+1.2);

ylimits(pic1p,-5,95);
yaxis(pic1p,"phase (deg)",LeftRight,RightTicks(new real[] {0,45,90}));
xaxis(pic1p,"$f/f_\mathrm{Ny}$",BottomTop,LeftTicks(N=5));
yequals(pic1p,0,Dotted);
yequals(pic1p,45,Dotted);
yequals(pic1p,90,Dotted);
xequals(pic1p,1e-3,Dotted);
xequals(pic1p,1e-2,Dotted);
xequals(pic1p,1e-1,Dotted);

size(pic1p,100,100,point(pic1p,SW),point(pic1p,NE));

frame f1p=pic1p.fit();
f1p=shift(0,min(f1).y-max(f1p).y-margin)*f1p;

picture pic2;
scale(pic2,Log,Linear);
real Merr2(real x){return Merr(x,0.75);}
draw(pic2,graph(pic2,Merr2,1e-4,1),black+1.2);

ylimits(pic2,-60,20);
yaxis(pic2,"magnitude (dB)",LeftRight,RightTicks(new
real[] {-60,-40,-20,0,20}));
xaxis(pic2,"$f/f_\mathrm{Ny}$",BottomTop,LeftTicks(N=5));
yequals(pic2,0,Dotted);
yequals(pic2,-20,Dotted);
yequals(pic2,-40,Dotted);
xequals(pic2,1e-3,Dotted);
xequals(pic2,1e-2,Dotted);
xequals(pic2,1e-1,Dotted);

size(pic2,100,100,point(pic2,SW),point(pic2,NE));

label(pic2,"$\theta=0.75$",point(pic2,N),2N);

frame f2=pic2.fit();
f2=shift(max(f1).x-min(f2).x+margin)*f2;

picture pic2p;
scale(pic2p,Log,Linear);
real Aerr2(real x){return Aerr(x,0.75);}
draw(pic2p,graph(pic2p,Aerr2,1e-4,1),black+1.2);

ylimits(pic2p,-5,95);
yaxis(pic2p,"phase (deg)",LeftRight,RightTicks(new real[] {0,45.1,90}));
xaxis(pic2p,"$f/f_\mathrm{Ny}$",BottomTop,LeftTicks(N=5));
yequals(pic2p,0,Dotted);
yequals(pic2p,45,Dotted);
yequals(pic2p,90,Dotted);
xequals(pic2p,1e-3,Dotted);
xequals(pic2p,1e-2,Dotted);
xequals(pic2p,1e-1,Dotted);

size(pic2p,100,100,point(pic2p,SW),point(pic2p,NE));

frame f2p=pic2p.fit();
f2p=shift(max(f1p).x-min(f2p).x+margin,min(f2).y-max(f2p).y-margin)*f2p;



Étiquettes : , ,

## Official Asymptote example – brokenaxis

Category: Asymptote,Official Gallery One-PagerPh. Ivaldi @ 11 h 57 min

 (Compiled with Asymptote version 2.14svn-r5318)
/* This code comes from The Official Asymptote Gallery */

import graph;

size(200,150,IgnoreAspect);

// Break the x axis at 3; restart at 8:
real a=3, b=8;

// Break the y axis at 100; restart at 1000:
real c=100, d=1000;

scale(Broken(a,b),BrokenLog(c,d));

real[] x={1,2,4,6,10};
real[] y=x^4;

draw(graph(x,y),red,MarkFill[0]);

xaxis("$x$",BottomTop,LeftTicks(Break(a,b)));
yaxis("$y$",LeftRight,RightTicks(Break(c,d)));

label(rotate(90)*Break,(a,point(S).y));
label(rotate(90)*Break,(a,point(N).y));
label(Break,(point(W).x,ScaleY(c)));
label(Break,(point(E).x,ScaleY(c)));



Étiquettes : ,

## Official Asymptote example – cardioid

Category: Asymptote,Official Gallery One-PagerPh. Ivaldi @ 13 h 57 min

 (Compiled with Asymptote version 2.14svn-r5318)
/* This code comes from The Official Asymptote Gallery */

import graph;

size(0,100);

real f(real t) {return 1+cos(t);}

path g=polargraph(f,0,2pi,operator ..)--cycle;
filldraw(g,pink);

xaxis("$x$",above=true);
yaxis("$y$",above=true);

dot("$(a,0)$",(1,0),N);
dot("$(2a,0)$",(2,0),N+E);



Étiquettes : ,

## Official Asymptote example – centroidfg

Category: Asymptote,Official Gallery One-PagerPh. Ivaldi @ 14 h 57 min

 (Compiled with Asymptote version 2.14svn-r5318)
/* This code comes from The Official Asymptote Gallery */

import graph;
size(0,150);

int a=-1, b=1;

real f(real x) {return x^3-x+2;}
real g(real x) {return x^2;}

draw(graph(f,a,b,operator ..),red);
draw(graph(g,a,b,operator ..),blue);

xaxis();

int n=5;

real width=(b-a)/(real) n;
for(int i=0; i <= n; ++i) {
real x=a+width*i;
draw((x,g(x))--(x,f(x)));
}

labelx("$a$",a);
labelx("$b$",b);
draw((a,0)--(a,g(a)),dotted);
draw((b,0)--(b,g(b)),dotted);

real m=a+0.73*(b-a);
arrow("$f(x)$",(m,f(m)),N,red);
arrow("$g(x)$",(m,g(m)),E,0.8cm,blue);

int j=2;
real xi=b-j*width;
real xp=xi+width;
real xm=0.5*(xi+xp);
pair dot=(xm,0.5*(f(xm)+g(xm)));
dot(dot,darkgreen+4.0);
arrow("$\left(x,\frac{f(x)+g(x)}{2}\right)$",dot,NE,2cm,darkgreen);



Étiquettes :

## Official Asymptote example – coag

Category: Asymptote,Official Gallery One-PagerPh. Ivaldi @ 17 h 57 min

 (Compiled with Asymptote version 2.14svn-r5318)
/* This code comes from The Official Asymptote Gallery */

size(0,200);
import graph;

pair z0=(0,0);
pair m0=(0,1);
pair tg=(1.5,0);
pair mt=m0+tg;
pair tf=(3,0);

draw(m0--mt{dir(-70)}..{dir(0)}2tg+m0/4);
xtick("$T_g$",tg,N);
label("$M(t)$",mt,2NE);
labely("$M_0$",m0);

xaxis(Label("$t$",align=2S),Arrow);
yaxis(Arrow);



Étiquettes : ,

## Official Asymptote example – cos2theta

Category: Asymptote,Official Gallery One-PagerPh. Ivaldi @ 1 h 57 min

 (Compiled with Asymptote version 2.14svn-r5318)
/* This code comes from The Official Asymptote Gallery */

import graph;
size(0,100);

real f(real t) {return cos(2*t);}

path g=polargraph(f,0,2pi,operator ..)--cycle;
fill(g,green+white);
xaxis("$x$",above=true);
yaxis("$y$",above=true);
draw(g);

dot(Label,(1,0),NE);
dot(Label,(0,1),NE);



Étiquettes : ,

## Official Asymptote example – datagraph

Category: Asymptote,Official Gallery One-PagerPh. Ivaldi @ 9 h 57 min

 (Compiled with Asymptote version 2.14svn-r5318)
/* This code comes from The Official Asymptote Gallery */

import graph;

size(200,150,IgnoreAspect);

real[] x={0,1,2,3};
real[] y=x^2;

draw(graph(x,y),red);

xaxis("$x$",BottomTop,LeftTicks);
yaxis("$y$",LeftRight,
RightTicks(Label(fontsize(8pt)),new real[]{0,4,9}));



Étiquettes : ,

## Official Asymptote example – diatom

Category: Asymptote,Official Gallery One-PagerPh. Ivaldi @ 11 h 57 min

 (Compiled with Asymptote version 2.14svn-r5318)
/* This code comes from The Official Asymptote Gallery */

import graph;

size(15cm,12cm,IgnoreAspect);

real minpercent=20;
real ignorebelow=0;
string data="diatom.csv";
string[] group;
int[] begin,end;

defaultpen(fontsize(8pt)+overwrite(MoveQuiet));

file in=input(data).line().csv();

string depthlabel=in;
string yearlabel=in;
string[] taxa=in;
group=in;
begin=in;
real[] depth;
int[] year;
real[][] percentage;

while(true) {
real d=in;
if(eof(in)) break;
depth.push(d);
year.push(in);
percentage.push(in);
}

percentage=transpose(percentage);
real depthmin=-min(depth);
real depthmax=-max(depth);

int n=percentage.length;

int final;
for(int taxon=0; taxon < n; ++taxon) {
real[] P=percentage[taxon];
if(max(P) < ignorebelow) continue;
final=taxon;
}

real angle=45;
real L=3cm;
pair Ldir=L*dir(angle);
real ymax=-infinity;
real margin=labelmargin();

real location=0;

for(int i=0; i < begin.length-1; ++i) end[i]=begin[i+1]-1;
end[begin.length-1]=n-1;

typedef void drawfcn(frame f);
drawfcn[] draw=new drawfcn[begin.length];

pair z0;

for(int taxon=0; taxon < n; ++taxon) {
real[] P=percentage[taxon];
real maxP=max(P);
if(maxP < ignorebelow) continue;
picture pic;
real x=1;
if(maxP < minpercent) x=minpercent/maxP;
if(maxP > 100) x=50/maxP;
scale(pic,Linear(true,x),Linear(-1));
filldraw(pic,(0,depthmin)--graph(pic,P,depth)--(0,depthmax)--cycle,
gray(0.9));
xaxis(pic,Bottom,LeftTicks("$%.3g$",beginlabel=false,0,2),above=true);
xaxis(pic,Top,above=true);

frame label;
label(label,rotate(angle)*TeXify(taxa[taxon]),(0,0),N);

pair z=point(pic,N);
pair v=max(label);
int taxon=taxon;
pic.add(new void(frame f, transform t) {
pair z1=t*z+v;
ymax=max(ymax,z1.y+margin);
});

for(int i=0; i < begin.length; ++i) {
pair z=point(pic,N);
pair v=max(label);
if(taxon == begin[i]) {
pic.add(new void(frame f, transform t) {
pair Z=t*z+v;
z0=Z;
pair w0=Z+Ldir;
});
} else if(taxon == end[i]) {
int i=i;
pair align=2N;
pair z0=z0;
pair z1=t*z+v;
pair w1=z1+Ldir;
draw[i]=new void(frame f) {
path g=z0--(z0.x+(ymax-z0.y)/Tan(angle),ymax)--
(z1.x+(ymax-z1.y)/Tan(angle),ymax)--z1;
draw(f,g);
label(f,group[i],point(g,1.5),align);
};
});
}
}

if(taxon == 0) yaxis(pic,depthlabel,Left,RightTicks(0,10),above=true);
if(taxon == final) yaxis(pic,Right,LeftTicks("%",0,10),above=true);

location += pic.userMax().x;
}

for(int i=0; i < draw.length; ++i)
draw[i](f);
});

for(int i=0; i < year.length; ++i)
if(year[i] != 0) label((string) year[i],(location,-depth[i]),E);

label("\%",(0.5*location,point(S).y),5*S);



Étiquettes : , ,

## Official Asymptote example – elliptic

Category: Asymptote,Official Gallery One-PagerPh. Ivaldi @ 18 h 57 min

 (Compiled with Asymptote version 2.14svn-r5318)
/* This code comes from The Official Asymptote Gallery */

struct curve {
real a=0;
real b=8;

real y2(real x) {
return x^3+a*x+b;
}

real disc() {
return -16*(4*a*a*a+27*b*b);
}

real lowx () {
return sqrt(-a/3);
}

int comps() {
if (a < 0) {
real x=sqrt(-a/3);
return y2(x) < 0 ? 2 : 1;
}
return 1;
}

void locus(picture pic=currentpicture, real m, real M, int n=100,
pen p=currentpen) {
path flip(path p, bool close) {
path pp=reverse(yscale(-1)*p)..p;
return close ? pp..cycle : pp;
}
path section(real m, real M, int n) {
guide g;
real width=(M-m)/n;
for(int i=0; i <= n; ++i) {
real x=m+width*i;
real yy=y2(x);
if (yy > 0)
g=g..(x,sqrt(yy));
}
return g;
}

if (comps() == 1) {
draw(pic,flip(section(m,M,n),false),p);
}
else {
real x=lowx(); // The minimum on x^3+ax+b
if (m < x)
draw(pic,flip(section(m,min(x,M),n),true),p);
if (x < M)
draw(pic,flip(section(max(x,m),M,n),false),p);
}
}

pair neg(pair P) {
return finite(P.y) ? yscale(-1)*P : P;
}

pair add(pair P, pair Q) {
if (P.x == Q.x && P.x != Q.x)
return (0,infinity);
else {
real lambda=P == Q ? (3*P.x^2+a)/(2*P.y) : (Q.y-P.y)/(Q.x-P.x);
real Rx=lambda^2-P.x-Q.x;
return (Rx,(P.x-Rx)*lambda-P.y);
}
}
}

import graph;
import math;

size(0,200);

curve c; c.a=-1; c.b=4;

pair oncurve(real x)
{
return (x,sqrt(c.y2(x)));
}

picture output;

axes();
c.locus(-4,3,.3red+.7blue);

pair P=oncurve(-1),Q=oncurve(1.2);

save();

drawline(P,Q,dashed);
drawline(c.neg(sum),sum,dashed);
dot("$P$", P, NW);
dot("$Q$", Q, SSE);
dot(c.neg(sum));
dot("$P+Q$", sum, 2SW);

restore();

save();

drawline(P,c.neg(PP),dashed);
drawline(c.neg(PP),PP,dashed);
dot("$P$", P, NW);
dot(c.neg(PP));
dot("$2P$", PP, SW);

shipout(output);

restore();



Étiquettes : , ,

## Official Asymptote example – errorbars

Category: Asymptote,Official Gallery One-PagerPh. Ivaldi @ 22 h 57 min

 (Compiled with Asymptote version 2.14svn-r5318)
/* This code comes from The Official Asymptote Gallery */

import graph;

picture pic;
real xsize=200, ysize=140;
size(pic,xsize,ysize,IgnoreAspect);

pair[] f={(5,5),(50,20),(90,90)};
pair[] df={(0,0),(5,7),(0,5)};

errorbars(pic,f,df,red);
draw(pic,graph(pic,f),"legend",
marker(scale(0.8mm)*unitcircle,red,FillDraw(blue),above=false));

scale(pic,true);

xaxis(pic,"$x$",BottomTop,LeftTicks);
yaxis(pic,"$y$",LeftRight,RightTicks);

picture pic2;
size(pic2,xsize,ysize,IgnoreAspect);

frame mark;
filldraw(mark,scale(0.8mm)*polygon(6),green,green);
draw(mark,scale(0.8mm)*cross(6),blue);

draw(pic2,graph(pic2,f),marker(mark,markuniform(5)));

scale(pic2,true);

xaxis(pic2,"$x$",BottomTop,LeftTicks);
yaxis(pic2,"$y$",LeftRight,RightTicks);

yequals(pic2,55.0,red+Dotted);
xequals(pic2,70.0,red+Dotted);

// Fit pic to W of origin:

// Fit pic2 to E of (5mm,0):



Étiquettes : , , , ,

## Official Asymptote example – exp

Category: Asymptote,Official Gallery One-PagerPh. Ivaldi @ 23 h 57 min

 (Compiled with Asymptote version 2.14svn-r5318)
/* This code comes from The Official Asymptote Gallery */

import graph;
size(150,0);

real f(real x) {return exp(x);}
pair F(real x) {return (x,f(x));}

xaxis("$x$");
yaxis("$y$",0);

draw(graph(f,-4,2,operator ..),red);

labely(1,E);
label("$e^x$",F(1),SE);



Étiquettes : ,

## Official Asymptote example – filegraph

Category: Asymptote,Official Gallery One-PagerPh. Ivaldi @ 3 h 57 min

 (Compiled with Asymptote version 2.14svn-r5318)
/* This code comes from The Official Asymptote Gallery */

import graph;

size(200,150,IgnoreAspect);

file in=input("filegraph.dat").line();
real[][] a=in.dimension(0,0);
a=transpose(a);

real[] x=a[0];
real[] y=a[1];

draw(graph(x,y),red);

xaxis("$x$",BottomTop,LeftTicks);
yaxis("$y$",LeftRight,RightTicks);



Étiquettes : ,

## Official Asymptote example – fillcontour

Category: Asymptote,Official Gallery One-PagerPh. Ivaldi @ 5 h 57 min

 (Compiled with Asymptote version 2.14svn-r5318)
/* This code comes from The Official Asymptote Gallery */

import graph;
import palette;
import contour;

size(12cm,IgnoreAspect);

pair a=(pi/2,0);
pair b=(3pi/2,2pi);

real f(real x, real y) {return cos(x)*sin(y);}

int N=100;
int Divs=10;

defaultpen(1bp);

bounds range=bounds(-1,1);

real[] Cvals=uniform(range.min,range.max,Divs);
guide[][] g=contour(f,a,b,Cvals,N,operator --);

pen[] Palette=quantize(Rainbow(),Divs);

pen[][] interior=interior(g,extend(Palette,grey,black));
fill(g,interior);
draw(g);

palette("$f(x,y)$",range,point(SE)+(0.5,0),point(NE)+(1,0),Right,Palette,
PaletteTicks("$%+#0.1f$",N=Divs));



Étiquettes : , , , , ,

## Official Asymptote example – floor

Category: Asymptote,Official Gallery One-PagerPh. Ivaldi @ 9 h 57 min

 (Compiled with Asymptote version 2.14svn-r5318)
/* This code comes from The Official Asymptote Gallery */

import graph;
unitsize(1cm);

real Floor(real x) {return floor(x);}

pair[] Close;
pair[] Open;

bool3 branch(real x) {
static real lasty;
static bool first=true;
real y=floor(x);
bool samebranch=first || lasty == y;
first=false;
if(samebranch) lasty=x;
else {
Close.push((x,lasty));
Open.push((x,y));
}
lasty=y;
return samebranch ? true : default;
};

draw(graph(Floor,-5.5,5.5,500,branch));
axes("$x$",rotate(0)*"$\lfloor x\rfloor$",red);

dot(Close);
dot(Open,UnFill);



Étiquettes : ,

## Official Asymptote example – gamma

Category: Asymptote,Official Gallery One-PagerPh. Ivaldi @ 15 h 57 min

 (Compiled with Asymptote version 2.14svn-r5318)
/* This code comes from The Official Asymptote Gallery */

import graph;
size(300,IgnoreAspect);

bool3 branch(real x)
{
static int lastsign=0;
if(x <= 0 && x == floor(x)) return false;
int sign=sgn(gamma(x));
bool b=lastsign == 0 || sign == lastsign;
lastsign=sign;
return b ? true : default;
}

draw(graph(gamma,-4,4,n=2000,branch),red);

scale(false);
xlimits(-4,4);
ylimits(-6,6);
crop();

xaxis("$x$",RightTicks(NoZero));
yaxis(LeftTicks(NoZero));

label("$\Gamma(x)$",(1,2),red);



Étiquettes : ,

## Official Asymptote example – generalaxis

Category: Asymptote,Official Gallery One-PagerPh. Ivaldi @ 17 h 57 min

 (Compiled with Asymptote version 2.14svn-r5318)
/* This code comes from The Official Asymptote Gallery */

import graph;
size(0,100);

path g=ellipse((0,0),1,2);

scale(true);

axis(Label("C",align=10W),g,LeftTicks(endlabel=false,8,end=false),
ticklocate(0,360,new real(real v) {
path h=(0,0)--max(abs(max(g)),abs(min(g)))*dir(v);
return intersect(g,h)[0];}));



Étiquettes : ,

## Official Asymptote example – graphmarkers

Category: Asymptote,Official Gallery One-PagerPh. Ivaldi @ 19 h 57 min

 (Compiled with Asymptote version 2.14svn-r5318)
/* This code comes from The Official Asymptote Gallery */

import graph;

size(200,100,IgnoreAspect);

markroutine marks() {
return new void(picture pic=currentpicture, frame f, path g) {
path p=scale(1mm)*unitcircle;
for(int i=0; i <= length(g); ++i) {
pair z=point(g,i);
frame f;
if(i % 4 == 0) {
fill(f,p);
} else {
if(z.y > 50) {
pic.add(new void(frame F, transform t) {
path q=shift(t*z)*p;
unfill(F,q);
draw(F,q);
});
} else {
draw(f,p);
}
}
}
};
}

pair[] f={(5,5),(40,20),(55,51),(90,30)};

draw(graph(f),marker(marks()));

scale(true);

xaxis("$x$",BottomTop,LeftTicks);
yaxis("$y$",LeftRight,RightTicks);



Étiquettes : ,

## Official Asymptote example – histogram

Category: Asymptote,Official Gallery One-PagerPh. Ivaldi @ 1 h 57 min

 (Compiled with Asymptote version 2.14svn-r5318)
/* This code comes from The Official Asymptote Gallery */

import graph;
import stats;

size(400,200,IgnoreAspect);

int n=10000;
real[] a=new real[n];
for(int i=0; i < n; ++i) a[i]=Gaussrand();

draw(graph(Gaussian,min(a),max(a)),blue);

// Optionally calculate "optimal" number of bins a la Shimazaki and Shinomoto.
int N=bins(a);

histogram(a,min(a),max(a),N,normalize=true,low=0,lightred,black,bars=false);

xaxis("$x$",BottomTop,LeftTicks);
yaxis("$dP/dx$",LeftRight,RightTicks(trailingzero));



Étiquettes : ,

## Official Asymptote example – image

Category: Asymptote,Official Gallery One-PagerPh. Ivaldi @ 5 h 57 min

 (Compiled with Asymptote version 2.14svn-r5318)
/* This code comes from The Official Asymptote Gallery */

size(12cm,12cm);

import graph;
import palette;

int n=256;
real ninv=2pi/n;
real[][] v=new real[n][n];

for(int i=0; i < n; ++i)
for(int j=0; j < n; ++j)
v[i][j]=sin(i*ninv)*cos(j*ninv);

pen[] Palette=BWRainbow();

picture bar;

bounds range=image(v,(0,0),(1,1),Palette);
palette(bar,"$A$",range,(0,0),(0.5cm,8cm),Right,Palette,
PaletteTicks("$%+#.1f$"));



Étiquettes : , ,

## Official Asymptote example – imagecontour

Category: Asymptote,Official Gallery One-PagerPh. Ivaldi @ 6 h 57 min

 (Compiled with Asymptote version 2.14svn-r5318)
/* This code comes from The Official Asymptote Gallery */

import graph;
import palette;
import contour;

size(10cm,10cm,IgnoreAspect);

pair a=(0,0);
pair b=(2pi,2pi);

real f(real x, real y) {return cos(x)*sin(y);}

int N=200;
int Divs=10;
int divs=2;

defaultpen(1bp);
pen Tickpen=black;
pen tickpen=gray+0.5*linewidth(currentpen);
pen[] Palette=BWRainbow();

bounds range=image(f,Automatic,a,b,N,Palette);

// Major contours

real[] Cvals=uniform(range.min,range.max,Divs);
draw(contour(f,a,b,Cvals,N,operator --),Tickpen);

// Minor contours
real[] cvals;
for(int i=0; i < Cvals.length-1; ++i)
cvals.append(uniform(Cvals[i],Cvals[i+1],divs)[1:divs]);
draw(contour(f,a,b,cvals,N,operator --),tickpen);

xaxis("$x$",BottomTop,LeftTicks,above=true);
yaxis("$y$",LeftRight,RightTicks,above=true);

palette("$f(x,y)$",range,point(NW)+(0,0.5),point(NE)+(0,1),Top,Palette,
PaletteTicks(N=Divs,n=divs,Tickpen,tickpen));



Étiquettes : , , , ,

## Official Asymptote example – imagehistogram

Category: Asymptote,Official Gallery One-PagerPh. Ivaldi @ 7 h 57 min

 (Compiled with Asymptote version 2.14svn-r5318)
/* This code comes from The Official Asymptote Gallery */

import stats;
import graph;
import palette;
import contour;

size(20cm);

scale(false);

pair[] data=new pair[50000];
for(int i=0; i < data.length; ++i)
data[i]=Gaussrandpair();

// Histogram limits and number of bins
pair datamin=(-0.15,-0.15);
pair datamax=(0.15,0.15);
int Nx=30;
int Ny=30;

int[][] bins=frequency(data,datamin,datamax,Nx,Ny);

real[] values=new real[Nx*Ny];
pair[] points=new pair[Nx*Ny];
int k=0;
real dx=(datamax.x-datamin.x)/Nx;
real dy=(datamax.y-datamin.y)/Ny;
for(int i=0; i < Nx; ++i) {
for(int j=0; j < Ny; ++j) {
values[k]=bins[i][j];
points[k]=(datamin.x+(i+0.5)*dx,datamin.y+(j+0.5)*dy);
++k;
}
}

// Create a color palette
pen[] InvGrayscale(int NColors=256) {
real ninv=1.0/(NColors-1.0);
return sequence(new pen(int i) {return gray(1-17*i*ninv);},NColors);
}

// Draw the histogram, with axes
bounds range=image(points,values,Range(0,40),InvGrayscale());
draw(contour(points,values,new real[] {1,2,3,4,8,12,16,20,24,28,32,36,40},
operator--),blue);
xaxis("$x$",BottomTop,LeftTicks,above=true);
yaxis("$y$",LeftRight,RightTicks,above=true);



Étiquettes : , , , ,

## Official Asymptote example – integraltest

Category: Asymptote,Official Gallery One-PagerPh. Ivaldi @ 9 h 57 min

 (Compiled with Asymptote version 2.14svn-r5318)
/* This code comes from The Official Asymptote Gallery */

import graph;
size(300,150,IgnoreAspect);

real f(real x) {return 1/x^(1.1);}
pair F(real x) {return (x,f(x));}

dotfactor=7;

void subinterval(real a, real b)
{
path g=box((a,0),(b,f(b)));
filldraw(g,lightgray);
draw(box((a,f(a)),(b,0)));
}

int a=1, b=9;

xaxis("$x$",0,b);
yaxis("$y$",0);

draw(graph(f,a,b,operator ..),red);

int n=2;

for(int i=a; i <= b; ++i) {
if(i < b) subinterval(i,i+1);
if(i <= n) labelx(i);
dot(F(i));
}

int i=n;
labelx("$\ldots$",++i);
labelx("$k$",++i);
labelx("$k+1$",++i);
labelx("$\ldots$",++i);

arrow("$f(x)$",F(i-1.5),NE,1.5cm,red,Margin(0,0.5));



Étiquettes : ,

## Official Asymptote example – jump

Category: Asymptote,Official Gallery One-PagerPh. Ivaldi @ 13 h 57 min

 (Compiled with Asymptote version 2.14svn-r5318)
/* This code comes from The Official Asymptote Gallery */

import graph;
size(4inches,0);

real f1(real x) {return (1+x^2);}
real f2(real x) {return (4-x);}

xaxis("$x$",LeftTicks,Arrow);
yaxis("$y$",RightTicks,Arrow);

draw("$y=1+x^2$",graph(f1,-2,1));
dot((1,f1(1)),UnFill);

draw("$y=4-x$",graph(f2,1,5),LeftSide,red,Arrow);
dot((1,f2(1)),red);



Étiquettes : ,

## Official Asymptote example – laserlattice

Category: Asymptote,Official Gallery One-PagerPh. Ivaldi @ 19 h 57 min

 (Compiled with Asymptote version 2.14svn-r5318)
/* This code comes from The Official Asymptote Gallery */

import graph;
import palette;

int n=256;
pen[] Palette=BWRainbow();

real w(real w0, real z0, real z) {return w0*sqrt(1+(z/z0)^2);}

real pot(real lambda, real w0, real r, real z)
{
real z0=pi*w0^2/lambda, kappa=2pi/lambda;
return exp(-2*(r/w(w0,z0,z))^2)*cos(kappa*z)^2;
}

picture make_field(real lambda, real w0)
{
real[][] v=new real[n][n];
for(int i=0; i < n; ++i)
for(int j=0; j < n; ++j)
v[i][j]=pot(lambda,w0,i-n/2,abs(j-n/2));

picture p=new picture;
size(p,250,250,IgnoreAspect);
real xm=-n/lambda, ym=-n/(2*w0), xx=n/lambda, yx=n/(2*w0);
image(p,v,(xm,ym),(xx,yx),Palette);
xlimits(p,xm,xx);
ylimits(p,ym,yx);
xaxis(p,"{\Large $z/\frac{\lambda}{2}$}",BottomTop,LeftTicks);
yaxis(p,"{\Large $r/w_0$}",LeftRight,RightTicks);
label(p,format("{\LARGE $w_0/\lambda=%.2f$}",w0/lambda),point(p,NW),5N);

return p;
}

picture p=make_field(160,80);
picture q=make_field(80,80);
picture r=make_field(16,80);
picture s=make_field(2,80);

real margin=1cm;



Étiquettes : , , , , ,

## Official Asymptote example – leastsquares

Category: Asymptote,Official Gallery One-PagerPh. Ivaldi @ 22 h 57 min

 (Compiled with Asymptote version 2.14svn-r5318)
/* This code comes from The Official Asymptote Gallery */

size(400,200,IgnoreAspect);

import graph;
import stats;

file fin=input("leastsquares.dat").line();

real[][] a=fin.dimension(0,0);
a=transpose(a);

real[] t=a[0], rho=a[1];

// Read in parameters from the keyboard:
//real first=getreal("first");
//real step=getreal("step");
//real last=getreal("last");

real first=100;
real step=50;
real last=700;

// Remove negative or zero values of rho:
t=rho > 0 ? t : null;
rho=rho > 0 ? rho : null;

scale(Log(true),Linear(true));

int n=step > 0 ? ceil((last-first)/step) : 0;

real[] T,xi,dxi;

for(int i=0; i <= n; ++i) {
real first=first+i*step;
real[] logrho=(t >= first & t <= last) ? log(rho) : null;
real[] logt=(t >= first & t <= last) ? -log(t) : null;

if(logt.length < 2) break;

// Fit to the line logt=L.m*logrho+L.b:
linefit L=leastsquares(logt,logrho);

T.push(first);
xi.push(L.m);
dxi.push(L.dm);
}

draw(graph(T,xi),blue);
errorbars(T,xi,dxi,red);

crop();

ylimits(0);

xaxis("$T$",BottomTop,LeftTicks);
yaxis("$\xi$",LeftRight,RightTicks);



Étiquettes : , , ,

## Official Asymptote example – legend

Category: Asymptote,Official Gallery One-PagerPh. Ivaldi @ 23 h 57 min

 (Compiled with Asymptote version 2.14svn-r5318)
/* This code comes from The Official Asymptote Gallery */

import graph;
size(8cm,6cm,IgnoreAspect);

typedef real realfcn(real);
realfcn F(real p) {
return new real(real x) {return sin(p*x);};
};

for(int i=1; i < 5; ++i)
draw(graph(F(i*pi),0,1),Pen(i),
"$\sin("+(i == 1 ? "" : (string) i)+"\pi x)$");
xaxis("$x$",BottomTop,LeftTicks);
yaxis("$y$",LeftRight,RightTicks(trailingzero));

attach(legend(2),(point(S).x,truepoint(S).y),10S,UnFill);



Étiquettes : , , ,

## Official Asymptote example – limit

Category: Asymptote,Official Gallery One-PagerPh. Ivaldi @ 1 h 57 min

 (Compiled with Asymptote version 2.14svn-r5318)
/* This code comes from The Official Asymptote Gallery */

size(200,200,IgnoreAspect);
import graph;

real L=1;
real epsilon=0.25;

real a(int n) {return L+1/n;}

for(int i=1; i < 20; ++i)
dot((i,a(i)));

real N=1/epsilon;

xaxis(Label("$n$",align=2S));
yaxis(Label("$a_n$",0.85));

xtick("$2$",2);
ytick("$\frac{3}{2}$",3/2);
ytick("$2$",2);

yequals(Label("$L$",0,up),L,extend=true,blue);
yequals(Label("$L+\epsilon$",1,NW),L+epsilon,extend=true,red+dashed);
yequals(Label("$L-\epsilon$",1,SW),L-epsilon,extend=true,red+dashed);

xequals(N,extend=true,darkgreen+dashed);
labelx(shift(0,-10)*"$N=\frac{1}{\epsilon}$",N,E,darkgreen);

label("$a_n=1+\frac{1}{n},\quad \epsilon=\frac{1}{4}$",point((0,1)),10S+E);



Étiquettes : , ,

## Official Asymptote example – lineargraph

Category: Asymptote,Official Gallery One-PagerPh. Ivaldi @ 2 h 57 min

 (Compiled with Asymptote version 2.14svn-r5318)
/* This code comes from The Official Asymptote Gallery */

import graph;

size(250,200,IgnoreAspect);

real Sin(real t) {return sin(2pi*t);}
real Cos(real t) {return cos(2pi*t);}

draw(graph(Sin,0,1),red,"$\sin(2\pi x)$");
draw(graph(Cos,0,1),blue,"$\cos(2\pi x)$");

xaxis("$x$",BottomTop,LeftTicks);
yaxis("$y$",LeftRight,RightTicks(trailingzero));

label("LABEL",point(0),UnFill(1mm));

attach(legend(),truepoint(E),20E,UnFill);



Étiquettes : , , , ,

## Official Asymptote example – lineargraph0

Category: Asymptote,Official Gallery One-PagerPh. Ivaldi @ 3 h 57 min

 (Compiled with Asymptote version 2.14svn-r5318)
/* This code comes from The Official Asymptote Gallery */

import graph;

size(400,200,IgnoreAspect);

real Sin(real t) {return sin(2pi*t);}
real Cos(real t) {return cos(2pi*t);}

draw(graph(Sin,0,1),red,"$\sin(2\pi x)$");
draw(graph(Cos,0,1),blue,"$\cos(2\pi x)$");

xaxis("$x$",BottomTop,LeftTicks);
yaxis("$y$",LeftRight,RightTicks(trailingzero));

label("LABEL",point(0),UnFill(1mm));



Étiquettes : , , , ,

## Official Asymptote example – lmfit1

Category: Asymptote,Official Gallery One-PagerPh. Ivaldi @ 6 h 57 min

 (Compiled with Asymptote version 2.14svn-r5318)
/* This code comes from The Official Asymptote Gallery */

import lmfit;
import graph;

size(10cm, 7cm, IgnoreAspect);

real[] date = { 1790, 1800, 1810, 1820, 1830, 1840, 1850, 1860, 1870, 1880,
1890, 1900, 1910, 1920, 1930, 1940, 1950, 1960, 1970, 1980, 1990 };
real[] population = { 3.929, 5.308, 7.240, 9.638, 12.866, 17.069, 23.192, 31.443,
38.558, 50.156, 62.948, 75.996, 91.972, 105.711, 122.775, 131.669, 150.697,
179.323, 203.185, 226.546, 248.710 };

real t0 = 1776;

real P(real[] params, real t) {
real P0 = params[0];
real K = params[1];
real r = params[2];
return (K * P0) / (P0 + (K - P0) * exp(-r * (t - t0)));
}

real[] params = { 10, 500, 0.1 };

real res = lmfit.fit(date, population, P, params).norm;

write("P_0 = ", params[0]);
write("K = ", params[1]);
write("r = ", params[2]);
write("error = ", res);

real P(real t) {
return P(params, t);
}

draw(graph(date, population), blue);
draw(graph(P, t0, 2000), red);
xaxis("Year", BottomTop, LeftTicks);
yaxis("Population in millions", LeftRight, RightTicks);



Étiquettes : , , ,

## Official Asymptote example – log

Category: Asymptote,Official Gallery One-PagerPh. Ivaldi @ 7 h 57 min

 (Compiled with Asymptote version 2.14svn-r5318)
/* This code comes from The Official Asymptote Gallery */

import graph;

size(150,0);

real f(real x) {return log(x);}
pair F(real x) {return (x,f(x));}

xaxis("$x$",0);
yaxis("$y$");

draw(graph(f,0.01,10,operator ..));

labelx(1,SSE);
label("$\log x$",F(7),SE);



Étiquettes : ,

## Official Asymptote example – log2graph

Category: Asymptote,Official Gallery One-PagerPh. Ivaldi @ 8 h 57 min

 (Compiled with Asymptote version 2.14svn-r5318)
/* This code comes from The Official Asymptote Gallery */

import graph;
size(200,IgnoreAspect);

// Base-2 logarithmic scale on y-axis:

real log2(real x) {static real log2=log(2); return log(x)/log2;}
real pow2(real x) {return 2^x;}

scaleT yscale=scaleT(log2,pow2,logarithmic=true);
scale(Linear,yscale);

real f(real x) {return 1+x^2;}

draw(graph(f,-4,4));

yaxis("$y$",ymin=1,ymax=f(5),RightTicks(Label(Fill(white))),EndArrow);
xaxis("$x$",xmin=-5,xmax=5,LeftTicks,EndArrow);



Étiquettes : , ,

## Official Asymptote example – logdown

Category: Asymptote,Official Gallery One-PagerPh. Ivaldi @ 9 h 57 min

 (Compiled with Asymptote version 2.14svn-r5318)
/* This code comes from The Official Asymptote Gallery */

import graph;
size(200,IgnoreAspect);

real log10Down(real x) {return -log10(x);}
real pow10Down(real x) {return pow10(-x);}

scaleT LogDown=scaleT(log10Down,pow10Down,logarithmic=true);
scale(Linear,LogDown);

draw(graph(exp,-5,5));

yaxis("$y$",RightTicks(Label(Fill(white)),DefaultLogFormat),BeginArrow);
xaxis("$x$",LeftTicks(NoZero),EndArrow);



Étiquettes : , ,

## Official Asymptote example – loggraph

Category: Asymptote,Official Gallery One-PagerPh. Ivaldi @ 10 h 57 min

 (Compiled with Asymptote version 2.14svn-r5318)
/* This code comes from The Official Asymptote Gallery */

import graph;

size(200,200,IgnoreAspect);

real f(real t) {return 1/t;}

scale(Log,Log);

draw(graph(f,0.1,10));

//xlimits(1,10,Crop);
//ylimits(0.1,1,Crop);

dot(Label("(3,5)",align=S),Scale((3,5)));

xaxis("$x$",BottomTop,LeftTicks);
yaxis("$y$",LeftRight,RightTicks);



Étiquettes : , ,

## Official Asymptote example – loggrid

Category: Asymptote,Official Gallery One-PagerPh. Ivaldi @ 11 h 57 min

 (Compiled with Asymptote version 2.14svn-r5318)
/* This code comes from The Official Asymptote Gallery */

import graph;
size(200,200,IgnoreAspect);

real f(real t) {return 1/t;}

scale(Log,Log);
draw(graph(f,0.1,10),red);
pen thin=linewidth(0.5*linewidth());
xaxis("$x$",BottomTop,LeftTicks(begin=false,end=false,extend=true,
ptick=thin));
yaxis("$y$",LeftRight,RightTicks(begin=false,end=false,extend=true,
ptick=thin));



Étiquettes : , , ,

## Official Asymptote example – logimage

Category: Asymptote,Official Gallery One-PagerPh. Ivaldi @ 12 h 57 min

 (Compiled with Asymptote version 2.14svn-r5318)
/* This code comes from The Official Asymptote Gallery */

import graph;
import palette;

size(10cm,10cm,IgnoreAspect);

real f(real x, real y) {
return 0.9*pow10(2*sin(x/5+2*y^0.25)) + 0.1*(1+cos(10*log(y)));
}

scale(Linear,Log,Log);

pen[] Palette=BWRainbow();

bounds range=image(f,Automatic,(0,1),(100,100),nx=200,Palette);

xaxis("$x$",BottomTop,LeftTicks,above=true);
yaxis("$y$",LeftRight,RightTicks,above=true);

palette("$f(x,y)$",range,(0,200),(100,250),Top,Palette,
PaletteTicks(ptick=linewidth(0.5*linewidth())));



Étiquettes : , , ,

## Official Asymptote example – logticks

Category: Asymptote,Official Gallery One-PagerPh. Ivaldi @ 15 h 57 min

 (Compiled with Asymptote version 2.14svn-r5318)
/* This code comes from The Official Asymptote Gallery */

import graph;

size(300,175,IgnoreAspect);
scale(Log,Log);
draw(graph(identity,5,20));
xlimits(5,20);
ylimits(1,100);
xaxis("$M/M_\odot$",BottomTop,LeftTicks(DefaultFormat,
new real[] {6,10,12,14,16,18}));
yaxis("$\nu_{\rm upp}$ [Hz]",LeftRight,RightTicks(DefaultFormat));



Étiquettes : ,

## Official Asymptote example – lowint

Category: Asymptote,Official Gallery One-PagerPh. Ivaldi @ 16 h 57 min

 (Compiled with Asymptote version 1.87svn-r4652)
/* This code comes from The Official Asymptote Gallery */

size(100,0);
import graph;
import lowupint;

real a=-0.8, b=1.2;
real c=1.0/sqrt(3.0);

partition(a,b,c,min);

arrow("$f(x)$",F(0.5*(a+b)),NNE,red);
label("$\cal{L}$",(0.5*(a+b),f(0.5*(a+b))/2));



Étiquettes :

## Official Asymptote example – markregular

Category: Asymptote,Official Gallery One-PagerPh. Ivaldi @ 21 h 57 min

 (Compiled with Asymptote version 2.14svn-r5318)
/* This code comes from The Official Asymptote Gallery */

import graph;

size(10cm,0);

real xmin=-4,xmax=4;
real ymin=-2,ymax=10;

real f(real x) {return x^2;}

marker cross=marker(scale(4)*rotate(45)*cross(4),
markuniform(new pair(real t) {return Scale((t,f(t)));},
xmin,xmax,round(2*(xmax-xmin))),1bp+red);

draw(graph(f,xmin,xmax,n=400),linewidth(1bp),cross);

ylimits(-2.5,10,Crop);

xaxis(Label("$x$",position=EndPoint, align=NE),xmin=xmin,xmax=xmax,
Ticks(scale(.7)*Label(align=E),NoZero,begin=false,beginlabel=false,
end=false,endlabel=false,Step=1,step=.25,
Size=1mm, size=.5mm,pTick=black,ptick=gray),Arrow);

yaxis(Label("$y$",position=EndPoint, align=NE),ymin=ymin,ymax=ymax,
Ticks(scale(.7)*Label(),NoZero,begin=false,beginlabel=false,
end=false,endlabel=false,Step=1,step=.25,Size=1mm,size=.5mm,
pTick=black,ptick=gray),Arrow);



Étiquettes : , ,

## Official Asymptote example – monthaxis

Category: Asymptote,Official Gallery One-PagerPh. Ivaldi @ 23 h 57 min

 (Compiled with Asymptote version 2.14svn-r5318)
/* This code comes from The Official Asymptote Gallery */

import graph;

size(400,150,IgnoreAspect);

real[] x=sequence(12);
real[] y=sin(2pi*x/12);

scale(false);

string[] month={"Jan","Feb","Mar","Apr","May","Jun",
"Jul","Aug","Sep","Oct","Nov","Dec"};

draw(graph(x,y),red,MarkFill[0]);

xaxis(BottomTop,LeftTicks(new string(real x) {
return month[round(x % 12)];}));
yaxis("$y$",LeftRight,RightTicks(4));



Étiquettes : , ,

## Official Asymptote example – multicontour

Category: Asymptote,Official Gallery One-PagerPh. Ivaldi @ 2 h 57 min

 (Compiled with Asymptote version 2.14svn-r5318)
/* This code comes from The Official Asymptote Gallery */

import contour;

size(200);

real f(real x, real y) {return x^2-y^2;}
int n=10;
real[] c=new real[n];
for(int i=0; i < n; ++i) c[i]=(i-n/2)/n;

pen[] p=sequence(new pen(int i) {
return (c[i] >= 0 ? solid : dashed)+fontsize(6pt);
},c.length);

Label[] Labels=sequence(new Label(int i) {
return Label(c[i] != 0 ? (string) c[i] : "",Relative(unitrand()),(0,0),
UnFill(1bp));
},c.length);

draw(Labels,contour(f,(-1,-1),(1,1),c),p);



Étiquettes : , , , ,

## Official Asymptote example – oneoverx

Category: Asymptote,Official Gallery One-PagerPh. Ivaldi @ 6 h 57 min

 (Compiled with Asymptote version 2.14svn-r5318)
/* This code comes from The Official Asymptote Gallery */

import graph;
size(200,IgnoreAspect);

real f(real x) {return 1/x;};

bool3 branch(real x)
{
static int lastsign=0;
if(x == 0) return false;
int sign=sgn(x);
bool b=lastsign == 0 || sign == lastsign;
lastsign=sign;
return b ? true : default;
}

draw(graph(f,-1,1,branch));
axes("$x$","$y$",red);



Étiquettes : , ,

## Official Asymptote example – parametricgraph

Category: Asymptote,Official Gallery One-PagerPh. Ivaldi @ 10 h 57 min

 (Compiled with Asymptote version 2.14svn-r5318)
/* This code comes from The Official Asymptote Gallery */

import graph;

size(0,200);

real x(real t) {return cos(2pi*t);}
real y(real t) {return sin(2pi*t);}

draw(graph(x,y,0,1));

//xlimits(0,1,Crop);
//ylimits(-1,0,Crop);

xaxis("$x$",BottomTop,LeftTicks);
yaxis("$y$",LeftRight,RightTicks(trailingzero));



Étiquettes : ,

## Official Asymptote example – phase

Category: Asymptote,Official Gallery One-PagerPh. Ivaldi @ 16 h 57 min

 (Compiled with Asymptote version 2.14svn-r5318)
/* This code comes from The Official Asymptote Gallery */

import graph;
size(8cm,6cm,IgnoreAspect);

pair S0=(4,0.2);
pair S1=(2,3);
pair S8=(0.5,0);

xaxis("$S$");
yaxis(Label("$I$",0.5));

draw(S0{curl 0}..tension 1.5..S1{W}..tension 1.5..{curl 0}S8,Arrow(Fill,0.4));
draw((S1.x,0)..S1,dashed);
draw((0,S1.y)..S1,dotted);

labelx("$\frac{\gamma}{\beta}$",S1.x);
labelx("$S_\infty$",S8.x);
labely("$I_{\max}$",S1.y);



Étiquettes :

## Official Asymptote example – polararea

Category: Asymptote,Official Gallery One-PagerPh. Ivaldi @ 20 h 57 min

 (Compiled with Asymptote version 2.14svn-r5318)
/* This code comes from The Official Asymptote Gallery */

import math;
import graph;

size(0,150);

real f(real t) {return 5+cos(10*t);}

xaxis("$x$");
yaxis("$y$");

real theta1=pi/8;
real theta2=pi/3;
path k=graph(f,theta1,theta2,operator ..);
real rmin=min(k).y;
real rmax=max(k).y;
draw((0,0)--rmax*expi(theta1),dotted);
draw((0,0)--rmax*expi(theta2),dotted);

path g=polargraph(f,theta1,theta2,operator ..);
path h=(0,0)--g--cycle;
fill(h,lightgray);
draw(h);

real thetamin=3*pi/10;
real thetamax=2*pi/10;
pair zmin=polar(f(thetamin),thetamin);
pair zmax=polar(f(thetamax),thetamax);
draw((0,0)--zmin,dotted+red);
draw((0,0)--zmax,dotted+blue);

draw("$\theta_*$",arc((0,0),0.5*rmin,0,degrees(thetamin)),red+fontsize(10pt),
PenMargins);
draw("$\theta^*$",arc((0,0),0.5*rmax,0,degrees(thetamax)),blue+fontsize(10pt),
PenMargins);

draw(arc((0,0),rmin,degrees(theta1),degrees(theta2)),red,PenMargins);
draw(arc((0,0),rmax,degrees(theta1),degrees(theta2)),blue,PenMargins);



Étiquettes : , ,

## Official Asymptote example – polarcircle

Category: Asymptote,Official Gallery One-PagerPh. Ivaldi @ 21 h 57 min

 (Compiled with Asymptote version 2.14svn-r5318)
/* This code comes from The Official Asymptote Gallery */

import math;
import graph;
size(0,100);

real f(real t) {return 2*cos(t);}
pair F(real x) {return (x,f(x));}

draw(polargraph(f,0,pi,operator ..));

defaultpen(fontsize(10pt));

xaxis("$x$");
yaxis("$y$");

real r=f(theta);
draw("$\theta$",arc((0,0),0.5,0,degrees(theta)),red,Arrow,PenMargins);

pair z=polar(r,theta);
draw(z--(z.x,0),dotted+red);
draw((0,0)--(z.x,0),dotted+red);
label("$r\cos\theta$",(0.5*z.x,0),0.5*S,red);
label("$r\sin\theta$",(z.x,0.5*z.y),0.5*E,red);
dot("$(x,y)$",z,N);
draw("r",(0,0)--z,0.5*unit(z)*I,blue,Arrow,DotMargin);

dot("$(a,0)$",(1,0),NE);
dot("$(2a,0)$",(2,0),NE);



Étiquettes : , ,

## Official Asymptote example – scaledgraph

Category: Asymptote,Official Gallery One-PagerPh. Ivaldi @ 12 h 57 min

 (Compiled with Asymptote version 2.14svn-r5318)
/* This code comes from The Official Asymptote Gallery */

import graph;

axiscoverage=0.9;
size(200,IgnoreAspect);

real[] x={-1e-11,1e-11};
real[] y={0,1e6};

real xscale=round(log10(max(x)));
real yscale=round(log10(max(y)))-1;

draw(graph(x*10^(-xscale),y*10^(-yscale)),red);

xaxis("$x/10^{"+(string) xscale+"}$",BottomTop,LeftTicks);
yaxis("$y/10^{"+(string) yscale+"}$",LeftRight,RightTicks(trailingzero));



Étiquettes : ,

## Official Asymptote example – secondaryaxis

Category: Asymptote,Official Gallery One-PagerPh. Ivaldi @ 13 h 57 min

 (Compiled with Asymptote version 2.14svn-r5318)
/* This code comes from The Official Asymptote Gallery */

import graph;

size(9cm,6cm,IgnoreAspect);
string data="secondaryaxis.csv";

file in=input(data).line().csv();

string[] titlelabel=in;
string[] columnlabel=in;

real[][] a=in.dimension(0,0);
a=transpose(a);
real[] t=a[0], susceptible=a[1], infectious=a[2], dead=a[3], larvae=a[4];
real[] susceptibleM=a[5], exposed=a[6],infectiousM=a[7];

scale(true);

draw(graph(t,susceptible,t >= 10 & t <= 15));
draw(graph(t,dead,t >= 10 & t <= 15),dashed);

xaxis("Time ($\tau$)",BottomTop,LeftTicks);
yaxis(Left,RightTicks);

picture secondary=secondaryY(new void(picture pic) {
scale(pic,Linear(true),Log(true));
draw(pic,graph(pic,t,infectious,t >= 10 & t <= 15),red);
yaxis(pic,Right,red,LeftTicks(begin=false,end=false));
});

label(shift(5mm*N)*"Proportion of crows",point(NW),E);



Étiquettes : , , , ,

## Official Asymptote example – sin1x

Category: Asymptote,Official Gallery One-PagerPh. Ivaldi @ 19 h 57 min

 (Compiled with Asymptote version 2.14svn-r5318)
/* This code comes from The Official Asymptote Gallery */

import graph;
size(200,0);

real f(real x) {return (x != 0) ? sin(1/x) : 0;}
real T(real x) {return 2/(x*pi);}

real a=-4/pi, b=4/pi;
int n=150,m=5;

xaxis("$x$",red);
yaxis(red);

draw(graph(f,a,-T(m),n)--graph(f,-m,-(m+n),n,T)--(0,f(0))--graph(f,m+n,m,n,T)--
graph(f,T(m),b,n));

label("$\sin\frac{1}{x}$",(b,f(b)),SW);



Étiquettes : , ,

## Official Asymptote example – spectrum

Category: Asymptote,Official Gallery One-PagerPh. Ivaldi @ 1 h 57 min

 (Compiled with Asymptote version 2.14svn-r5318)
/* This code comes from The Official Asymptote Gallery */

import graph;
usepackage("ocg");
settings.tex="pdflatex";

// Dan Bruton algorithm
pen nm2rgb(real wl, real gamma=0.8, bool intensity=true) {
triple rgb;
if(wl >= 380 && wl <= 440) {rgb=((440-wl)/60,0,1);}
if(wl >  440 && wl <= 490) {rgb=(0,(wl-440)/50,1);}
if(wl >  490 && wl <= 510) {rgb=(0,1,(510-wl)/20);}
if(wl >  510 && wl <= 580) {rgb=((wl-510)/70,1,0);}
if(wl >  580 && wl <= 645) {rgb=(1,(645-wl)/65,0);}
if(wl >  645 && wl <= 780) {rgb=(1,0,0);}

real Intensity=1;
if(intensity) {
if(wl >= 700) {Intensity=0.3+0.7*(780-wl)/80;}
else if(wl <= 420) {Intensity=0.3+0.7*(wl-380)/40;}
}

return rgb((Intensity*rgb.x)**gamma,(Intensity*rgb.y)**gamma,
(Intensity*rgb.z)**gamma);
}

real width=1;
real height=50;

begin("spectrum");
for(real i=380 ; i <= 780 ; i += width) {
draw((i,0)--(i,height),width+nm2rgb(wl=i,false)+squarecap);
}
begin("Extinction",false); // nested
for(real i=380 ; i <= 780 ; i += width) {
draw((i,0)--(i,height),width+nm2rgb(wl=i,true)+squarecap);
}
end();
end();

begin("Wavelength");
xaxis(scale(0.5)*"$\lambda$(nm)",BottomTop,380,780,
RightTicks(scale(0.5)*rotate(90)*Label(),step=2,Step=10),above=true);
end();

// From Astronomical Data Center(NASA)
// Neutral only
real[] Na={423.899, 424.208, 427.364, 427.679, 428.784, 429.101,
432.14, 432.462, 434.149, 434.474, 439.003, 439.334, 441.989, 442.325,
449.418, 449.766, 454.163, 454.519, 568.2633, 568.8204, 588.995,
589.5924};
begin("Na absorption");
for(int i=0; i < Na.length; ++i) {
draw((Na[i],0)--(Na[i],height),0.1*width+squarecap);
}
end();

begin("Na emission");
for(int i=0; i < Na.length; ++i) {
draw((Na[i],0)--(Na[i],-height),0.1*width+nm2rgb(Na[i],false)+squarecap);
}
end();

// Neutral only
real[] Zn={388.334, 396.543, 411.321, 429.288, 429.833, 462.981,
468.014, 472.215, 481.053 , 506.866, 506.958, 518.198, 530.865,
531.024, 531.102, 577.21, 577.55, 577.711, 623.79, 623.917, 636.234,
647.918, 692.832, 693.847, 694.32, 779.936};
begin("Zn absorption",false);
for(int i=0; i < Zn.length; ++i) {
draw((Zn[i],0)--(Zn[i],height),width+squarecap);
}
end();

begin("Zn emission",false);
for(int i=0; i < Zn.length; ++i) {
draw((Zn[i],0)--(Zn[i],-height),width+nm2rgb(Zn[i],false)+squarecap);
}
end();

shipout(bbox(2mm,Fill(white)));



Étiquettes : , , , ,

## Official Asymptote example – spiral

Category: Asymptote,Official Gallery One-PagerPh. Ivaldi @ 6 h 57 min

 (Compiled with Asymptote version 2.14svn-r5318)
/* This code comes from The Official Asymptote Gallery */

size(0,150);
import graph;

real f(real t) {return exp(-t/(2pi));}

draw(polargraph(f,0,20*pi,operator ..));

xaxis("$x$",-infinity,1.3);
yaxis("$y$",-infinity,1);

labelx(1);
labelx("$e^{-1}$",1.0/exp(1),SE);



Étiquettes : , , ,

## Official Asymptote example – spline

Category: Asymptote,Official Gallery One-PagerPh. Ivaldi @ 8 h 57 min

 (Compiled with Asymptote version 2.14svn-r5318)
/* This code comes from The Official Asymptote Gallery */

import graph;
import interpolate;

size(15cm,15cm,IgnoreAspect);

real a=1997, b=2002;
int n=5;
real[] xpt=a+sequence(n+1)*(b-a)/n;
real[] ypt={31,36,26,22,21,24};
horner h=diffdiv(xpt,ypt);
fhorner L=fhorner(h);

scale(false,true);

pen p=linewidth(1);

draw(graph(L,a,b),dashed+black+p,"Lagrange interpolation");
draw(graph(xpt,ypt,Hermite(natural)),red+p,"natural spline");
draw(graph(xpt,ypt,Hermite(monotonic)),blue+p,"monotone spline");
xaxis("$x$",BottomTop,LeftTicks(Step=1,step=0.25));
yaxis("$y$",LeftRight,RightTicks(Step=5));

dot(pairs(xpt,ypt),4bp+gray(0.3));

attach(legend(),point(10S),30S);



Étiquettes : , ,

## Official Asymptote example – tanh

Category: Asymptote,Official Gallery One-PagerPh. Ivaldi @ 20 h 57 min

 (Compiled with Asymptote version 2.14svn-r5318)
/* This code comes from The Official Asymptote Gallery */

import graph;
size(100,0);

real f(real x) {return tanh(x);}
pair F(real x) {return (x,f(x));}

xaxis("$x$");
yaxis("$y$");

draw(graph(f,-2.5,2.5,operator ..));

label("$\tanh x$",F(1.5),1.25*N);



Étiquettes : , ,

## Official Asymptote example – upint

Category: Asymptote,Official Gallery One-PagerPh. Ivaldi @ 16 h 57 min

 (Compiled with Asymptote version 1.87svn-r4652)
/* This code comes from The Official Asymptote Gallery */

import graph;
import lowupint;

size(100,0);

real a=-0.8, b=1.2;
real c=-1.0/sqrt(3.0);

partition(a,b,c,max);

arrow("$f(x)$",F(0.5*(a+b)),NNE,red);
label("$\cal{U}$",(0.5*(a+b),f(0.5*(a+b))/2));



Étiquettes : ,

## Official Asymptote example – vectorfield

Category: Asymptote,Official Gallery One-PagerPh. Ivaldi @ 17 h 57 min

 (Compiled with Asymptote version 2.14svn-r5318)
/* This code comes from The Official Asymptote Gallery */

import graph;
size(100);

pair a=(0,0);
pair b=(2pi,2pi);

path vector(pair z) {return (0,0)--(sin(z.x),cos(z.y));}



Étiquettes : ,

## Official Asymptote example – westnile

Category: Asymptote,Official Gallery One-PagerPh. Ivaldi @ 0 h 57 min

 (Compiled with Asymptote version 2.14svn-r5318)
/* This code comes from The Official Asymptote Gallery */

import graph;

size(9cm,8cm,IgnoreAspect);
string data="westnile.csv";

file in=input(data).line().csv();

string[] columnlabel=in;

real[][] A=in.dimension(0,0);
A=transpose(A);
real[] number=A[0], survival=A[1];

path g=graph(number,survival);
draw(g);

scale(true);

xaxis("Initial no.\ of mosquitoes per bird ($S_{M_0}/N_{B_0}$)",
Bottom,LeftTicks);
xaxis(Top);
yaxis("Susceptible bird survival",Left,RightTicks(trailingzero));
yaxis(Right);

real a=number[0];
real b=number[number.length-1];

real S1=0.475;
path h1=(a,S1)--(b,S1);
real M1=interp(a,b,intersect(h1,g)[0]);

real S2=0.9;
path h2=(a,S2)--(b,S2);
real M2=interp(a,b,intersect(h2,g)[0]);

labelx("$M_1$",M1);
labelx("$M_2$",M2);

draw((a,S2)--(M2,S2)--(M2,0),Dotted);
draw((a,S1)--(M1,S1)--(M1,0),dashed);

pen p=fontsize(10pt);

real y3=0.043;
path reduction=(M1,y3)--(M2,y3);
draw(reduction,Arrow,TrueMargin(0,0.5*(linewidth(Dotted)+linewidth())));

arrow(shift(-20,5)*Label(minipage("\flushleft{\begin{itemize}\item[1.]
Estimate proportion of birds surviving at end of season\end{itemize}}",100),
align=NNE),
(M1,S1),NNE,1cm,p,Arrow(NoFill));

arrow(shift(-24,5)*Label(minipage("\flushleft{\begin{itemize}\item[2.]
(M1,0),NE,2cm,p,Arrow(NoFill));

arrow(shift(20,0)*Label(minipage("\flushleft{\begin{itemize}\item[3.]
Determine desired bird survival for next season\end{itemize}}",90),align=SW),
(M2,S2),SW,arrowlength,p,Arrow(NoFill));

arrow(shift(8,-15)*Label(minipage("\flushleft{\begin{itemize}\item[4.]
Calculate required proportional reduction in mosquitoes\end{itemize}}",90),
align=NW),
point(reduction,0.5),NW,1.5cm,p,Arrow(NoFill));



Étiquettes : ,

## Official Asymptote example – xsin1x

Category: Asymptote,Official Gallery One-PagerPh. Ivaldi @ 2 h 57 min

 (Compiled with Asymptote version 2.14svn-r5318)
/* This code comes from The Official Asymptote Gallery */

import graph;
size(300,0);

real f(real x) {return (x != 0.0) ? x * sin(1.0 / x) : 0.0;}
pair F(real x) {return (x,f(x));}

xaxis("$x$",red);
yaxis(red);
draw(graph(f,-1.2/pi,1.2/pi,1000));
label("$x\sin\frac{1}{x}$",F(1.1/pi),NW);

picture pic;
size(pic,50,IgnoreAspect);
xaxis(pic,red);
yaxis(pic,red);
draw(pic,graph(pic,f,-0.1/pi,0.1/pi,1000));

add(new void(frame f, transform t) {
frame G=shift(point(f,N+0.85W))*align(bbox(pic,blue),10SE);
draw(f,t*box(min(pic,user=true),max(pic,user=true)),blue);
draw(f,point(G,E)--t*point(pic,W),blue);
});



Étiquettes : , ,

## Animation with Asymptote – fig0100

Category: Animation,AsymptotePh. Ivaldi @ 17 h 20 min

 (Compiled with Asymptote version 1.86svn-r4626)
Movie flash (swf)
This animation is available in the Syracuse web site.

import animation;
import graph;

settings.tex="pdflatex";
settings.outformat="pdf";

unitsize(x=2cm,y=1.5cm);

typedef real realfcn(real);

real lambda=4;
real T=2;
real [] k=new real[3];
real [] w=new real[3];
k[0]=2pi/lambda;
w[0]=2pi/T;
real dk=-.5;
k[1]=k[0]-dk;
k[2]=k[0]+dk;
real dw=1;
w[1]=w[0]-dw;
w[2]=w[0]+dw;

real vp=w[1]/k[1];
real vg=dw/dk;

realfcn F(real x) {
return new real(real t) {
return cos(k[1]*x-w[1]*t)+cos(k[2]*x-w[2]*t);
};
};

realfcn G(real x) {
return new real(real t) {
return 2*cos(0.5*(k[2]-k[1])*x+0.5*(w[1]-w[2])*t);
};
};

realfcn operator -(realfcn f) {return new real(real t) {return -f(t);};};

animation A;

real tmax=abs(2pi/dk);
real xmax=abs(2pi/dw);

pen envelope=0.8*blue;
pen fillpen=lightgrey;

int n=50;
real step=tmax/(n-1);
for(int i=0; i < n; ++i) {
save();
real t=i*step;
real a=xmax*t/tmax-xmax/pi;
real b=xmax*t/tmax;
path f=graph(F(t),a,b);
path g=graph(G(t),a,b);
path h=graph(-G(t),a,b);
fill(buildcycle(reverse(f),g),fillpen);
draw(f);
draw(g,envelope);
draw(h,envelope);
restore();
}

for(int i=0; i < n; ++i) {
save();
real t=i*step;
real a=-xmax/pi;
real b=xmax;
path f=graph(F(t),a,b);
path g=graph(G(t),a,b);
path h=graph(-G(t),a,b);
path B=box((-xmax/pi,-2),(xmax,2));
fill(buildcycle(reverse(f),g,B),fillpen);
fill(buildcycle(f,g,reverse(B)),fillpen);
draw(f);
draw(g,envelope);
draw(h,envelope);
restore();
}

A.movie();



Étiquettes : , , , ,

## Animation with Asymptote – fig0130

Category: Animation,AsymptotePh. Ivaldi @ 20 h 20 min

 (Compiled with Asymptote version 1.86svn-r4626)
Movie flash (swf)
This animation is available in the Syracuse web site.

// From an idea posted by Fabrice Couvreur
import geometry;
import animate;
settings.tex="pdflatex";
settings.outformat="pdf";

point A=(0,0), B=(8,0), C=(8,10);
unitsize(5cm/B.x,5cm/C.y);
animation Anim,Anim1;
path locus;

triangle t=triangle(A,B,C);
transform proj=projection(t.BC);
draw(t,linewidth(bp));
label(t);
segment s=segment(t.AB);
line l1 =line(t.BC);

int n=50; // Points number of the locus
real a=0, step=1/(n-1);
for (int i=0; i < n; ++i) {
save(); // Geometry part
point M=point(s,a);
line l2=parallel(M,l1);
point Np=intersectionpoint(l2,t.AC);
point P=proj*Np;
dot("$M$",M,S,0.8*red);
dot("$P$",P,E,0.8*red);
dot("$N$",Np,W,0.8*red);
fill(M--Np--P--B--cycle,0.8*red);
perpendicularmark(t.BC,t.BA);
Anim.add(); // Anim contain only the geometry part
restore();
// Graph part
picture gph; // picture of the graph
unitsize(gph,5cm/B.x,4cm/C.y); // units for the graph
show(gph,currentcoordsys);
point Sp=(a*abs(B-A),abs(M-B)*abs(M-Np));
locus=locus..Sp;
draw(gph,locus, bp+0.8*red);
Anim1.add(gph); // Anim1 contain only the graph part
a += step;
}

Anim1.export(); // make all Anim1 pictures to the same size.
Anim1.purge();

for (int i=0; i < Anim.pictures.length; ++i) {
// draw axis on all pictures of Anim1
draw(Anim1.pictures[i],Label("$x$",align=S,position=EndPoint),hline,Arrow);
draw(Anim1.pictures[i],Label("$y$",align=W,position=EndPoint),vline,Arrow);
// add each graph to the corresponding geometric picture