Exemples généraux
List of pictures
Figure 0001
figure 0001
Figure 0002
figure 0002
Figure 0003
figure 0003
Figure 0004
figure 0004
Figure 0005
figure 0005
Figure 0006
figure 0006
Figure 0007
figure 0007
Figure 0008
figure 0008
Figure 0009
figure 0009
Figure 0010
figure 0010
Figure 0011
figure 0011
Figure 0012
figure 0012
Figure 0013
figure 0013
Figure 0014
figure 0014
Figure 0015
figure 0015
Figure 0016
figure 0016
Figure 0017
figure 0017
Figure 0018
figure 0018
Figure 0019
figure 0019
Figure 0020
figure 0020
Figure 0021
figure 0021
Figure 0022
figure 0022
Figure 0023
figure 0023
Figure 0024
figure 0024
Figure 0025
figure 0025
Figure 0026
figure 0026
Figure 0027
figure 0027
Figure 0028
figure 0028
Figure 0029
figure 0029
Figure 0030
figure 0030
Figure 0031
figure 0031
Figure 0032
figure 0032
Figure 0033
figure 0033
Figure 0034
figure 0034
Figure 0035
figure 0035
Figure 0036
figure 0036
Figure 0037
figure 0037
Figure 0038
figure 0038
Figure 0039
figure 0039
Figure 0040
figure 0040
Figure 0041
figure 0041
Figure 0042
figure 0042
Figure 0043
figure 0043
Figure 0044
figure 0044
Figure 0045
figure 0045
Figure 0046
figure 0046
Figure 0047
figure 0047
Figure 0048
figure 0048
Figure 0049
figure 0049
Figure 0050
figure 0050
Figure 0051
figure 0051
Figure 0052
figure 0052
Figure 0053
figure 0053
Figure 0054
figure 0054
Figure 0055
figure 0055
Figure 0056
figure 0056
Figure 0057
figure 0057
Figure 0058
figure 0058
Figure 0059
figure 0059
Figure 0060
figure 0060
Figure 0061
figure 0061
Figure 0062
figure 0062
Figure 0063
figure 0063
Figure 0064
figure 0064
Figure 0065
figure 0065
Figure 0066
figure 0066
Figure 0067
figure 0067
Figure 0068
figure 0068
Figure 0069
figure 0069
Figure 0070
figure 0070
Figure 0071
figure 0071
Figure 0072
figure 0072
Figure 0073
figure 0073
Figure 0074
figure 0074
Figure 0075
figure 0075
Figure 0076
figure 0076
Figure 0077
figure 0077
Figure 0078
figure 0078
Figure 0079
figure 0079
Figure 0080
figure 0080
Figure 0081
figure 0081
Figure 0082
figure 0082
Figure 0083
figure 0083
Figure 0084
figure 0084
Figure 0085
figure 0085
Figure 0086
figure 0086
Figure 0087
figure 0087
Figure 0088
figure 0088
Figure 0089
figure 0089
Figure 0090
figure 0090
Figure 0091
figure 0091
Figure 0092
figure 0092
Figure 0093
figure 0093
Figure 0094
figure 0094
Figure 0095
figure 0095
Figure 0096
figure 0096
Figure 0097
figure 0097
Figure 0098
figure 0098
Figure 0099
figure 0099
Figure 0100
figure 0100
Figure 0101
figure 0101
Figure 0102
figure 0102
Figure 0103
figure 0103
Figure 0104
figure 0104
Figure 0105
figure 0105
Figure 0106
figure 0106
Figure 0107
figure 0107
Figure 0108
figure 0108
Figure 0109
figure 0109
Figure 0110
figure 0110
Figure 0111
figure 0111
Figure 0112
figure 0112
Figure 0113
figure 0113
Figure 0114
figure 0114
Figure 0115
figure 0115
Figure 0116
figure 0116
Figure 0117
figure 0117
Figure 0118
figure 0118
Figure 0119
figure 0119
Figure 0120
figure 0120
Figure 0121
figure 0121
Figure 0122
figure 0122
Figure 0123
figure 0123
Figure 0124
figure 0124
Figure 0125
figure 0125
Figure 0126
figure 0126
Figure 0127
figure 0127
Figure 0128
figure 0128
Figure 0129
figure 0129
Figure 0130
figure 0130
Figure 0131
figure 0131
Figure 0132
figure 0132
Figure 0133
figure 0133
Figure 0134
figure 0134
Figure 0135
figure 0135
Figure 0136
figure 0136
Figure 0137
figure 0137
Figure 0138
figure 0138
Figure 0139
figure 0139
Figure 0140
figure 0140
Figure 0141
figure 0141
Figure 0142
figure 0142
Figure 0143
figure 0143
Figure 0144
figure 0144
Figure 0145
figure 0145
Figure 0146
figure 0146
Figure 0147
figure 0147
Figure 0148
figure 0148
Figure 0149
figure 0149
Figure 0150
figure 0150
Figure 0151
figure 0151
Figure 0152
figure 0152
Figure 0153
figure 0153
Figure 0154
figure 0154
Figure 0155
figure 0155
Figure 0156
figure 0156
Figure 0157
figure 0157
Figure 0158
figure 0158
Figure 0159
figure 0159
Figure 0160
figure 0160
Figure 0161
figure 0161
Figure 0162
figure 0162
Figure 0163
figure 0163
Figure 0164
figure 0164
Figure 0165
figure 0165
Figure 0166
figure 0166
Figure 0167
figure 0167
Figure 0168
figure 0168
Figure 0169
figure 0169
Figure 0170
figure 0170
Figure 0171
figure 0171
Figure 0172
figure 0172
Figure 0173
figure 0173
Figure 0174
figure 0174
Figure 0175
figure 0175
Figure 0176
figure 0176
Figure 0177
figure 0177
Figure 0178
figure 0178
Figure 0179
figure 0179
Figure 0180
figure 0180
Figure 0181
figure 0181
Figure 0182
figure 0182
Figure 0183
figure 0183
Figure 0184
figure 0184
Figure 0185
figure 0185
Figure 0186
figure 0186
Figure 0187
figure 0187
Figure 0188
figure 0188
Figure 0189
figure 0189
Figure 0190
figure 0190
Figure 0191
figure 0191
Figure 0192
figure 0192
Figure 0193
figure 0193
Figure 0194
figure 0194
Figure 0195
figure 0195
Figure 0196
figure 0196
Figure 0001
Figure 0001: fig0010.asy
(Compiled with Asymptote version 1.87svn-r4652)
    
pair A, B, C, D;
A=(0,0);
B=(2,0);
C=(4,0);
D=(4,2);
draw(A--B);
draw(C--D);

Figure 0002
Figure 0002: fig0020.asy
(Compiled with Asymptote version 1.87svn-r4652)
    
size(1cm,0);
pair A, B, C, D;
A=(0,0);
B=(2,0);
C=(4,0);
D=(4,2);
draw(A--B);
draw(C--D);

Figure 0003
Figure 0003: fig0030.asy
(Compiled with Asymptote version 1.87svn-r4652)
    
size(3cm,0);
pair A, B, C, D;
A=(0,0);
B=(2,0);
C=(4,0);
D=(4,2);
draw(A--B);
draw(C--D);

Figure 0004
Figure 0004: fig0040.asy
(Compiled with Asymptote version 1.87svn-r4652)
    
size(1cm,0.5cm);
pair A, B, C, D;
A=(0,0);
B=(2,0);
C=(4,0);
D=(4,2);
draw(A--B);
draw(C--D);

Figure 0005
Figure 0005: fig0050.asy
(Compiled with Asymptote version 1.87svn-r4652)
    
size(3cm,0.5cm);
pair A, B, C, D;
A=(0,0);
B=(2,0);
C=(4,0);
D=(4,2);
draw(A--B);
draw(C--D);

Figure 0006
Figure 0006: fig0060.asy
(Compiled with Asymptote version 1.87svn-r4652)
    
size(3cm, 0.5cm, false);
pair A, B, C, D;
A=(0,0);
B=(2,0);
C=(4,0);
D=(4,2);
draw(A--B);
draw(C--D);

Figure 0007
Figure 0007: fig0070.asy
(Compiled with Asymptote version 1.87svn-r4652)
    
size(1cm, 3cm, false);
pair A, B, C, D;
A=(0,0);
B=(2,0);
C=(4,0);
D=(4,2);
draw(A--B);
draw(C--D);

Figure 0008
Figure 0008: fig0080.asy
(Compiled with Asymptote version 1.87svn-r4652)
    
pair A, B, C, D;
A=(0,0);
B=(2cm,0);
C=(4cm,0);
D=(4cm,2cm);
draw(A--B);
draw(C--D);

Figure 0009
Figure 0009: fig0090.asy
(Compiled with Asymptote version 1.87svn-r4652)
    
unitsize(1cm);
pair A, B, C, D;
A=(0,0);
B=(2,0);
C=(4,0);
D=(4,2);
draw(A--B);
draw(C--D);

Figure 0010
Figure 0010: fig0100.asy
(Compiled with Asymptote version 1.87svn-r4652)
    
unitsize(x=1cm, y=0.5cm);
pair A, B, C, D;
A=(0,0);
B=(2,0);
C=(4,0);
D=(4,2);
draw(A--B);
draw(C--D);

Figure 0011
Figure 0011: fig0110.asy
(Compiled with Asymptote version 1.87svn-r4652)
    
size(6cm,0);

draw(scale(4)*unitcircle);
dot((0,0));
dot((4,0));
fixedscaling((-8,-8),(6,6));
shipout(bbox(Fill(lightgrey)));

Figure 0012
Figure 0012: fig0120.asy
(Compiled with Asymptote version 1.87svn-r4652)
    
// From Asympote's FAQ
size(6cm,0);

path p=(0,0)--(1,0); 
frame object; 
draw(object,scale(3cm)*p); 
 
add(object); 
add(object,(0,-10)); 


Figure 0013
Figure 0013: fig0130.asy
(Compiled with Asymptote version 1.87svn-r4652)
    
// From Asympote's FAQ
size(6cm,0); 
 
path p=(0,0)--(1,0); 
picture object; 
draw(object,scale(3cm)*p); 
 
add(object); 
add(object,(0,-10)); // Adds truesize object to currentpicture 

Figure 0014
Figure 0014: fig0140.asy
(Compiled with Asymptote version 1.87svn-r4652)
    
size(1cm,1cm);
pair A=(0,0), B=(1,0), C=(0,1);
draw (A--B--C);

Figure 0015
Figure 0015: fig0150.asy
(Compiled with Asymptote version 1.87svn-r4652)
    
size(1cm,1cm);
pair A=(0,0), B=(1,0), C=(0,1);
draw (A--B--C--cycle);

Figure 0016
Figure 0016: fig0160.asy
(Compiled with Asymptote version 1.87svn-r4652)
    
size(1cm,1cm);
pair [] A;
A[0]=(-1, -1);
A[1]=( 1, -1);
A[2]=( 1,  1);
A[3]=(-1,  1);
draw (A[0]--A[1]--A[2]--A[3]--cycle);
draw (A[0]--A[2]);
draw (A[1]--A[3]);

Figure 0017
Figure 0017: fig0170.asy
(Compiled with Asymptote version 1.87svn-r4652)
    
size(2cm,2cm);
draw(unitsquare);
dot((0,0)--(1,1)--(0,1)--(1,0));
draw((0,0)--(1,1));
draw((1,0)--(0,1));

Figure 0018
Figure 0018: fig0180.asy
(Compiled with Asymptote version 1.87svn-r4652)
    
size(4cm,2cm,false);
draw(unitsquare);
dot((0,0)--(1,1)--(0,1)--(1,0));
draw((0,0)--(1,1));
draw((1,0)--(0,1));

Figure 0019
Figure 0019: fig0190.asy
(Compiled with Asymptote version 1.87svn-r4652)
    
size(6cm,0);
pair A,B,C;
A=(0,0);B=(1,0);C=(2,0);
draw(A,8bp+black);
draw(B,8bp+blue);
draw(C,linewidth(8bp));


Figure 0020
Figure 0020: fig0200.asy
(Compiled with Asymptote version 1.87svn-r4643)
    
unitsize(cm);
pair A=(0,0), B=(1,0), C=(0,1);
path trig;
trig=A--B--C--cycle;
draw(trig);
dot(trig,linewidth(4bp));
dot(shift(3,0)*trig,red+4bp);

Figure 0021
Figure 0021: fig0210.asy
(Compiled with Asymptote version 1.87svn-r4652)
    
size(2cm,2cm);
pair A, B, C;
A=(0,0); B=(1,0); C=(0,1);
draw(A--B--C--cycle);
draw (midpoint(A--B) -- C);
draw (B+0.5*(C-B) -- A);
draw (interp(A,C,0.5) -- B);

Figure 0022
Figure 0022: fig0220.asy
(Compiled with Asymptote version 1.87svn-r4652)
    
size(2cm,2cm);
pair A, B, C;
A=(0,0); B=(1,0); C=(0,1);
draw(A--B--C--cycle);
draw (midpoint(A--B) -- C);
draw (B+0.5*(C-B) -- A);
draw (interp(A,C,0.5) -- B);
dot(A/3 + B/3 + C/3);

Figure 0023
Figure 0023: fig0230.asy
(Compiled with Asymptote version 1.87svn-r4652)
    
size(2cm,0);
pair A=(0,0), B=(1,0), C=(0,1);
draw(A--B--C--cycle);
draw(A--B,linewidth(4bp));

Figure 0024
Figure 0024: fig0240.asy
(Compiled with Asymptote version 1.87svn-r4652)
    
size(2cm,0);
pair A=(0,0), B=(1,0), C=(0,1);
draw(A--B--C--cycle);
draw(A--B,(red+green));

Figure 0025
Figure 0025: fig0250.asy
(Compiled with Asymptote version 1.87svn-r4652)
    
size(2cm,0);
pair A=(0,0), B=(1,0), C=(0,1);

draw(A--B,.8white+6bp);
draw(A--C,.6white+6bp);
draw(B--C,.4white+6bp);

draw(A--B--C--cycle,yellow);

Figure 0026
Figure 0026: fig0260.asy
(Compiled with Asymptote version 1.87svn-r4652)
    
size(4cm,0);

path p1=(0,0)--(1,1);
path p2=(2,0)--(3,1);

draw(p1,linewidth(5mm));
draw(p2,linewidth(5mm));
draw(p1--p2,3mm+.8blue);
draw(reverse(p1)--p2,1mm+.8red);

Figure 0027
Figure 0027: fig0270.asy
(Compiled with Asymptote version 1.87svn-r4652)
    
size(6cm,0);

pair A=(0,0), B=(1,0);

dot("$A$",A,N);
dot("$B$",B,N);
draw(interp(A,B,-.5)--interp(A,B,1.25));

Figure 0028
Figure 0028: fig0280.asy
(Compiled with Asymptote version 1.87svn-r4652)
    
unitsize(cm);
path line=(0,0)--(6,0);

draw(line,solid);
draw(shift(0,-1)*line,dotted);
draw(shift(0,-2)*line,dashed);
draw(shift(0,-3)*line,longdashed);
draw(shift(0,-4)*line,dashdotted);
draw(shift(0,-5)*line,longdashdotted);

Figure 0029
Figure 0029: fig0290.asy
(Compiled with Asymptote version 1.87svn-r4652)
    
unitsize(1cm);
path line=(0,0)--(6,0);
pen my_pen=linetype("24 8 8 8");

draw(line,linetype("24 8 8 8"));
draw(shift(0,-1)*line,my_pen+.8red);
draw(shift(0,-2)*line,my_pen+.7green+4bp);
draw(shift(0,-3)*line,linetype("24 8 8 8",false)+.7blue+4bp);
draw(shift(0,-4)*line,linetype("24 8 8 8",true,false)+4bp);
draw(shift(0,-5)*line,linetype("24 8 8 8",false,false)+.5red+blue+4bp);

Figure 0030
Figure 0030: fig0300.asy
(Compiled with Asymptote version 1.87svn-r4652)
    
size(8cm,0);

transform T=shift(0,-0.125);
path g=(0,0)--(1,0);
int i=-1;
draw(T^(++i)*g, Arrows());
draw(T^(++i)*g, 0.8*green, Arrows(SimpleHead));
draw(T^(++i)*g, 0.8*red, Arrows(SimpleHead,size=5mm));

draw(T^(++i)*g, Arrows(HookHead));
draw(T^(++i)*g, 0.8*green, Arrows(HookHead,size=5mm));
draw(T^(++i)*g, 0.8*red, Arrows(HookHead(barb=20),size=5mm));
draw(T^(++i)*g, 2mm+0.8*blue, Arrows(HookHead(dir=60),size=5mm, Fill));

draw(T^(++i)*g, 0.8*yellow, Arrows(HookHead(barb=-10,dir=40),size=5mm));

draw(T^(++i)*g, Arrows(TeXHead));
draw(T^(++i)*g, 0.8*green, Arrows(TeXHead,size=5bp));
draw(T^(++i)*g, 5bp+0.8*red, Arrows(TeXHead));

Figure 0031
Figure 0031: fig0310.asy
(Compiled with Asymptote version 1.87svn-r4652)
    
path line=(0,0)--(5cm,0);
draw(line,Arrow);
draw(shift(0,-cm)*line, BeginArrow);
draw(shift(0,-2cm)*line, MidArrow);
draw(shift(0,-3cm)*line, Arrows);

draw(shift(0,-4cm)*line, linewidth(3bp), Arrow(20bp));
draw(shift(0,-5cm)*line, linewidth(3bp), BeginArrow(20bp));
draw(shift(0,-6cm)*line, linewidth(3bp), MidArrow(20bp));
draw(shift(0,-7cm)*line, linewidth(3bp), Arrows(20bp));

Figure 0032
Figure 0032: fig0320.asy
(Compiled with Asymptote version 1.87svn-r4652)
    
path line=(0,0)--(5cm,0);
DefaultHead=HookHead;
draw(shift(6cm,0)*line,Arrow());
draw(shift(6cm,-cm)*line, BeginArrow());
draw(shift(6cm,-2cm)*line, MidArrow());
draw(shift(6cm,-3cm)*line, Arrows());

draw(shift(6cm,-4cm)*line, linewidth(3bp), Arrow(20bp));
draw(shift(6cm,-5cm)*line, linewidth(3bp), BeginArrow(20bp));
draw(shift(6cm,-6cm)*line, linewidth(3bp), MidArrow(20bp));
draw(shift(6cm,-7cm)*line, linewidth(3bp), Arrows(20bp));

Figure 0033
Figure 0033: fig0330.asy
(Compiled with Asymptote version 1.87svn-r4652)
    
path line=(0,0)--(5cm,0);
DefaultHead=SimpleHead;
draw(shift(6cm,0)*line,Arrow());
draw(shift(6cm,-cm)*line, BeginArrow());
draw(shift(6cm,-2cm)*line, MidArrow());
draw(shift(6cm,-3cm)*line, Arrows());

draw(shift(6cm,-4cm)*line, linewidth(3bp), Arrow(20bp));
draw(shift(6cm,-5cm)*line, linewidth(3bp), BeginArrow(20bp));
draw(shift(6cm,-6cm)*line, linewidth(3bp), MidArrow(20bp));
draw(shift(6cm,-7cm)*line, linewidth(3bp), Arrows(20bp));

Figure 0034
Figure 0034: fig0340.asy
(Compiled with Asymptote version 1.87svn-r4652)
    
path line=(0,0)--(5cm,0);
DefaultHead=TeXHead;
draw(shift(6cm,0)*line,Arrow());
draw(shift(6cm,-cm)*line, BeginArrow());
draw(shift(6cm,-2cm)*line, MidArrow());
draw(shift(6cm,-3cm)*line, Arrows());

draw(shift(6cm,-4cm)*line, linewidth(bp), Arrow());
draw(shift(6cm,-5cm)*line, linewidth(2bp), BeginArrow(5bp));
draw(shift(6cm,-6cm)*line, linewidth(2bp), MidArrow(5bp));
draw(shift(6cm,-7cm)*line, linewidth(2bp), Arrows(5bp));

Figure 0035
Figure 0035: fig0350.asy
(Compiled with Asymptote version 1.87svn-r4652)
    
path line=(0,0)..(2.5cm,2.5cm)..(5cm,0);
draw(line,ArcArrow);
draw(shift(0,-2cm)*line,BeginArcArrow);
draw(shift(0,-4cm)*line,MidArcArrow);
draw(shift(0,-6cm)*line,ArcArrows);

draw(shift(6cm,0)*line,3bp+.8red,ArcArrow(20bp));
draw(shift(6cm,-2cm)*line,3bp+.8red,BeginArcArrow(20bp));
draw(shift(6cm,-4cm)*line,3bp+.8red,MidArcArrow(20bp));
draw(shift(6cm,-6cm)*line,3bp+.8red,ArcArrows(20bp));

Figure 0036
Figure 0036: fig0360.asy
(Compiled with Asymptote version 1.87svn-r4652)
    
DefaultHead=HookHead;

path line=(0,0)..(2.5cm,2.5cm)..(5cm,0);
draw(line,ArcArrow());
draw(shift(0,-2cm)*line,BeginArcArrow());
draw(shift(0,-4cm)*line,MidArcArrow());
draw(shift(0,-6cm)*line,ArcArrows());

draw(shift(6cm,0)*line,3bp+.8red,ArcArrow(20bp));
draw(shift(6cm,-2cm)*line,3bp+.8red,BeginArcArrow(20bp));
draw(shift(6cm,-4cm)*line,3bp+.8red,MidArcArrow(20bp));
draw(shift(6cm,-6cm)*line,3bp+.8red,ArcArrows(20bp));

Figure 0037
Figure 0037: fig0370.asy
(Compiled with Asymptote version 1.87svn-r4652)
    
DefaultHead=SimpleHead;

path line=(0,0)..(2.5cm,2.5cm)..(5cm,0);
draw(line,ArcArrow());
draw(shift(0,-2cm)*line,BeginArcArrow());
draw(shift(0,-4cm)*line,MidArcArrow());
draw(shift(0,-6cm)*line,ArcArrows());

draw(shift(6cm,0)*line,3bp+.8red,ArcArrow(20bp));
draw(shift(6cm,-2cm)*line,3bp+.8red,BeginArcArrow(20bp));
draw(shift(6cm,-4cm)*line,3bp+.8red,MidArcArrow(20bp));
draw(shift(6cm,-6cm)*line,3bp+.8red,ArcArrows(20bp));

Figure 0038
Figure 0038: fig0380.asy
(Compiled with Asymptote version 1.87svn-r4652)
    
DefaultHead=TeXHead;

path line=(0,0)..(2.5cm,2.5cm)..(5cm,0);
draw(line,Arrow());
draw(shift(0,-2cm)*line,BeginArrow());
draw(shift(0,-4cm)*line,MidArrow());
draw(shift(0,-6cm)*line,Arrows());

draw(shift(6cm,0)*line,3bp+.8red,Arrow(5bp));
draw(shift(6cm,-2cm)*line,3bp+.8red,BeginArrow(5bp));
draw(shift(6cm,-4cm)*line,3bp+.8red,MidArrow(5bp));
draw(shift(6cm,-6cm)*line,3bp+.8red,Arrows(5bp));

Figure 0039
Figure 0039: fig0390.asy
(Compiled with Asymptote version 1.87svn-r4652)
    
path line=(0,0)--(5cm,0);

draw(line,Arrow(20bp,filltype=NoFill));
draw(shift(0,-cm)*line,Arrow(20bp,filltype=FillDraw(.8red)));
draw(shift(0,-2cm)*line,Arrow(20bp,filltype=Fill(.8red)));
draw(shift(0,-3cm)*line,Arrows(filltype=FillDraw(-10,10,.8red)));

Figure 0040
Figure 0040: fig0400.asy
(Compiled with Asymptote version 1.87svn-r4652)
    
DefaultHead=HookHead;
path line=(0,0)--(5cm,0);

draw(line,Arrow(20bp,filltype=NoFill));
draw(shift(0,-cm)*line,Arrow(20bp,filltype=FillDraw(.8red)));
draw(shift(0,-2cm)*line,Arrow(20bp,filltype=Fill(.8red)));
draw(shift(0,-3cm)*line,Arrows(filltype=FillDraw(-10,10,.8red)));

Figure 0041
Figure 0041: fig0410.asy
(Compiled with Asymptote version 1.87svn-r4652)
    
DefaultHead=TeXHead;
path line=(0,0)--(5cm,0);

draw(line,Arrow(10bp,filltype=NoFill));
draw(shift(0,-2cm)*line,Arrow(10bp,filltype=FillDraw(.8red)));
draw(shift(0,-4cm)*line,Arrow(10bp,filltype=Fill(.8red)));
draw(shift(0,-6cm)*line,Arrows(filltype=FillDraw(-10,10,.8red)));

Figure 0042
Figure 0042: fig0420.asy
(Compiled with Asymptote version 1.87svn-r4652)
    
path line=(0,0)--(5cm,0);

draw(line,linewidth(5bp),Arrow);
draw(shift(0,-2cm)*line,linewidth(5bp),Arrow(30bp,10));
draw(shift(0,-5cm)*line,linewidth(30bp),Arrow(20bp,50));
draw(shift(0,-8cm)*line,linewidth(10bp),Arrow(20bp,50,filltype=NoFill));

Figure 0043
Figure 0043: fig0430.asy
(Compiled with Asymptote version 1.87svn-r4652)
    
size(5cm,0);
path line=(0,0)--(5,0);

draw(line,Arrow(20bp,position=.75));
draw(shift(0,-2)*line,Arrow(20bp,40,.75,filltype=NoFill));

position pos=BeginPoint;
pos.position=.75;
draw(shift(0,-4)*line,BeginArrow(20bp,pos));
draw(shift(0,-6)*line,BeginArrow(20bp,40,pos,filltype=NoFill));

Figure 0044
Figure 0044: fig0440.asy
(Compiled with Asymptote version 1.87svn-r4652)
    
unitsize(5cm);

path g=(0,0)--(1,0);
draw(g,Arrow(Relative(0.45)));
add(arrow(g,Relative(0.55)));

Figure 0045
Figure 0045: fig0450.asy
(Compiled with Asymptote version 1.87svn-r4652)
    
size(5cm,0);
path g = (0,0)--(1,0);
draw(g,Arrow(Relative(0.75)));
add(arrow(reverse(g), invisible, FillDraw(green,red), Relative(0.75)));

Figure 0046
Figure 0046: fig0460.asy
(Compiled with Asymptote version 1.87svn-r4652)
    
size(5cm,0);
path line=(0,0)--(5,0);
transform T=shift(0,-1);

draw(line, Bar);
draw(T*line, BeginBar);
draw(T^2*line, Bars);
draw(T^3*line, Arrow, BeginBar);


Figure 0047
Figure 0047: fig0470.asy
(Compiled with Asymptote version 1.87svn-r4652)
    
path line=(0,0)--(5cm,0);
transform T=shift(0,-cm);

draw(line,linewidth(1mm),Bars);
draw(T^2*line,Bars(5mm));
draw(T^3*line,linewidth(1mm),Bars(5mm));
draw(T^4*line,dotted+red,Bars);

Figure 0048
Figure 0048: fig0480.asy
(Compiled with Asymptote version 1.87svn-r4652)
    
size(4cm,0);

draw((-.5,0)--(1,0));
draw((0,-.5)--(0,1));
draw((0,0)--(.75,0),linewidth(1mm),Arrow(3mm));
draw((0,0)--(0,.75),linewidth(1mm),Arrow(3mm));

Figure 0049
Figure 0049: fig0490.asy
(Compiled with Asymptote version 1.87svn-r4652)
    
fill((0,0)--(0,2cm)--(2cm,0)--cycle,gray);

Figure 0050
Figure 0050: fig0500.asy
(Compiled with Asymptote version 1.87svn-r4652)
    
filldraw((0,0)--(0,2cm)--(2cm,0)--cycle,gray);

Figure 0051
Figure 0051: fig0510.asy
(Compiled with Asymptote version 1.87svn-r4652)
    
filldraw((0,0)--(0,2cm)--(2cm,0)--cycle,fillpen=gray,drawpen=linewidth(1mm)+.8red);

Figure 0052
Figure 0052: fig0520.asy
(Compiled with Asymptote version 1.87svn-r4652)
    
pen[][] p={{rgb(black)},
           {rgb(.8red)}};

latticeshade((0,0)--(0,2cm)--(2cm,0)--cycle,p);

Figure 0053
Figure 0053: fig0530.asy
(Compiled with Asymptote version 1.87svn-r4652)
    
pen[][] p={{rgb(black),rgb(black)},
           {rgb(red),rgb(green)}};

latticeshade((0,0)--(0,2cm)--(2cm,0)--cycle,p);

Figure 0054
Figure 0054: fig0540.asy
(Compiled with Asymptote version 1.87svn-r4652)
    
size(3cm,0);

pen[][] p={{rgb(white),rgb(grey),rgb(black)},
    {red,green,blue},
    {cyan,magenta,yellow}};

latticeshade(unitsquare,p);

Figure 0055
Figure 0055: fig0550.asy
(Compiled with Asymptote version 1.87svn-r4652)
    
size(3cm,0);
import palette;

real[][] v={{1,2},{3,4}};
pen[] Palette=Rainbow();

latticeshade(box((0,0),(1,1)),palette(v,Palette));

Figure 0056
Figure 0056: fig0560.asy
(Compiled with Asymptote version 1.87svn-r4652)
    
size(3cm,0);

pair A=(0.35,0.35), B=(0.6,0.6);

radialshade(unitsquare,black,A,0.15,lightgrey,B,.6);

dot(A,.8red);
dot(B,blue+grey);
draw(shift(A)*scale(.15)*unitcircle,dashed+.8red);
draw(shift(B)*scale(.6)*unitcircle,dashed+blue+grey);
clip(unitsquare);

Figure 0057
Figure 0057: fig0570.asy
(Compiled with Asymptote version 1.87svn-r4652)
    
size(3cm,0);

transform t=xscale(1.25);
pen p1=red, p2=yellow;
pair pa=t*dir(135), pb=t*dir(-45);

axialshade(t*unitcircle,p1,pa,p2,pb);
draw(pa--pb, dashed);

Figure 0058
Figure 0058: fig0580.asy
(Compiled with Asymptote version 1.87svn-r4652)
    
// Author: John Bowman
size(10cm,0);

real r=1;
real R=3.8;

int step=30;
path p=arc(0,r,0,step);
path P=arc(0,R,step,0);
for(int h=0; h < 360; h += step) {
  transform t=rotate(90-h);
  tensorshade(t*p--t*P--cycle,
              new pen[] {white,white,hsv(h-step,1,1),hsv(h,1,1)});
}

for(int h=0; h < 360; h += 30) {
  pair v=R*dir(90-h);
  draw(Label(string(h)+"$^\circ$",EndPoint),(v--1.05v));
}

draw(circle(0,r));
draw(circle(0,R));

Figure 0059
Figure 0059: fig0590.asy
(Compiled with Asymptote version 1.87svn-r4652)
    
size(12cm,0);
path[] P=texpath("$\displaystyle\int_{-\infty}^{+\infty}e^{-\alpha x^2}\,dx=
\sqrt{\frac{\pi}{\alpha}}$");
pair m=min(P), M=max(P);

axialshade(P,yellow,m,red,(m.x,M.y));
draw(P,0.5*blue);
shipout(bbox(3mm,Fill));

Figure 0060
Figure 0060: fig0600.asy
(Compiled with Asymptote version 1.87svn-r4652)
    
size(3cm,0);

pair A, B, C, D;
A=(0,0); B=(1,0);
C=(1,1); D=(0,1);
fill(A--C--B--D--cycle,grey);

Figure 0061
Figure 0061: fig0610.asy
(Compiled with Asymptote version 1.87svn-r4652)
    
size(3cm,0);

pair A, B, C, D;
A=(0,0); B=(1,0);
C=(1,1); D=(0,1);
filldraw(A--C--B--D--cycle,grey);

Figure 0062
Figure 0062: fig0620.asy
(Compiled with Asymptote version 1.87svn-r4652)
    
size(10cm,0);

path cle=unitcircle;

draw((-1.5,0)--(2.5,0),linewidth(10mm));
filldraw(cle,red+opacity(.5));
filldraw(shift((1,0))*cle,blue+opacity(.5));

shipout(format="pdf");
/*Others examples here.*/

Figure 0063
Figure 0063: fig0630.asy
(Compiled with Asymptote version 1.87svn-r4652)
    
pair O=0;
dot("N",O,N);
dot("S",O,S);
dot("E",O,E);
dot("W",O,W);

Figure 0064
Figure 0064: fig0640.asy
(Compiled with Asymptote version 1.87svn-r4652)
    
pair O=0;
labelmargin=2;

dot("N",O,N);
dot("S",O,S);
dot("E",O,E);
dot("W",O,W);

Figure 0065
Figure 0065: fig0650.asy
(Compiled with Asymptote version 1.87svn-r4652)
    
size(4cm,0);

pair O=0;
dot("N",O,10N);
draw("S",O,10S);
draw("E",O,10E);
draw("W",O,10W);

draw("NE",O,5NE);
draw("SE",O,5SE);
draw("NW",O,5NW);
draw("SW",O,5SW);

Figure 0066
Figure 0066: fig0660.asy
(Compiled with Asymptote version 1.87svn-r4652)
    
pair O=0;
draw(scale(2)*Label("N",.8red),O,10*N,linewidth(3mm));
draw(scale(2)*Label("S",.8red),O,10*S);
draw(scale(2)*Label("E",.8red),O,10*E);
draw(scale(2)*Label("W",.8red),O,10*W);

draw(rotate(45)*Label("NE"),O,5NE);
draw(rotate(-45)*Label("SE"),O,5SE);
draw(rotate(-45)*Label("NW"),O,5NW);
draw(rotate(45)*Label("SW"),O,5SW);

Figure 0067
Figure 0067: fig0670.asy
(Compiled with Asymptote version 1.87svn-r4652)
    
pair O=0;
dot(O);
label("$\frac{\pi^2}{2}$",O);

Figure 0068
Figure 0068: fig0680.asy
(Compiled with Asymptote version 1.87svn-r4652)
    
dot(Label("$\frac{\pi^2}{2}$",(0,0),align=E));

Figure 0069
Figure 0069: fig0690.asy
(Compiled with Asymptote version 1.87svn-r4652)
    
label(scale(10)*Label("$\pi$"),(0,0));

Figure 0070
Figure 0070: fig0700.asy
(Compiled with Asymptote version 1.87svn-r4652)
    
texpreamble("\usepackage{manfnt}");

label(scale(3)*Label("\textdbend"),(0,0));

Figure 0071
Figure 0071: fig0710.asy
(Compiled with Asymptote version 1.87svn-r4652)
    
dot(Label("$A$"),(0,0),S);

Figure 0072
Figure 0072: fig0720.asy
(Compiled with Asymptote version 1.87svn-r4652)
    
size(4cm,4cm);

dot(Label("$A$"),(0,0),S);
draw(E--W,invisible);
draw(N--S,invisible);
shipout(bbox());

Figure 0073
Figure 0073: fig0730.asy
(Compiled with Asymptote version 1.87svn-r4652)
    
dot(Label("$A$",fontsize(20pt)),(0,0),NE);  

Figure 0074
Figure 0074: fig0740.asy
(Compiled with Asymptote version 1.87svn-r4652)
    
defaultpen(fontsize(20pt));
dot(Label("$A$"),(0,0),NE);  
dot(Label("$B$"),(2cm,0),NE+N);  

Figure 0075
Figure 0075: fig0750.asy
(Compiled with Asymptote version 1.87svn-r4652)
    
label(rotate(45)*"\textbf{Hello}");

Figure 0076
Figure 0076: fig0760.asy
(Compiled with Asymptote version 1.87svn-r4652)
    
frame f;
label(f,"\textbf{Hello}",yellow,Fill(black));  
add(scale(2)*rotate(45)*f);

Figure 0077
Figure 0077: fig0770.asy
(Compiled with Asymptote version 1.87svn-r4652)
    
frame f;
filldraw(scale(3cm)*unitsquare,black);
label(f,"Hello",.8red,Fill(white));  
add(scale(2)*rotate(45)*f,(1.5cm,1.5cm));

Figure 0078
Figure 0078: fig0780.asy
(Compiled with Asymptote version 1.87svn-r4652)
    
label(scale(4)*"\textbf{Cancel}");
draw((min(currentpicture).x,0)--(max(currentpicture).x,0), 2bp+yellow);

Figure 0079
Figure 0079: fig0790.asy
(Compiled with Asymptote version 1.87svn-r4652)
    
label(scale(4)*"\textbf{Cancel}");
layer();
draw((min(currentpicture).x,0)--(max(currentpicture).x,0), 2bp+yellow);

Figure 0080
Figure 0080: fig0800.asy
(Compiled with Asymptote version 1.87svn-r4652)
    
size(3cm,0);
path line1=(0,0)--(1,0);
path line2=(0,0)--(1,1);
pair bissec=dir(line1,line2);

draw(line1); draw(line2);
dot(bissec,linewidth(3bp));
draw(-.5bissec--bissec,dotted);
dot("$A$",(0,0),-bissec);  

Figure 0081
Figure 0081: fig0810.asy
(Compiled with Asymptote version 1.87svn-r4652)
    
size(4cm,0);
pair A=0, B=(1,0), C=(2,2);;

draw(A--B--C--cycle);
dot("$A$",A,dir(C--A,B--A));  
dot("$B$",B,dir(C--B,A--B));  
dot("$C$",C,dir(A--C,B--C));

Figure 0082
Figure 0082: fig0820.asy
(Compiled with Asymptote version 1.87svn-r4652)
    
size(0,0);
path line=(0,0)--(3cm,0);
transform T=shift(0,-cm);

draw("$A$",line);  
draw("$B$",T*line,dir(0));
draw("$C$",T^2*line,N);
draw(Label("$D$",fontsize(14pt)),T^3*line);

Figure 0083
Figure 0083: fig0830.asy
(Compiled with Asymptote version 1.87svn-r4652)
    
size(0,0);
path line=(0,0)--(3cm,0);
transform T=shift(0,-cm);

draw(Label("A",align=Center,filltype=UnFill), line);
draw(Label("B",UnFill), T*line, Center);
draw(Label("C",align=Center,position=Relative(.75),UnFill), T^2*line);
draw(Label("D",position=Relative(.25),UnFill), align=Center, T^3*line);

Figure 0084
Figure 0084: fig0840.asy
(Compiled with Asymptote version 1.87svn-r4652)
    
pair c=0;
label("abc xyz ijk",c,Align,basealign);
label("abc xyz ijk",c,Align,red);
draw(c--(c+(2cm,0))); // This is the baseline.

shipout((scale(3)*currentpicture.fit()));

Figure 0085
Figure 0085: fig0850.asy
(Compiled with Asymptote version 1.87svn-r4652)
    
size(3cm,0);
pair A=0, B=(1,0), C=(1,1);

draw("$1$",A--B);
draw("$1$",B--C);
draw("$\sqrt{2}$",C--A);

Figure 0086
Figure 0086: fig0860.asy
(Compiled with Asymptote version 1.87svn-r4652)
    
size(3cm,0);
pair A=0, B=(1,0), C=(1,1);

draw("$1$",A--B);
draw("$1$",B--C);

// draw(rotate(dir(C--A))*"$\sqrt{2}$",C--A);
draw(Label("$\sqrt{2}$",Rotate(-dir(C--A))),C--A);

Figure 0087
Figure 0087: fig0870.asy
(Compiled with Asymptote version 1.87svn-r4652)
    
size(3cm,0);
path g=(1,1)--(3,2);
draw(Label("a text",Rotate(dir(g))), g);
draw(Label("a text",red,Rotate(-dir(g)),align=I*dir(g)), g);

Figure 0088
Figure 0088: fig0880.asy
(Compiled with Asymptote version 1.87svn-r4652)
    
size(0,0);
pair A=(0,0), B=(4cm,0);
path line=A--B;
transform TD=shift(0,-cm);
transform TR=shift(2.5cm,0);

defaultpen(linewidth(3bp));

draw("$AB$",line,.8red,Arrows(3mm));  
draw("$A$",A,N); draw("$B$",B,N);

draw("$AB$",TD*line,.8red,Arrows(3mm),PenMargins);  
draw("$A$",TD*A,N); draw("$B$",TD*B,N);

draw("$AB$",TD^2*line,.8red,Arrows(3mm),DotMargins);  
dot("$A$",TD^2*A,dotfactor*NW); dot("$B$",TD^2*B,dotfactor*NE);

margin BigMargins=Margin(2,2);
draw("$AB$",TD^3*line,.8red,Arrows(3mm),BigMargins);  
draw("$A$",TD^3*A,N); draw("$B$",TD^3*B,N);


Figure 0089
Figure 0089: fig0890.asy
(Compiled with Asymptote version 1.87svn-r4652)
    
//From documentation of Asymptote
size(6cm,0); 

void distance(picture pic=currentpicture, pair A, pair B, Label L="", real n=0, pen p=currentpen) 
{
  real d=3mm;
  guide g=A--B;
  transform T=shift(-n*d*unit(B-A)*I);
  pic.add(new void(frame f, transform t) {
    picture opic;
    guide G=T*t*g;
    draw(opic,G,p,Arrows(NoFill),Bars,PenMargins); 
    label(opic,L,midpoint(G),UnFill(1)); 
    add(f,opic.fit());
  });
  pic.addBox(min(g),max(g),T*min(p),T*max(p));
} 
 
pair A=(0,0), B=(3,3);
 
dot(A); 
dot(B); 
distance(A,B,rotate(dir(A--B))*Label("$\ell$"),1); 

Figure 0090
Figure 0090: fig0900.asy
(Compiled with Asymptote version 1.87svn-r4652)
    
// Author: John Bowman
size(0,100);
real margin=2mm;
pair z1=(0,1);
pair z0=(0,0);

object label1=draw("small box",box,z1,margin);
object label0=draw("LARGE ELLIPSE",ellipse,z0,margin);

add(new void(frame f, transform t) {
    draw(f,point(label1,S,t)--point(label0,N,t));
  });

Figure 0091
Figure 0091: fig0910.asy
(Compiled with Asymptote version 1.87svn-r4652)
    
size(0,0);
pair A=0;
dot(A);
arrow("1",A,NE,2cm);
arrow("2",A,SE,1cm);
arrow("3",A,SW,1.5cm,Margin(3,0));
arrow("4",A,NW,1.5cm,N);

Figure 0092
Figure 0092: fig0920.asy
(Compiled with Asymptote version 1.87svn-r4652)
    
size(4cm,0);


draw(E--N--W--S--cycle,.5red+1mm);

draw(E..N..W..S..cycle);
dot(E..N..W..S..cycle,red);

Figure 0093
Figure 0093: fig0930.asy
(Compiled with Asymptote version 1.87svn-r4652)
    
size(0,0);
pair O=0;

draw(circle(O,2cm));
dot(circle(O,2cm),red+4bp);

Figure 0094
Figure 0094: fig0940.asy
(Compiled with Asymptote version 1.87svn-r4652)
    
size(4cm);

draw(unitcircle, dot);
dotfactor*=3;
draw(shift(-0.5,-0.5)*unitsquare, dot(blue,Fill(red)));

Figure 0095
Figure 0095: fig0950.asy
(Compiled with Asymptote version 1.87svn-r4652)
    
size(0,0);

real R=2cm;

draw(scale(R)*unitcircle);
dot((0,0),linewidth(4bp));
dot((R*cos(pi/6),R*sin(pi/6)),red+8bp);

Figure 0096
Figure 0096: fig0960.asy
(Compiled with Asymptote version 1.87svn-r4652)
    
size(4cm,0);

import graph;

path PerfectCircle=Circle((0,0),1);

draw(PerfectCircle,linewidth(2mm));
dot(PerfectCircle,.8red);

Figure 0097
Figure 0097: fig0970.asy
(Compiled with Asymptote version 1.87svn-r4652)
    
size(4cm,0);

//Return Circle AB diameter
path circle(pair A, pair B)
{
  return shift(midpoint(A--B))*scale(abs(A-B)/2)*unitcircle;
}

pair A=(0,0), B=(1,0);

draw(circle(A,B));
dot(A--B);

Figure 0098
Figure 0098: fig0980.asy
(Compiled with Asymptote version 1.87svn-r4652)
    
size(6cm,0);

//Return Circle AB diameter
path circle(pair A, pair B)
{
  return shift(midpoint(A--B))*scale(abs(A-B)/2)*unitcircle;
}

pair A=(0,0), B=(3,0), C=(2,1);

draw(A--B,.8blue);
draw(A--C,.8red);
draw(B--C,.8green);
draw(circle(A,B),.8blue);
draw(circle(A,C),.8red);
draw(circle(B,C),.8green);

Figure 0099
Figure 0099: fig0990.asy
(Compiled with Asymptote version 1.87svn-r4652)
    
size(4cm,0);

//Return Circle AB diameter
path circle(pair A, pair B)
{
  return shift(midpoint(A--B))*scale(abs(A-B)/2)*unitcircle;
}

pair A=(0,0), B=(1,0), C=(2,0);
path cleAB=circle(A,B);
path cleAC=circle(A,C);

for(real t=0; t<length(cleAB); t+=0.01)
  fill(circle(point(cleAB,t),point(cleAC,t)));

Figure 0100
Figure 0100: fig1000.asy
(Compiled with Asymptote version 1.87svn-r4652)
    
size(0,0);
pair O=0;

defaultpen(linewidth(2mm));
draw(arc(O,2cm,0,60),.8red,BeginPenMargin);
draw(arc(O,2cm,60,120),.7green,PenMargins);
draw(arc(O,-2cm,0,120),.7blue);

Figure 0101
Figure 0101: fig1010.asy
(Compiled with Asymptote version 1.87svn-r4652)
    
size(6cm,0);

picture pic;
pen [] P={.8red,.7green,blue+.5grey,yellow+.6grey};

fill(scale(10)*unitcircle,.2blue);

for (int i = 0; i <= 3; ++i)
  draw(pic, arc((0,0),10,i*90,(i+1)*90), P[i]);

for (real i = 1; i <= 10; i+=.05)
  add(rotate(90*i)*scale(1/i)*pic);

Figure 0102
Figure 0102: fig1020.asy
(Compiled with Asymptote version 1.87svn-r4652)
    
size(4cm,0);

real a=360/6;
for (int i = -1; i < 5; ++i)
  fill(arc((0,0),1,i*a,(i+1)*a)--cycle,grey);

Figure 0103
Figure 0103: fig1030.asy
(Compiled with Asymptote version 1.87svn-r4652)
    
size(4cm,0);

real n=7, a=360/n;
for (int i = 0; i < n; ++i)
  filldraw((0,0)--arc((0,0),1,i*a,(i+1)*a)--cycle, i/n*blue + (1-i/n)*green + grey);

Figure 0104
Figure 0104: fig1040.asy
(Compiled with Asymptote version 1.87svn-r4652)
    
size(4cm,0);

real a=360/6;
for (int i = -1; i < 5; ++i)
  draw(Label(format("%i",i+1)),arc((0,0),10,i*a,(i+1)*a)--cycle,grey);

Figure 0105
Figure 0105: fig1050.asy
(Compiled with Asymptote version 1.87svn-r4652)
    
size(0,0);

pair x=0;
pair y=(-6.5cm,0);

label(format(6.66666), x, E);
label("format(6.66666)", y, E);

x+=(0,-1cm);y+=(0,-1cm);
label(format("$x=%f$", 6.66666), x, E);
label("format(\"\$x=\%f\$\", 6.66666)", y, E);

x+=(0,-1cm);y+=(0,-1cm);
label(format("$x=%.1f$", 6.66666), x, E);
label("format(\"\$x=\%.1f\$\", 6.66666)", y, E);

x+=(0,-1cm);y+=(0,-1cm);
label(format("$x=%.2f$", 6.66666), x, E);
label("format(\"\$x=\%.2f\$\", 6.66666)", y, E);

x+=(0,-1cm);y+=(0,-1cm);
label(format("$x=%.0f$", 6.66666), x, E);
label("format(\"\$x=\%.0f\$\", 6.6666)", y, E);

x+=(0,-1cm);y+=(0,-1cm);
label(format("$x=%07.3f$", 6.66666), x, E);
label("format(\"\$x=\%07.3f\$\", 6.6666)", y, E);

x+=(0,-1cm);y+=(0,-1cm);
label(format("$x=%7.3f$", 6.66666), x, E);
label("format(\"\$x=\% 7.3f\$\", 6.6666)", y, E);

x+=(0,-1cm);y+=(0,-1cm);
label(format("$x=%g$", 66.666), x, E);
label("format(\"\$x=\%g\$\", 66.66666)", y, E);

x+=(0,-1cm);y+=(0,-1cm);
label(format("$x=%g$", 666666.666), x, E);
label("format(\"\$x=\%g\$\", 666666.666)", y, E);

x+=(0,-1cm);y+=(0,-1cm);
label(format("$x=%g$", 666666666.666), x, E);
label("format(\"\$x=\%g\$\", 666666666.666)", y, E);

x+=(0,-1cm);y+=(0,-1cm);
label(format("$x=%e$", 666666.666), x, E);
label("format(\"\$x=\%e\$\", 666666.666)", y, E);

x+=(0,-1cm);y+=(0,-1cm);
label(format("$x=%.2e$", 666666.666), x, E);
label("format(\"\$x=\%.2e\$\", 666666.666)", y, E);

x+=(0,-1cm);y+=(0,-1cm);
label(format("$x=%i$", 6), x, E);
label("format(\"\$x=\%i\$\", 6)", y, E);

x+=(0,-1cm);y+=(0,-1cm);
label(format("$x=%f$", 6.0), x, E);
label("format(\"\$x=\%f\$\", 6.0)", y, E);

x+=(0,-1cm);y+=(0,-1cm);
label(format("$x=%+.2f$", 6.66666), x, E);
label("format(\"\$x=\%+.2f\$\", 6.66666)", y, E);

x+=(0,-1cm);y+=(0,-1cm);
label(format("$x=%+.2f$", -6.66666), x, E);
label("format(\"\$x=\%+.2f\$\", -6.66666)", y, E);

x+=(0,-1cm);y+=(0,-1cm);
label(format("$x=% .2f$", 6.666666), x, E);
label("format(\"\$x=\% .2f\$\", 6.666666)", y, E);

Figure 0106
Figure 0106: fig1070.asy
(Compiled with Asymptote version 1.87svn-r4652)
    
// This file was compiled with this unix command: LC_NUMERIC="french" asy
size(0,0);
texpreamble("\usepackage[frenchb]{babel}");

pair x=0;

x+=(0,-1cm);
label(format("$x=%f$", 666666.666), x, E);
x+=(0,-1cm);
label(format("$x=%f$", pi), x, E);
x+=(0,-1cm);
label(format("$x=\nombre{%f}$", 666666.666), x, E);
x+=(0,-1cm);
label(format("$x=\nombre{%f}$", pi), x, E);

Figure 0107
Figure 0107: fig1080.asy
(Compiled with Asymptote version 1.87svn-r4652)
    
size(0,0);

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 + "$";
        }
    }
}

for (int i=-4; i<=4; ++i)
  {
    label(texfrac(i,4), (i*cm,0));
    label(texfrac(i,4,signin=true), (i*cm,-cm));
    label(texfrac(i,4,factor="\pi"), (i*cm,-2cm));
    label(texfrac(i,4,factor="\pi",factorin=false), (i*cm,-3cm));
    label(texfrac(i,4,factor="\pi",signin=true,factorin=true), (i*cm,-4cm));
    label(texfrac(i,4,factor="\pi",signin=true,factorin=false,displaystyle=true,zero=false), (i*cm,-5cm));
  }

Figure 0108
Figure 0108: fig1090.asy
(Compiled with Asymptote version 1.87svn-r4652)
    
size(4cm,0);

pair A=0, B=(1,0), C=(.7,1);

void fillangle(picture pic=currentpicture,
               pair O=0, pair A, pair B,
               real radius=10,
               pen p=grey)
{
  picture tpic;
  int n=sgn(radius);
  real a1=degrees(shift(-O)*A,false);
  real a2=degrees(shift(-O)*B,false);
  fill(tpic,(0,0)--arc((0,0), -radius, max(a1,a2), min(a1,a2),true)--cycle, p=p);
  add(pic,tpic,O);
}

draw(A--B--C--cycle);

real r1=15, r2=20;
fillangle(A,B,C,r1,.8red);
fillangle(A,B,C,-r2);
fillangle(B,A,C,r1,.8red);
fillangle(B,A,C,-r2);
fillangle(C,B,A,r1,.8red);
fillangle(C,B,A,-r2);

Figure 0109
Figure 0109: fig1100.asy
(Compiled with Asymptote version 1.87svn-r4652)
    
size(0,0);
pair A, B, C;
A=(0,0); B=(3cm,0); C=(0,3cm);

draw(A--B--C--cycle);
filldraw(shift(A)*scale(4bp)*unitcircle, white);
filldraw(shift(B)*scale(4bp)*unitcircle, white);
filldraw(shift(C)*scale(4bp)*unitcircle, white);

Figure 0110
Figure 0110: fig1110.asy
(Compiled with Asymptote version 1.87svn-r4652)
    
size(4cm,0);
pair A=(0,0), B=(0,1), C=(1,0), D=(1,1);

draw(A..B..C..D);
dot(A);dot(B);dot(C);dot(D);

Figure 0111
Figure 0111: fig1120.asy
(Compiled with Asymptote version 1.87svn-r4652)
    
size(4cm,0);
import roundedpath;

pair A=(0,0), B=(0,1), C=(1,0), D=(1,1);

draw(roundedpath(A--B--C--D,.5));
dot(A--B--C--D);

Figure 0112
Figure 0112: fig1130.asy
(Compiled with Asymptote version 1.87svn-r4652)
    
size(4cm,0);
pair A=(0,0), B=(0,1), C=(1,0), D=(1,1);

draw(A--B..C..D);
dot(A--B--C--D);

Figure 0113
Figure 0113: fig1140.asy
(Compiled with Asymptote version 1.87svn-r4652)
    
size(4cm,0);
pair A=(0,0), B=(0,1), C=(1,0), D=(1,1);

draw(A..B..C..D--cycle);
dot(A);dot(B);dot(C);dot(D);

Figure 0114
Figure 0114: fig1150.asy
(Compiled with Asymptote version 1.87svn-r4652)
    
size(4cm,0);
pair A=(0,0), B=(0,1), C=(1,0), D=(1,1);

draw(A---B..C..D);
dot(A);dot(B);dot(C);dot(D);

Figure 0115
Figure 0115: fig1160.asy
(Compiled with Asymptote version 1.87svn-r4652)
    
size(4cm,0);
import roundedpath;

draw(roundedpath(unitsquare,.4));
dot(roundedpath(unitsquare,.4),red);
draw(unitsquare);
dot(unitsquare);

Figure 0116
Figure 0116: fig1170.asy
(Compiled with Asymptote version 1.87svn-r4652)
    
size(0,0);

pair A=0, B=(4cm,0);

draw(A{N}..B);
dot(A{N}..B);

Figure 0117
Figure 0117: fig1180.asy
(Compiled with Asymptote version 1.87svn-r4652)
    
size(0,0);

pair A=0, B=(4cm,0);

draw(A{N}..B{E});
dot(A{N}..B{E});

Figure 0118
Figure 0118: fig1190.asy
(Compiled with Asymptote version 1.87svn-r4652)
    
size(0,0);

pair A=0, B=(4cm,0);

draw(A{dir(90)}..B{dir(0)});
dot(A{dir(90)}..B{dir(0)});

Figure 0119
Figure 0119: fig1200.asy
(Compiled with Asymptote version 1.87svn-r4652)
    
size(0,0);

pair A=0, B=(4cm,0);

draw(A{dir(90)}..B{dir(180)});
dot(A{dir(90)}..B{dir(180)});

Figure 0120
Figure 0120: fig1210.asy
(Compiled with Asymptote version 1.87svn-r4652)
    
size(0,0);

pair A=0, B=(4cm,0);

draw(A{N}..B{N});
dot(A{N}..B{N});

Figure 0121
Figure 0121: fig1220.asy
(Compiled with Asymptote version 1.87svn-r4652)
    
size(0,0);

pair A=0, B=(4cm,0);

draw(A{N}..B{N}..cycle);
dot(A{N}..B{N}..cycle);

Figure 0122
Figure 0122: fig1230.asy
(Compiled with Asymptote version 1.87svn-r4652)
    
//From documentation of Asymptote
size(0,6cm);
guide center = (0,1){W}..tension 0.8..(0,0){(1,-.5)}..tension 0.8..{W}(0,-1); 

draw((0,1)..(-1,0)..(0,-1));
filldraw(center{E}..{N}(1,0)..{W}cycle);
unfill(circle((0,0.5),0.125));
fill(circle((0,-0.5),0.125));

Figure 0123
Figure 0123: fig1240.asy
(Compiled with Asymptote version 1.87svn-r4652)
    
//Translate from Troy Henderson Metapost code.
size(8cm);
draw(unitcircle, linewidth(bp));
pen p;
for (int t=-88; t <= 88; t += 2) {
  if(t%5 == 0) {
    p=linewidth(bp);
    draw((0,1){dir (t-90)}..{dir (270-t)}(0,-1), linewidth(bp));
  } else p=currentpen;
  draw((Cos(t),Sin(t)){dir(180+t)}..{dir(180-t)}(-Cos(t),Sin(t)), p);
}

Figure 0124
Figure 0124: fig1250.asy
(Compiled with Asymptote version 1.87svn-r4652)
    
size(0,0);

pair A=0, B=(2cm,2cm), C=(4cm,0);

draw(A..B..C);
draw(A{curl 0}..B..{curl 0}C,red);
dot(A--B--C);

Figure 0125
Figure 0125: fig1260.asy
(Compiled with Asymptote version 1.87svn-r4652)
    
size(0,0);

pair A=0, B=(2cm,2cm), C=(4cm,0);

draw(A..B..C,linewidth(3mm));
draw(A{curl 1}..B..{curl 1}C,2mm+.8red);
dot(A--B--C);

Figure 0126
Figure 0126: fig1270.asy
(Compiled with Asymptote version 1.87svn-r4652)
    
size(0,0);

pair A=0, B=(3cm,4cm), C=(6cm,0);

draw(A..B..C);
draw(A{curl 0}..B..{curl 0}C,1mm+red+grey);
draw(A{curl 5}..B..{curl 0}C,1mm+green+grey);
draw(A{curl 10}..B..{curl 0}C,1mm+blue+grey);
draw(A{curl 10}..B..{curl 10}C,1mm+yellow+grey);
dot(A--B--C);

Figure 0127
Figure 0127: fig1280.asy
(Compiled with Asymptote version 1.87svn-r4652)
    
size(0,0);

pair A=0, B=(3cm,0.5cm), C=(6cm,0);

draw(A{N}..B{E}..C{S});
draw(A{N}::B{E}::C{S},red);
dot(A--B--C);

Figure 0128
Figure 0128: fig1290.asy
(Compiled with Asymptote version 1.87svn-r4652)
    
size(0,0);

pair A=0, B=(3cm,5cm), C=(6cm,0);
defaultpen(1mm);

draw(A..B..C);
draw(A.. tension .75 ..B.. tension .75 ..C,grey);
draw(A.. tension 1.5 ..B.. tension 1.5 ..C,.8red);
draw(A.. tension 2 ..B.. tension 2 ..C,green+grey);
draw(A.. tension 10 ..B.. tension 10 ..C,blue+grey);
dot(A--B--C,linewidth(6bp));

Figure 0129
Figure 0129: fig1300.asy
(Compiled with Asymptote version 1.87svn-r4652)
    
size(0,0);

pair A=0, B=(3cm,5cm), C=(6cm,0);
defaultpen(1mm);

draw(A..B..C);
draw(A.. tension 10 and 1 ..B.. tension 1 and 10 ..C,grey);
draw(A.. tension 1 and 10 ..B.. tension 10 and 1 ..C,.8red);
draw(A.. tension 2 and 1 ..B.. tension 1 and 2 ..C,blue+grey);
dot(A--B--C,linewidth(6bp));

Figure 0130
Figure 0130: fig1310.asy
(Compiled with Asymptote version 1.87svn-r4652)
    
size(0,0);

pair A=0, B=(3cm,5cm), C=(6cm,0);
defaultpen(1mm);

draw(A..B..C);
draw(A.. tension 5 and 3 ..B.. tension 1 and 5 ..C,grey);
draw(A.. tension 5 and 1 ..B.. tension 3 and 5 ..C,.8red);
dot(A--B--C,linewidth(6bp));

Figure 0131
Figure 0131: fig1320.asy
(Compiled with Asymptote version 1.87svn-r4652)
    
size(0,0);

pair A=0, B=(3cm,5cm), C=(6cm,0);

pair ctrl_rgt_A, ctrl_lft_B, ctrl_rgt_B, ctrl_lft_C;
ctrl_rgt_A=A+2cm*E;
ctrl_lft_B=B+3cm*W;
ctrl_rgt_B=B+3cm*E;
ctrl_lft_C=C+2cm*W;

draw(A..B..C);
draw(A.. controls ctrl_rgt_A and ctrl_lft_B ..B.. controls ctrl_rgt_B and ctrl_lft_C ..C,1mm+grey);
dot(A--B--C,linewidth(6bp));
draw((A--ctrl_rgt_A),Arrow, p=grey);
draw((B--ctrl_rgt_B),Arrow, p=grey);
draw((B--ctrl_lft_B),Arrow, p=grey);
draw((C--ctrl_lft_C),Arrow, p=grey);

Figure 0132
Figure 0132: fig1330.asy
(Compiled with Asymptote version 1.87svn-r4652)
    
size(0,0);

pair A=0, B=(3cm,5cm), C=(6cm,0);

pair ctrl_rgt_A, ctrl_lft_B, ctrl_rgt_B, ctrl_lft_C;
ctrl_rgt_A=A+2cm*NE;
ctrl_lft_B=B+5cm*SW;
ctrl_rgt_B=B+2cm*SE;
ctrl_lft_C=C+5cm*NW;

draw(A..B..C);
draw(A.. controls ctrl_rgt_A and ctrl_lft_B ..B.. controls ctrl_rgt_B and ctrl_lft_C ..C,1mm+grey);
dot(A--B--C,linewidth(6bp));
draw((A--ctrl_rgt_A),Arrow, p=grey);
draw((B--ctrl_rgt_B),Arrow, p=grey);
draw((B--ctrl_lft_B),Arrow, p=grey);
draw((C--ctrl_lft_C),Arrow, p=grey);

Figure 0133
Figure 0133: fig1340.asy
(Compiled with Asymptote version 1.87svn-r4652)
    
size(8cm);
path p1 = (0,0){up}..(5,4)..(10,0){down};

pair post0=postcontrol(p1,0);
pair pre1=precontrol(p1,1);
pair post1=postcontrol(p1,1);
pair pre2=precontrol(p1,2);

dot(post0^^pre1^^post1^^pre2);
path p2 = (0,0)..controls post0 and pre1..(5,4)..controls post1 and pre2..(10,0); 

draw(p1,2mm+red);
draw(p2,linewidth(1mm));

Figure 0134
Figure 0134: fig1350.asy
(Compiled with Asymptote version 1.87svn-r4652)
    
size(0,0);

path pt1=scale(2cm)*unitcircle;
path pt2=scale(1cm)*unitcircle;

draw(pt1^^pt2);
dot(pt1^^pt2);

Figure 0135
Figure 0135: fig1360.asy
(Compiled with Asymptote version 1.87svn-r4652)
    
size(0,0);

path cle=scale(2cm)*unitcircle;

draw(cle);

for(real i=0; i<=length(cle); i+=.2)
  {
    dot(point(cle,i));
    draw((0,0)--point(cle,i),dotted);
  }

Figure 0136
Figure 0136: fig1370.asy
(Compiled with Asymptote version 1.87svn-r4652)
    
size(0,0);

path cle=scale(2cm)*unitcircle;

draw(cle);

for(real i=0; i<=length(cle); i+=.2)
  draw(point(cle,i)--2cm*dir(cle,i)+point(cle,i),Arrow,p=i/length(cle)*red);

Figure 0137
Figure 0137: fig1380.asy
(Compiled with Asymptote version 1.87svn-r4652)
    
size(0,0);

path cle=scale(2cm)*reverse(unitcircle);

draw(cle);

for(real i=0; i<=length(cle); i+=.2)
  draw(point(cle,i)--2cm*dir(cle,i)+point(cle,i),Arrow,p=i/length(cle)*red);

Figure 0138
Figure 0138: fig1390.asy
(Compiled with Asymptote version 1.87svn-r4652)
    
size(8cm,0);
pair O=(0,0);
path p=(0,0){dir(0)}..{dir(45)}(2,2){dir(-45)}..{dir(0)}(4,0);

pair En1=dir(p, 1, -1);
pair En2=dir(p, 2, -1);
draw(p);
draw(Label("dir(p,1,-1)", EndPoint), point(p,1)--point(p,1)+En1, red, Arrow);
draw(Label("dir(p,2,-1)", EndPoint), point(p,2)--point(p,2)+En2, red, Arrow);

pair Ep0=dir(p, 0, 1);
pair Ep1=dir(p, 1, 1);
draw(Label("dir(p,0,1)", EndPoint), point(p,0)--point(p,0)+Ep0, blue, Arrow);
draw(Label("dir(p,1,1)", EndPoint, E), point(p,1)--point(p,1)+Ep1, blue, Arrow);

draw(p, dot);

Figure 0139
Figure 0139: fig1400.asy
(Compiled with Asymptote version 1.87svn-r4652)
    
size(0,0);

path cle=scale(2cm)*reverse(unitcircle);

draw(cle);

for(real i=0; i<=length(cle); i+=.2)
  draw(point(cle,i)--(1cm*I*dir(cle,i))+point(cle,i),Arrow,p=i/length(cle)*red);

Figure 0140
Figure 0140: fig1410.asy
(Compiled with Asymptote version 1.87svn-r4652)
    
size(6cm,0);

path cle=scale(2)*unitcircle;

radialshade(scale(2)*cle,white+.1yellow,(0,0),2,yellow,(0,0),4);
radialshade(cle,white,(1,.5),0,.95yellow,(0,0),2);

for(real i=0; i<=length(cle); i+=.2)
  draw(point(cle,i)--(-2*I*dir(cle,i)+point(cle,i)),p=2mm+yellow+linecap(0));

Figure 0141
Figure 0141: fig1420.asy
(Compiled with Asymptote version 1.87svn-r4652)
    
size(6cm,0);

path curv=reverse((0,2){dir(-60)}..(1,0)..{dir(60)}(2,2));

draw(curv);

for(real i=0; i<=length(curv); i+=.1)
  draw(point(curv,i)--dir(curv,i)+point(curv,i),grey);

Figure 0142
Figure 0142: fig1430.asy
(Compiled with Asymptote version 1.87svn-r4652)
    
size(10cm,0);

path curv=reverse((0,2){dir(10)}..(1,0)..{dir(-50)}(3,2));
guide dirc;

draw(curv,linewidth(1mm)+grey);

for(real i=0; i<=length(curv); i+=.005)
  {
    draw(point(curv,i)--dir(curv,i)+point(curv,i),grey+yellow);
    dirc=dirc..dir(curv,i)+point(curv,i);
  }

draw(dirc,grey);

Figure 0143
Figure 0143: fig1440.asy
(Compiled with Asymptote version 1.87svn-r4652)
    
// Author: John Bowman
pair[] z=new pair[10]; 
z[0]=(0,100); z[1]=(50,0); z[2]=(180,0); 
for(int n=3; n <= 9; ++n) 
  z[n]=z[n-3]+(200,0); 
path p=z[0]..z[1]---z[2]---z[3] 
&z[3]..z[4]--z[5]::{up}z[6] 
&z[6]::z[7]---z[8]..{up}z[9]; 
defaultpen(linewidth(1));
draw(p, grey); 
dot(p); 

real len=50;
for(int i = 0; i < z.length; ++i) {
  pair z=point(p,i);
  draw(z--z+len*dir(p,i,-1),red);
  draw(z--z+len*dir(p,i,1),blue+dashed);
  draw(z-len*dir(p,i)--z+len*dir(p,i),green+Dotted(defaultpen()));
}

Figure 0144
Figure 0144: fig1450.asy
(Compiled with Asymptote version 1.87svn-r4652)
    
size(10cm,0);
import math;

path cle=unitcircle;
path curv=reverse((1.5,2){dir(-60)}..(2.5,0)..{dir(60)}(3.5,2));

draw(cle);
draw(curv);

pair pt_cle=point(cle, 1.35);
pair pt_dir_cle=dir(cle, 1.35);

drawline((pt_cle - pt_dir_cle), (pt_cle + pt_dir_cle), red);

pair pt_curv=point(curv, dirtime(curv, pt_dir_cle));

drawline((pt_curv - pt_dir_cle), (pt_curv + pt_dir_cle), blue);

Figure 0145
Figure 0145: fig1460.asy
(Compiled with Asymptote version 1.87svn-r4652)
    
size(0,0);

pair O=(2cm,2cm);
path cle=shift(O)*scale(2cm)*unitcircle;
pair M=point(cle,.6);

dot("$O$",O,SW);
dot("$M$",M,unit(M-O));

draw(cle);
draw((0,0)--(0,4cm),Arrow);
draw((0,0)--(4cm,0),Arrow);

draw(Label("$X_M$",position=EndPoint),M--(xpart(M),0),dotted);
draw(Label("$Y_M$",position=EndPoint),M--(0,ypart(M)),dotted);

Figure 0146
Figure 0146: fig1470.asy
(Compiled with Asymptote version 1.87svn-r4652)
    
size(0,0);

path p= scale(1cm)*unitcircle;

draw(p,red+1mm);
draw(shift(1mm,2mm)*p);
draw(shift(2*(1mm,2mm))*p);
draw(shift(3*(1mm,2mm))*p);
draw(shift(4*(1mm,2mm))*p);
draw(shift(5*(1mm,2mm))*p);

Figure 0147
Figure 0147: fig1480.asy
(Compiled with Asymptote version 1.87svn-r4652)
    
size(0,0);

path p= (5mm,-5mm){right} .. (2cm,0);

for(int i=10; i<360; i+=10)
  draw(rotate(i)*p);

draw(p,red+1mm);

Figure 0148
Figure 0148: fig1490.asy
(Compiled with Asymptote version 1.87svn-r4652)
    
size(4cm,0);

path p= (1,-1){right} .. (4,0);
pair O=(3,.25);

for(int i=10; i<360; i+=10)
  draw(rotate(i,O)*p);

dot(O,blue);
draw(p,red+1mm);

Figure 0149
Figure 0149: fig1500.asy
(Compiled with Asymptote version 1.87svn-r4652)
    
size(6cm,0);

path curv=(0,0)..(1,1)..(1.5,-1)..(3,0);
pair A=(0,-1), B=(3,.75);

defaultpen(1mm);
draw(curv);
draw(reflect(A,B)*curv,.8red);
draw(A--B,grey);

Figure 0150
Figure 0150: fig1510.asy
(Compiled with Asymptote version 1.87svn-r4652)
    
size(4cm,0);

path cle=unitcircle;

draw(cle,red);
draw(xscale(2)*cle);
draw(yscale(2)*cle);
draw(scale(2)*cle,blue);

Figure 0151
Figure 0151: fig1520.asy
(Compiled with Asymptote version 1.87svn-r4652)
    
size(8cm,0);

transform scale(pair center, real k)
{
  return shift(center)*scale(k)*shift(-center);
}

path cle=unitcircle;
pair A=(4,0);
draw(cle);

draw(scale(A,.5)*cle,red);
draw(scale(A,-.75)*cle,blue);

for (real t; t<length(cle); t+=1)
  draw(point(cle,t)--point(scale(A,-.75)*cle,t),dotted);

dot("$A$",A,N);

Figure 0152
Figure 0152: fig1530.asy
(Compiled with Asymptote version 1.87svn-r4652)
    
//Translate from http://zoonek.free.fr/LaTeX/Metapost/metapost.html

size(0,0);

pair inversion(pair O, real k, pair M)
{
  return (O + k*unit(M-O)/abs(M-O));
}

guide inversion(pair O, real k, path M)
{
  guide opath=inversion(O,k,point(M,0));
  for (real i=0; i<=length(M); i+=length(M)/100)
    opath = opath .. inversion(O,k,point(M,i));
  return opath .. cycle;
}

real u=8cm;
path [] p;
path A = scale(u)*unitcircle;
path B = scale(3)*A;
pair z = rotate(10)*(5u,0);


draw(inversion( z, 2*u^2, A ),linewidth(1pt));
draw(inversion( z, 2*u^2, B ),linewidth(1pt));

p[0] = shift(2u,0)*scale(u)*unitcircle;

for (int i=0; i<=5; ++i)
  {
    if (i!=0) p[i] = rotate(360/6)*p[i-1];
    draw(inversion( z, 2 (u^2), p[i] ));
  }

Figure 0153
Figure 0153: fig1540.asy
(Compiled with Asymptote version 1.87svn-r4652)
    
size(10cm,0);

path unitpolygon(int n)
{
  guide opath;
  for (int i=1; i<=n; ++i)
    opath=opath--rotate((i-1)*360/n)*E;
  return opath--cycle;
}

for (int i=3; i<9; ++i)
  draw(shift(2.5*(i%3),-2.5*quotient(i,3))*unitpolygon(i));

Figure 0154
Figure 0154: fig1550.asy
(Compiled with Asymptote version 1.87svn-r4652)
    
//Translate from http://zoonek.free.fr/LaTeX/Metapost/metapost.html
size(0,0);

pair [] P, Q, R, S;
real u=1cm;

for (int i=0; i<=4; ++i)
  P[i] = rotate(i*360/5)*(0,-u);

P[5] = P[0];
for (int i=0; i<=4; ++i)
  Q[i] = 3*midpoint(P[i]--P[i+1]);

Q[5] = Q[0];
for (int i=0; i<=4; ++i)
  R[i] = 1/3*( Q[i] + Q[i+1] + P[i+1] );

R[5] = R[0];
for (int i=0; i<=5; ++i)
  S[i] = 1.5*Q[i];

for (int i=0; i<=4; ++i)
  {
    draw(P[i]   -- P[i+1]);
    draw(P[i+1] -- R[i]);
    draw(Q[i]   -- R[i]);
    draw(R[i]   -- Q[i+1]);
    draw(Q[i]   -- S[i]);
    draw(S[i]   -- S[i+1]);
    label(format("\small$P_%i$",i),P[i],-unit(P[i]));
    label(format("\small$Q_%i$",i),Q[i],rotate(60)*unit(Q[i]));
    label(format("\small$R_%i$",i),R[i],unit(R[i]));
    label(format("\small$S_%i$",i),S[i],unit(S[i]));
  }

Figure 0155
Figure 0155: fig1560.asy
(Compiled with Asymptote version 1.87svn-r4652)
    
//Translate from http://zoonek.free.fr/LaTeX/Metapost/metapost.html
size(0,0);

pair [] P, Q, R, S;
real u=1cm;

for (int i=0; i<=4; ++i)
  P[i] = rotate(i*360/5)*(0,-u);

P[5] = P[0];
for (int i=0; i<=4; ++i)
  Q[i] = 3*midpoint(P[i]--P[i+1]);

Q[5] = Q[0];
for (int i=0; i<=4; ++i)
  R[i] = 1/3*( Q[i] + Q[i+1] + P[i+1] );

R[5] = R[0];
for (int i=0; i<=5; ++i)
  S[i] = 1.5*Q[i];

for (int i=0; i<=4; ++i)
  {
    draw(P[i]   -- P[i+1]);
    draw(P[i+1] -- R[i]);
    draw(Q[i]   -- R[i]);
    draw(R[i]   -- Q[i+1]);
    draw(Q[i]   -- S[i]);
    draw(S[i]   -- S[i+1]);
  }

draw(P[2] -- P[3] -- P[4] -- P[0] -- P[1] --
     R[0] -- Q[0] -- R[4] -- Q[4] -- R[3]
     -- Q[3] -- R[2] -- Q[2] --
     S[2] -- S[3] -- S[4] -- S[0] -- S[1] --
     Q[1] -- R[1] -- cycle,
     linewidth(2bp));

Figure 0156
Figure 0156: fig1570.asy
(Compiled with Asymptote version 1.87svn-r4643)
    
size(0,0);

pair [] P, Q, R, S;
real u=1cm;

for (int i=0; i<=4; ++i)
  P[i] = rotate(i*360/5)*(0,-u);

P[5] = P[0];
for (int i=0; i<=4; ++i)
  Q[i] = 3*midpoint(P[i]--P[i+1]);

Q[5] = Q[0];
for (int i=0; i<=4; ++i)
  R[i] = 1/3*( Q[i] + Q[i+1] + P[i+1] );

R[5] = R[0];
for (int i=0; i<=5; ++i)
  S[i] = 1.5*Q[i];

fill(shift(-abs(S[0]),-abs(S[0]))*scale(2*abs(S[0]))*unitsquare,.2grey);

radialshade(scale(abs(S[0]))*unitcircle,lightgrey,(0,0),abs(S[0]),
            black,(0,0),abs(.85*midpoint(S[0]--S[1])));

P[6]=P[1];
for (int i=0; i<=4; ++i)
  {
    radialshade(S[i]--Q[i]--R[i]--Q[i+1]--S[i+1]--cycle,
                lightgrey,(0,0),abs(R[i]),
                black,(0,0),abs(S[i]));
    radialshade(R[i]--Q[i+1]--R[i+1]--P[i+2]--P[i+1]--cycle,
                .8red,(0,0),sqrt(1-(2-2cos(pi/5))/4)*u,
                black,(0,0),abs(Q[i+1]));
  }

for (real i=1; i>0; i-=.05)
  fill(rotate(90*(1-i))*scale(i)*(P[0]--P[1]--P[2]--P[3]--P[4]--cycle),
       (1-i)*red);

pen p=linewidth(1pt);
for (int i=0; i<=4; ++i)
  {
    draw(P[i]   -- P[i+1],p);
    draw(P[i+1] -- R[i],p);
    draw(Q[i]   -- R[i],p);
    draw(R[i]   -- Q[i+1],p);
    draw(Q[i]   -- S[i],p);
    draw(S[i]   -- S[i+1],p);
  }

shipout(bbox(0,black+4mm));

Figure 0157
Figure 0157: fig1580.asy
(Compiled with Asymptote version 1.87svn-r4652)
    
size(0,0);

label(graphic("dali.eps","width=5cm"));
layer();

draw(scale(2cm)*unitcircle,linewidth(.75mm));
shipout(bbox(.25cm,Fill));

Figure 0158
Figure 0158: fig1590.asy
(Compiled with Asymptote version 1.87svn-r4652)
    
size(0,0);

label(graphic("dali.eps","width=5cm, bb=60 60 235 205, clip=true"));
shipout(bbox(.25cm,Fill));

Figure 0159
Figure 0159: fig1600.asy
(Compiled with Asymptote version 1.87svn-r4652)
    
size(0,4cm);

texpreamble("\usepackage{amsmath}
             \DeclareMathOperator{\e}{e}");

pair A=2*expi(pi/3);

draw((0,-2)--(0,2.5));
draw((0,0)--(1,0),linewidth(1mm),Arrow(2mm));
draw((0,0)--(3.5,0));
draw((0,0)--(0,1),linewidth(1mm),Arrow(2mm));

dot(Label("$A(z_a=2\e^{i\frac{\pi}{3}})$"),A,NE);
label(format("$\vert z_a\vert=%.1f$",length(A)),(.5,-1),E);
label(format("$\arg(z_a)\simeq%.4f$",angle(A)),(.5,-2),E);

Figure 0160
Figure 0160: fig1610.asy
(Compiled with Asymptote version 1.87svn-r4652)
    
size(10cm,0);

texpreamble("\usepackage{amsmath}
             \DeclareMathOperator{\e}{e}");

pair A=2*expi(pi/3);
pair B=expi(pi/6);
pair C=A*B;
pair D=C-B;
pair Bp=2*B;
pair E=I*D;

draw((0,-2)--(0,2.5));
draw((0,0)--(1,0),linewidth(1mm),Arrow(2mm));
draw((-3,0)--(3.5,0));
draw((0,0)--(0,1),linewidth(1mm),Arrow(2mm));

dot(Label("$A(z_a=2\e^{i\frac{\pi}{3}})$"),A);
dot(Label("$B(z_a=\e^{i\frac{\pi}{6}})$"),B);
dot(Label("$B'(z_{b'}=2z_b)$"),Bp);
dot(Label("$\overline{A}(\overline{z_a})$"),conj(A));
dot(Label("$C(z_c=z_a z_c)$"),C,NE);
dot(Label("$D(z_d=z_c-z_d)$"),D,NW);
dot(Label("$E(z_e=iz_d)$"),E,NW);

Figure 0161
Figure 0161: fig1620.asy
(Compiled with Asymptote version 1.87svn-r4652)
    
size(6cm,0);

pair A=2expi(pi/2);

pair homography(pair z)
{
  return (z^2+A)/(z+2);
}

guide image;
pair tpt;

draw(unitcircle);
for(real t=0; t<length(unitcircle);t+=.05)
  {
    tpt=homography(point(unitcircle,t));
    image=image..tpt;
    draw(point(unitcircle,t)--tpt,dotted);
  }
draw(image..cycle,red);

Figure 0162
Figure 0162: fig1630.asy
(Compiled with Asymptote version 1.87svn-r4652)
    
size(4cm,0);

path apath=(0,0)..(1,1)..(2,-1){dir(-90)};

draw(apath);

dot(apath);
dot(point(apath,length(apath)),.8green+8pt);
draw(point(apath,0)--point(apath,1)--point(apath,2),.8red);
draw(point(apath,0.5)--point(apath,1.5)--point(apath,2.5),.8blue);

Figure 0163
Figure 0163: fig1640.asy
(Compiled with Asymptote version 1.87svn-r4652)
    
size(6cm,0);

path apath=(0,0)..(1,1)..(2,.5){dir(0)};

draw(subpath(apath,0,length(apath)/2),1pt+.8red,EndPenMargin);
draw(subpath(apath,length(apath)/2,length(apath)),1pt+.8blue,BeginPenMargin);

Figure 0164
Figure 0164: fig1650.asy
(Compiled with Asymptote version 1.87svn-r4652)
    
size(10cm,0);
texpreamble("\usepackage{amsmath}");

path p = (0,0)..(1,1)..(2,.5){dir(0)};
real al    = arclength(p);
real l     = length(p);
pair pt    = point(p,l/2);
pair apt   = arcpoint(p,al/2);

draw(p);
draw(subpath(p,0,arctime(p,al/2)),blue);
dot(pt,red);
dot(apt,blue);

arrow("$\frac{\text{lenght(p)}}{2}$",pt,SSE,1cm);
arrow("$\frac{\text{arclenght(p)}}{2}$",apt,SSW,1cm);
label("\small The sizes of the blue path and the black path are equal",(1,.25));

Figure 0165
Figure 0165: fig1660.asy
(Compiled with Asymptote version 1.87svn-r4652)
    
size(10cm,0);

path apath=(0,0)..(1,1)..(2,.5){dir(0)};
real l=length(apath);
real step=l/15;

for(real i=0; i<l-step; i+=step)
  draw(subpath(apath,i,i+step),4bp+(i/l*red+(l-i)/l*blue),PenMargins);
draw(apath);

Figure 0166
Figure 0166: fig1670.asy
(Compiled with Asymptote version 1.87svn-r4652)
    
size(10cm,0);

path apath=(0,0)..(1,1)..(2,.5){dir(0)};
real l=arclength(apath);
real step=l/15;

path arcpath(path apath, real t1, real t2)
{
  return subpath(apath, arctime(apath,t1), arctime(apath,t2));
}

for(real i=0; i<l-step; i+=step)
  draw(arcpath(apath,i,i+step),4bp+(i/l*red+(l-i)/l*blue),PenMargins);
draw(apath);

Figure 0167
Figure 0167: fig1680.asy
(Compiled with Asymptote version 1.87svn-r4652)
    
unitsize(5cm);

string text="A text along a curve";
path p=(0,0)..(1,1)..(2,0.5){dir(0)};
int n=length(text);
real at=0;
real step=arclength(p)/n;

for (int i=0; i<n; ++i){
  real t=arctime(p,at);
  label(rotate(degrees(angle(dir(p,t),false)))*scale(3)*baseline(substr(text,i,1)),point(p,t));
  at += step;
 }

draw(p,lightgrey);

Figure 0168
Figure 0168: fig1690.asy
(Compiled with Asymptote version 1.87svn-r4652)
    
import labelpath;

unitsize(5cm);
string text="\Huge A text along a curve";
path p=(0,0)..(1,1)..(2,0.5){dir(0)};

labelpath(text,p);
draw(p, lightgrey);

Figure 0169
Figure 0169: fig1700.asy
(Compiled with Asymptote version 1.87svn-r4652)
    
size(6cm,0);

path pth1=(0,-0.5)--(2,1);
path pth2=(0,0.5)--(2,-1);

draw(pth1^^pth2);

dot(intersectionpoint(pth1,pth2),red);

Figure 0170
Figure 0170: fig1710.asy
(Compiled with Asymptote version 1.87svn-r4652)
    
size(6cm,0);

path p = (0,0){up} .. (2cm,0){up};
path q = (0,1cm){dir(-60)}..(1cm,-1cm)..{dir(60)}(2cm,1cm);

draw(p^^q);
dot(intersectionpoint(p,q) , red);
dot(intersectionpoint(p,reverse(q)) , blue);

Figure 0171
Figure 0171: fig1720.asy
(Compiled with Asymptote version 1.87svn-r4652)
    
size(6cm,0);
import math;

pair A=(0,-.5), B=A+dir(45);
pair C=(0,1), D=C+5dir(20);

pair I=extension(A,B,C,D);

path AB=A--B;
path CD=C--D;

draw(AB^^CD);
dot("$I$",I,N,red);
draw(B--I,1pt+dotted);
dot("$A$",A,SE);
dot("$B$",B,SE);
dot("$C$",C,N);
dot("$D$",D,N);

Figure 0172
Figure 0172: fig1730.asy
(Compiled with Asymptote version 1.87svn-r4652)
    
size(6cm,0);
import math;

pair A=(0,-.5), B=A+dir(45);
pair C=(0,1)+2dir(20);
path cle=shift(C)*scale(1)*unitcircle;

pair I1=intersectionpoint(A--interp(A,B,2),cle);
pair I2=intersectionpoint(A--interp(A,B,10),cle);

path AB=A--B;

draw(AB^^cle);
dot(I1^^I2,red);
draw(B--I2,1pt+dotted);

Figure 0173
Figure 0173: fig1740.asy
(Compiled with Asymptote version 1.87svn-r4652)
    
size(6cm,0);

path Line(pair A, pair B)
{
  return interp(A,B,-100000/arclength(A--B))--interp(A,B,100000/arclength(A--B));
}

path Parallel(pair A, pair dir)
{
  return Line(A,A+dir);
}

pair A=0, B=(1,0), C=(.7,.7);
draw(A--B, .8red);
draw(A--C, .8green);
draw(B--C, .8blue);

label("$A$",A,SW);
label("$B$",B,SE);
label("$C$",C,N);

pair Ap=intersectionpoint(Parallel(B, A-C), Parallel(C, A-B));
pair Bp=intersectionpoint(Parallel(A, B-C), Parallel(C, A-B));
pair Cp=intersectionpoint(Parallel(A, B-C), Parallel(B, A-C));

draw(Ap--Bp, .8red);
draw(Ap--Cp, .8green);
draw(Bp--Cp, .8blue);

label("$A'$",Ap,NE);
label("$B'$",Bp,NW);
label("$C'$",Cp,S);

Figure 0174
Figure 0174: fig1750.asy
(Compiled with Asymptote version 1.87svn-r4652)
    
size(6cm,0);

path p = (0,0){up} .. (2cm,0){up};
path q = (0,1cm){dir(-60)}..(1cm,-1cm)..{dir(60)}(2cm,1cm);

draw(p, red);
draw(q, blue);
dot(intersectionpoint(p,q));
draw(point(p, intersect(p,q)[0])--postcontrol(p, intersect(p,q)[0]), .8red,Arrow);
draw(point(q, intersect(p,q)[1])--postcontrol(q, intersect(p,q)[1]), .8blue,Arrow);

Figure 0175
Figure 0175: fig1760.asy
(Compiled with Asymptote version 1.87svn-r4652)
    
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)));

Figure 0176
Figure 0176: fig1770.asy
(Compiled with Asymptote version 1.87svn-r4652)
    
size(6cm,0);

import math;

pair A=(0,0), B=(1,.5);
path cle=shift(1.75,2.5)*unitcircle;
pair pt, ptp;

pair project(pair pt, pair A, pair B)
  {
    return extension(pt,pt-dir(90+degrees(A-B,false)),A,B);
  }

draw(A--B);
draw(cle);

for (real t=0; t<=4; t+=.01)
  {
    pt=point(cle,t);
    ptp=project(pt,A,B);
    dot(ptp, red);
    draw(pt--ptp,dotted);

  }

Figure 0177
Figure 0177: fig1780.asy
(Compiled with Asymptote version 1.87svn-r4652)
    
size(6cm,0);

import math;

pair A=(0,0), B=(1,.5), C=(.25,1);

pair project(pair pt, pair A, pair B)
  {
    return extension(pt,pt-dir(90+degrees(A-B,false)),A,B);
  }

pair ocenter(pair A, pair B, pair C)
  {
    return extension(A, project(A,B,C), B, project(B,A,C));
  }

draw(A--B--C--cycle);

pair orth=ocenter(A,B,C);
pair Ap=project(A,B,C);
pair Bp=project(B,A,C);
pair Cp=project(C,A,B);

dot(orth, red);
dot(Ap^^Bp^^Cp);
drawline(A, orth, dotted);
drawline(B, orth, dotted);
drawline(C, orth, dotted);

Figure 0178
Figure 0178: fig1790.asy
(Compiled with Asymptote version 1.87svn-r4652)
    
size(6cm,0);

import math;

pair A=(0,0), B=(1,.5), C=(.25,1);

pair ccenter(pair A, pair B, pair C)
  {
    pair mAB=midpoint(A--B);
    pair mAC=midpoint(A--C);
    return extension(mAB, rotate(90,mAB)*A, mAC, rotate(90,mAC)*A);
  }

draw(A--B--C--cycle);

pair circ=ccenter(A,B,C);
pair mAB=midpoint(A--B);
pair mAC=midpoint(A--C);
pair mBC=midpoint(B--C);

dot(circ, red);
dot(mAB^^mAC^^mBC);
drawline(mAB, circ, dotted);
drawline(mAC, circ, dotted);
drawline(mBC, circ, dotted);
draw(shift(circ)*scale(abs(circ-A))*unitcircle);

Figure 0179
Figure 0179: fig1800.asy
(Compiled with Asymptote version 1.87svn-r4652)
    
size(6cm,0);

import math;

pair A=(0,0), B=(1,.5), C=(.25,1);

pair project(pair pt, pair A, pair B)
  {
    return extension(pt,pt-dir(90+degrees(A-B,false)),A,B);
  }

pair icenter(pair A, pair B, pair C)
  {
    return extension(A, A+dir(A--B,A--C), B, B+dir(B--A,B--C));
  }

draw(A--B--C--cycle);

pair ins=icenter(A,B,C);
pair iAB=project(ins,A,B);
pair iAC=project(ins,A,C);
pair iBC=project(ins,B,C);

dot(ins, red);
dot(iAB^^iAC^^iBC);
drawline(A, ins, dotted);
drawline(B, ins, dotted);
drawline(C, ins, dotted);
draw(shift(ins)*scale(abs(ins-iAB))*unitcircle);

Figure 0180
Figure 0180: fig1810.asy
(Compiled with Asymptote version 1.87svn-r4652)
    
size(6cm,0);
import math;

pair project(pair pt, pair A, pair B)
  {
    return extension(pt,pt-dir(90+degrees(A-B,false)),A,B);
  }


pair ecenter(pair A, pair B, pair C)
  {
    return extension(A, A+rotate(90)*dir(A--B,A--C), B, B+rotate(90)*dir(B--A,B--C));
  }

path ecircle(pair A, pair B, pair C)
  {
    return shift(ecenter(A,B,C))*scale(abs(ecenter(A,B,C)-project(ecenter(A,B,C),B,C)))*unitcircle;
  }

pair A=(0,0), B=(3,0), C=(3,4);
path tr=A--B--C--cycle;

draw(ecircle(A,B,C));
draw(ecircle(B,C,A));

pen p=linewidth(1pt);
drawline(A,B, p);
drawline(A,C, p);
drawline(B,C, p);

Figure 0181
Figure 0181: fig1830.asy
(Compiled with Asymptote version 1.87svn-r4652)
    
size(6cm,0);
defaultpen(2mm+linecap(0));

path p = (0,0){up} .. (2cm,0){up};
path q = (0,1cm){dir(-60)}..(1cm,-1cm)..{dir(60)}(2cm,1cm);


draw(firstcut(p,q).before, .8red);
draw(firstcut(p,q).after, .8blue);

draw(lastcut(q,p).before, .8green);
draw(lastcut(q,p).after, .8yellow);


Figure 0182
Figure 0182: fig1840.asy
(Compiled with Asymptote version 1.87svn-r4652)
    
size(6cm,0);

defaultpen(2mm+linecap(0));

path p = (0,0){up} .. (2cm,0){up};
path q = (0,1cm){dir(-60)}..(1cm,-1cm)..{dir(60)}(2cm,1cm);

real[] ipq=intersect(p,q);
real[] iprq=intersect(p,reverse(q));

draw(subpath(p, 0, ipq[0]), .8red);
draw(subpath(p, ipq[0], iprq[0]), .5red);
draw(subpath(p, iprq[0], length(p)), .3red);

draw(subpath(reverse(q), 0, iprq[1]), .8green);
draw(subpath(reverse(q), iprq[1], length(q)-ipq[1]), .5green);
draw(subpath(reverse(q), length(q)-ipq[1], length(q)), .3green);

Figure 0183
Figure 0183: fig1850.asy
(Compiled with Asymptote version 1.87svn-r4652)
    
//Translate from http://zoonek.free.fr/LaTeX/Metapost/metapost.html
size(0,0);

defaultpen(linewidth(1bp));
real u=3cm;
pair A, B, C, D, E;
path p, q, r;

A = u*up;
p = interp(A, rotate(72)*A, -.2) -- interp(A, rotate(72)*A,1.2);
for(int i=0; i<=5; ++i)
  draw(rotate(72i)*p);

B = midpoint(A--rotate(72)*A );
C = .8*B;

p = B --- C .. (rotate(2*72)*C){right};
// On allonge le chemin p
p = (point(p,0) - 4mm*dir(p,0.001))
  --
  point(p,0)
  & p &
  point(p,2)
  --
  (point(p,2) + 4mm*dir(p,2));

E = intersectionpoint(p, rotate(72)*p);
q = firstcut(p,shift(E)*scale(2mm)*unitcircle).before;
r = lastcut(p,shift(E)*scale(2mm)*unitcircle).after;

for(int i=0; i<=4; ++i)
  {
    draw(rotate(72i)*q);
    draw( rotate(72i)*r);
    draw(rotate(72i)*A,linewidth(4bp));
    draw(rotate(72i)*B,linewidth(4bp));
    draw(rotate(72i)*C,linewidth(4bp));
  }

Figure 0184
Figure 0184: fig1860.asy
(Compiled with Asymptote version 1.87svn-r4652)
    
// Venn diagram // Diagramme de Venn
// Edwards' construction // Construction d'Edwards
import roundedpath;
size(10cm,0);
path [] EdVenn(int n)
{
  path [] opath;
  if (n>=1)
    opath.push(shift(-1.4,-.9)*roundedpath(xscale(2.8)*yscale(.9)*unitsquare,.1));
  if (n>=2)
    opath.push(shift(0,-.9)*roundedpath(xscale(1.4)*yscale(1.8)*unitsquare,.1));
  if (n>=3)
    opath.push(scale(.5)*unitcircle);
  for (int i=1; i<=n-3; ++i)
    {
      pair pcle=point(opath[2],1/(2^i)),
        ccle=intersectionpoint(pcle--(pcle-dir(opath[2],1/(2^i))), (0,0)--(1,0));
      path cle=shift(ccle)*scale(abs(pcle-ccle))*unitcircle;
      real[] p1=intersect(cle, opath[2]);
      path ocle=subpath(cle,-p1[0],p1[0]);
      guide tpath;
      real step=360/(2^i), a=0;
      for (int j=0; j<2^i; ++j)
        {
          tpath=tpath..rotate(a)*ocle;
          a+=step;
        }
      opath.push(tpath..cycle);      
    }
    return opath;
}

draw(EdVenn(6));

Figure 0185
Figure 0185: fig1870.asy
(Compiled with Asymptote version 1.87svn-r4652)
    
size(15cm,0);

srand(rand());
path p1 = randompath(9);
path p2 = randompath(8);
real Minx=min(min(p1).x,min(p2).x);
real Maxx=max(max(p1).x,max(p2).x);
real Miny=min(min(p1).y,min(p2).y);

pair[] inter=intersectionpoints(p1,p2);
int nb=inter.length;
for (int i=0 ; i<nb; ++i)
  {
    dot(inter[i]);
    label("$" + (string) i +"$", inter[i],N);
  }

draw(p1,.8red);
draw(p2,.8green);
label("I found " + (string) nb + " points of intersection.",((Maxx+Minx)/2,Miny),2S);

Figure 0186
Figure 0186: fig1880.asy
(Compiled with Asymptote version 1.87svn-r4652)
    
size(8cm,0);

pair[] self_intersection(path p, int n=100)
{
  pair[] rpair=new pair[];
  path tpath;
  real [] tpoint;
  real l=length(p);
  int i=1;
  for (real t1=0; t1<l ; t1+=l/n)
    {
      for (real t2=t1+2*l/n; t2<l; t2+=l/n)
        {
          tpoint=intersect(subpath(p,t1,t1+l/n),
                           subpath(p,t2,t2+l/n));
          if (tpoint.length == 2)
            {
              rpair[i]=point(subpath(p,t1,t1+l/n),tpoint[0]);
              ++i;
            }
        }
    }
  return rpair;
}

void dott(pair[] pt, pen p)
{
  for (int i=1 ; i<pt.length; ++i)
    {
      dot(pt[i], p);
    }
}

srand(rand());
path p = randompath(15);

pair[] inter=self_intersection(p);
dott(inter, .8red);
draw(p);


Figure 0187
Figure 0187: fig1890.asy
(Compiled with Asymptote version 1.87svn-r4652)
    
size(6cm,0);
path [] c;

c[1] = xscale(2)*unitcircle;
c[2] = shift((0,1))*c[1];
draw(c[1]^^c[2]);
draw(buildcycle(c[1],c[2]), .8red+4bp);

Figure 0188
Figure 0188: fig1900.asy
(Compiled with Asymptote version 1.87svn-r4652)
    
//Translate from http://zoonek.free.fr/LaTeX/Metapost/metapost.html
size(6cm,0);

path a,b,c,d;
a = (-1,-.2){up} .. tension 1.2 .. (1,-.2){down};
transform r90=rotate(90);
b = r90*a;
c = r90*b;
d = r90*c;
path bound=buildcycle(a,b,c,d);
fill(bound, lightgrey);
draw(a^^b^^c^^d,grey);
draw(bound);

Figure 0189
Figure 0189: fig1910.asy
(Compiled with Asymptote version 1.87svn-r4652)
    
size(6cm,0);

path a,b,c;
a = shift(1,0)*scale(2)*unitcircle;
b = rotate(120)*a;
c = rotate(120)*b;

fill(a, red);
fill(b, green);
fill(c, blue);
fill(buildcycle(a,b), red + green);
fill(buildcycle(b,c), green + blue);
fill(buildcycle(c,a), blue + red);
fill(buildcycle(a,b,c), white);

draw(a^^b^^c);

Figure 0190
Figure 0190: fig1920.asy
(Compiled with Asymptote version 1.87svn-r4652)
    
size(0,0);

path pt1=scale(2cm)*unitcircle;
path pt2=scale(1cm)*unitcircle;

filldraw(pt1^^pt2,yellow+.9white);

Figure 0191
Figure 0191: fig1930.asy
(Compiled with Asymptote version 1.87svn-r4652)
    
size(0,0);

path pt1=scale(2cm)*unitcircle;
path pt2=scale(1cm)*unitcircle;

filldraw(pt1^^pt2,evenodd+yellow+.9white);

Figure 0192
Figure 0192: fig1940.asy
(Compiled with Asymptote version 1.87svn-r4652)
    
size(0,0);

path pt1=scale(2cm)*unitcircle;
path pt2=scale(1cm)*unitcircle;
path pt3=shift(0,.5cm)*pt2;

filldraw(pt1^^pt2^^pt3,evenodd+yellow+.9white);

Figure 0193
Figure 0193: fig1950.asy
(Compiled with Asymptote version 1.87svn-r4652)
    
size(0,0);

path pt1=scale(2cm)*unitcircle;
path pt2=scale(1cm)*unitcircle;
path pt3=shift(0,1.5cm)*pt2;

filldraw(pt1^^pt2^^pt3,evenodd+yellow+.9white);

Figure 0194
Figure 0194: fig1960.asy
(Compiled with Asymptote version 1.87svn-r4652)
    
size(6cm); 
 
void extra() 
{ 
  label("Read the code to understand...",(0,0),white);
  plain.exitfunction(); 
} 

atexit(extra); 
fill(xscale(2)*unitcircle); 

Figure 0195
Figure 0195: fig1970.asy
(Compiled with Asymptote version 1.87svn-r4652)
    
size(8cm,0);
import patterns;

add("hatchback",hatch(NW));
filldraw(xscale(2)*unitsquare,pattern("hatchback"));

add("r_hatchback",hatch(2.5mm,NW,.8red));
filldraw(shift(0,-2)*yscale(2)*unitsquare,pattern("r_hatchback"));

add("b_hatchback",hatch(NW,2.5mm+.8blue));
filldraw(shift(1,-2)*yscale(2)*unitsquare,pattern("b_hatchback"));

Figure 0196
Figure 0196: fig1980.asy
(Compiled with Asymptote version 1.87svn-r4652)
    
void enclose(picture pic=currentpicture, envelope e,
             Label[] L=new Label[],
             real xmargin=0, real ymargin=xmargin, pen p=currentpen,
             filltype filltype=NoFill, bool above=true)
{

  real H;
  real[] h;
  pic.add(new void (frame f, transform t) {
      frame[] d=new frame[];
      for (int i=0; i<L.length; ++i) {
        d[i]=newframe;
        Label LL=L[i].copy();
        add(d[i],t,LL);
        add(f,d[i]);
        h[i]=ypart(max(d[i])-min(d[i]));
        if(H < h[i]) H=h[i];
      }
      for (int i=0; i<L.length; ++i) {
        real emy=(H-h[i])/2;
        e(f,d[i],xmargin,ymargin+emy,p,filltype,above);
      }
    });
}

void box(picture pic=currentpicture, Label[] L=new Label[],
         real xmargin=0, real ymargin=xmargin, pen p=currentpen,
         filltype filltype=NoFill, bool above=true)
{
  enclose(pic,box,L,xmargin,ymargin,p,filltype,above);
}

box(new Label[] {
    Label("\begin{minipage}{3cm}Some text some text some text.\end{minipage}",(2.2cm,0)),
    Label("Hello.",0),
    Label("\begin{minipage}{3cm}Some text some text some
text some text some text some text some text.\end{minipage}",(5.4cm,0)),
    Label("Bye.\rule{0pt}{1.5cm}",(1cm,-3cm))
      });

Dernière modification/Last modified: Sun Sep 20 18:47:51 CEST 2009
Philippe Ivaldi

Valide XHTML