SURFACES 3D (35)
Liste des figures
Figure fig_aa01_200309_surface_path3
figure 0001
Figure fig_aa02_270615_surface_path3
figure 0002
Figure fig_aa03_200309_surface_path3
figure 0003
Figure fig_sa01_011108_surface
figure 0004
Figure fig_sa02_011108_surface
figure 0005
Figure fig_sa03_011208_surface
figure 0006
Figure fig_sa04_011208_surface
figure 0007
Figure fig_sa05_011208_surface
figure 0008
Figure fig_sa06_011208_surface
figure 0009
Figure fig_sa07_011208_surface
figure 0010
Figure fig_sa08_070109_surface
figure 0011
Figure fig_sa09_070109_surface
figure 0012
Figure fig_sa10_090109_surface
figure 0013
Figure fig_sa11_110109_surface
figure 0014
Figure fig_sa12_110109_surface
figure 0015
Figure fig_sa13_150509_surface
figure 0016
Figure fig_sa14_150509_surface
figure 0017
Figure fig_sa15_200509_surface
figure 0018
Figure fig_sa16_141109_surface
figure 0019
Figure fig_sa17_141109_surface
figure 0020
Figure fig_sb01_121208_surface
figure 0021
Figure fig_sb02_121208_surface
figure 0022
Figure fig_sc01_281111_surface
figure 0023
Figure fig_sc02_281111_surface
figure 0024
Figure fig_sd01_031211_surface
figure 0025
Figure fig_sd02_031211_surface
figure 0026
Figure fig_sd03_031211_surface
figure 0027
Figure fig_se01_051211_surface
figure 0028
Figure fig_se02_051211_surface
figure 0029
Figure fig_sf01_070309_fichier_de_donnees
figure 0030
Figure fig_sf02_070309_fichier_de_donnees
figure 0031
Figure fig_sf03_070309_fichier_de_donnees
figure 0032
Figure fig_ta01_200309_surface_tube
figure 0033
Figure fig_ta02_140509_surface_tube
figure 0034
Figure fig_zz01_200309_repere
figure 0035
Asymptote - Figure 0001: fig_aa01_200309_surface_path3.asy
(Code compilé avec Asymptote version 2.36svn-r5722)
largeur320 Figure fig_aa01_200309_surface_path3
import three;

size(7.5cm,0);

currentprojection=perspective(20,18,8);
currentlight=light(8,10,2);

path3 p=(-1,-1,0)--(1,-1,0)--(1,1,0)--(-1,1,0)--cycle;
draw(p);

path3 g=(1,0,0)..(0,1,1)..(-1,0,0)..(0,-1,1)..cycle;
draw(g,2bp+.8red);
draw(surface(g),paleblue);
dot(g,5bp+.8green);

draw((0,0,0)--normal(p),1bp+blue,Arrow3()); 
Asymptote - Figure 0002: fig_aa02_270615_surface_path3.asy
(Code compilé avec Asymptote version 2.36svn-r5722)
largeur320 Figure fig_aa02_270615_surface_path3
import graph3;
size(8cm,0);

currentprojection=perspective(5,5,3.5);
currentlight=light(white,(2,2,2),(2,-2,-2));

path3 p=(-1,-1,0)--(1,-1,0)--(1,1,0)--(-1,1,0)--cycle;
draw(p,lightblue);

path3 g=(1,0,0)..(0,1,1)..(-1,0,0)..(0,-1,1)..cycle;
draw(g,2bp+.8red);
draw(surface(g),palered);
dot(g,5bp+.8green);

limits((-1.5,-1.5,0),(1.4,1.4,1.5));
xaxis3("$x$",Arrow3); 
yaxis3("$y$",Arrow3);
zaxis3("$z$",Arrow3);
Asymptote - Figure 0003: fig_aa03_200309_surface_path3.asy
(Code compilé avec Asymptote version 2.36svn-r5722)
largeur320 Figure fig_aa03_200309_surface_path3
import graph3;

size(8cm,0);

currentprojection=perspective(10,10,10);
currentlight=light(white,(2,2,2),(2,-2,-2));

draw(surface(path3(polygon(5))),blue);
draw(shift(Z)*surface(unitcircle3),red);
draw(shift(2Z)*surface(unitcircle3,new pen[] {red,green,blue,yellow}));

limits((-2,-2,-1),(2,2,3));
xaxis3("$x$",Arrow3);
yaxis3("$y$",Arrow3);
zaxis3("$z$",Arrow3);
Asymptote - Figure 0004: fig_sa01_011108_surface.asy
(Code compilé avec Asymptote version 1.95svn)
largeur320 Figure fig_sa01_011108_surface
import graph3;

size(7.5cm,0);

currentprojection=orthographic(3,2,4);
currentlight=(5,3,0);

real f(pair z) {return z.y^2-z.x^2;}

draw(surface(f,(-1,-1),(1,1),nx=32,Spline),
                   lightblue+opacity(0.3),blue);
Asymptote - Figure 0005: fig_sa02_011108_surface.asy
(Code compilé avec Asymptote version 1.95svn)
largeur320 Figure fig_sa02_011108_surface
import graph3;

size(7.5cm,0);

currentprojection=orthographic(4,2,3);
currentlight=(5,-2,4);

real f(pair z) {return z.y^2-z.x^2;}

draw(surface(f,(-1,-1),(1,1),nx=32,Spline),
                   lightblue+opacity(0.8),blue);
Asymptote - Figure 0006: fig_sa03_011208_surface.asy
(Code compilé avec Asymptote version 1.95svn)
largeur320 Figure fig_sa03_011208_surface
import graph3;

size(7.5cm,0);

currentprojection=orthographic(2,0,1.5);

real f(pair z) {
        real r=2pi*(z.x^2+z.y^2);
        if (r!=0)  return sin(r)/r; 
                 else return 1;
                        }
draw(surface(f,(-2.5,-2),(2.5,2),100,Spline),lightblue);
Asymptote - Figure 0007: fig_sa04_011208_surface.asy
(Code compilé avec Asymptote version 1.95svn)
largeur320 Figure fig_sa04_011208_surface
import graph3;
import contour;
size(7.5cm,0);
size3(7.5cm,IgnoreAspect);

real f(pair z) {
  return 2z.x^2-z.x+z.y^2;
}
real[] lignesniveaux={50,100,150,200,250};

currentprojection=orthographic(-25,-25,600);

limits((0,0,0),(10,10,300));

xaxis3(Label("$x$",position=MidPoint,align=SE),
       OutTicks(Step=2));
yaxis3(Label("$y$",position=MidPoint,align=SW),
       OutTicks(Step=2));
zaxis3(Label("$z=2x^2-x+y^2$",position=EndPoint,align=3N+E),
       Bounds(Min,Max),
       InTicks(Step=100,Label(align=Y)));

draw(surface(f,(0,0),(10,10),nx=20,Spline),
     lightgray,meshpen=black+thick(),nolight);
draw(lift(f,contour(f,(0,0),(10,10),lignesniveaux)),1bp+red);
Asymptote - Figure 0008: fig_sa05_011208_surface.asy
(Code compilé avec Asymptote version 1.95svn)
largeur320 Figure fig_sa05_011208_surface
import graph3;
import contour;
size(7.5cm,0);
size3(7.5cm,IgnoreAspect);

real f(pair z) {
  return 2z.x^2-z.x+z.y^2;
}
real[] lignesniveaux={50,100,150,200,250};

currentprojection=orthographic(-25,-25,600);
limits((0,0,0),(10,10,300));

xaxis3(Label("$x$",position=MidPoint,align=SE),
       OutTicks(Step=2));
yaxis3(Label("$y$",position=MidPoint,align=SW),
       OutTicks(Step=2));
zaxis3(Label("$z=2x^2-x+y^2$",position=EndPoint,align=3N+E),
       Bounds(Min,Max),
       InTicks(Step=100,Label(align=Y)));

draw(surface(f,(0,0),(10,10),nx=10,Spline),
     lightgray,meshpen=black+thick(),nolight);

Label [] L=sequence(new Label(int i) {
    return scale(0.75)*Label(format("$z=%g$",lignesniveaux[i]),
                              align=E,EndPoint);
    },5);
draw(L,lift(f,contour(f,(0,0),(10,10),lignesniveaux)),1bp+red);
Asymptote - Figure 0009: fig_sa06_011208_surface.asy
(Code compilé avec Asymptote version 1.95svn)
largeur320 Figure fig_sa06_011208_surface
import graph3;
import contour;
size(7.5cm,0);
size3(8cm,10cm,12cm,IgnoreAspect);

real f(pair z) {
  return 2z.x^2-z.x+z.y^2;
}
real[] lignesniveaux={50,75,100,125,150,175,200,225};

currentprojection=orthographic(-25,-15,600);
limits((0,0,0),(8,10,300));

xaxis3(Label("$x$",position=MidPoint,align=SE),
       OutTicks(Step=2));
yaxis3(Label("$y$",position=MidPoint,align=SW),
       OutTicks(Step=2));
zaxis3(Label("$z=2x^2-x+y^2$",position=EndPoint,align=4N+E),
       Bounds(Min,Max),
       InTicks(Step=100,Label(align=Y)));

draw(surface(f,(0,0),(8,10),nx=10,Spline),
     white,meshpen=.8bp+red,nolight);

Label [] L=sequence(new Label(int i) {
    return scale(0.75)*Label(format("$z=%g$",lignesniveaux[i]),
                              align=E,EndPoint);
    },8);
draw(L,lift(f,contour(f,(0,0),(8,10),lignesniveaux)),1.5bp+blue);
Asymptote - Figure 0010: fig_sa07_011208_surface.asy
(Code compilé avec Asymptote version 1.95svn)
largeur320 Figure fig_sa07_011208_surface
import graph3;
import contour;

size(8cm,IgnoreAspect);

real f(pair z) {
  return 2z.x^2+z.x+z.y^2;
}
real[] lignesniveaux={50,100,150,200,250};

currentprojection=orthographic(15,-30,600);
limits((-10,0,0),(0,10,300));

xaxis3(Label("$x$",position=MidPoint,align=3S),
       Bounds(Both,Value),
       OutTicks(Step=2,Label(align=-2Y-Z)));
yaxis3(Label("$y$",position=MidPoint,align=5E),
       Bounds(Both,Value),
       InTicks(Step=2,Label(align=2X)));
zaxis3(Label("$z=x(2x+1)+y^2$",position=EndPoint,blue,align=3Z+2X),
       Bounds(),
       InTicks(Step=100,Label(align=-X)));

draw(surface(f,(-10,0),(0,10),nx=10,Spline),
     lightgray+white,meshpen=black+thick(),nolight);

Label [] L=sequence(new Label(int i) {
    return scale(0.9)*Label(format("$z=%g$",lignesniveaux[i]),
                            align=E,BeginPoint);
  },5);
draw(L,lift(f,contour(f,(-10,0),(0,10),lignesniveaux)),1.5bp+.5red);
Asymptote - Figure 0011: fig_sa08_070109_surface.asy
(Code compilé avec Asymptote version 1.95svn)
largeur320 Figure fig_sa08_070109_surface
import graph3;
import contour;
import grid3;
import palette;

size(8cm,IgnoreAspect);

currentprojection=orthographic(-10,-10,8);
limits((0,0,0),(5,10,12));

real f(pair z) {return (z.x+z.y)/(2+cos(z.x)*sin(z.y));}

real[] lignesniveaux={2,4,6,8};

surface s=surface(f,(0,0),(5,10),50,Spline);

draw(s,mean(palette(s.map(zpart),Rainbow())),black);

grid3(new grid3routines [] {XYXgrid, ZXgrid(10), ZYgrid(5)},
      Step=2,
      step=1,
      pGrid=new pen[] {red, blue, black},
      pgrid=new pen[] {0.5red, lightgray, lightgray});
xaxis3(Label("$x$",position=MidPoint,align=SE), 
       Bounds(Min,Min), 
       OutTicks());
yaxis3(Label("$y$",position=MidPoint,align=SW), 
       Bounds(Min,Min), 
       OutTicks(Step=2));
zaxis3(Bounds(Max,Both));
zaxis3(Label("$z$",position=EndPoint,align=N+W),
       XYEquals(0,10),
       InTicks(beginlabel=false,endlabel=false,Label(align=Y))
       );
draw(lift(f,contour(f,(0,0),(5,10),lignesniveaux)),1bp+red);
Asymptote - Figure 0012: fig_sa09_070109_surface.asy
(Code compilé avec Asymptote version 1.95svn)
largeur320 Figure fig_sa09_070109_surface
import graph3;  
import contour;  
import grid3;  
import palette;  

size(8cm,IgnoreAspect);  
 
currentprojection=orthographic(-10,-10,6);  
limits((0,0,0),(5,10,12));  
 
real f(pair z) {return (z.x+z.y)/(2+cos(z.x)*sin(z.y));}  
 
real[] levels={4,6};  
 
surface s=surface(f,(0,0),(5,10),120);  
 
s.colors(palette(s.map(new real(triple v) {return find(levels > v.z);}), 
Rainbow())); 
draw(s);  
 
grid3(new grid3routines [] {XYXgrid, ZXgrid(10), ZYgrid(5)},  
      Step=2,  
      step=1,  
      pGrid=new pen[] {red, blue, black},  
      pgrid=new pen[] {0.5red, lightgray, lightgray});  

xaxis3(Label("$x$",position=MidPoint,align=SE),  
       Bounds(Min,Min),  
       OutTicks());  
yaxis3(Label("$y$",position=MidPoint,align=SW),  
       Bounds(Min,Min),  
       OutTicks(Step=2));  
zaxis3(Bounds(Max,Both));
zaxis3(Label("$z$",position=EndPoint,align=N+W,p=red),  
       XYEquals(0,10),  
       InTicks(beginlabel=false,endlabel=false,Label(align=Y))  
       );  

draw(lift(f,contour(f,(0,0),(5,10),levels)),red);
Asymptote - Figure 0013: fig_sa10_090109_surface.asy
(Code compilé avec Asymptote version 1.95svn)
largeur320 Figure fig_sa10_090109_surface
import graph3;
import contour;
import grid3;
import palette;

size(8cm,IgnoreAspect);

currentprojection=orthographic(-10,-10,8);
limits((0,0,0),(5,10,12));

real f(pair z) {return (z.x+z.y)/(2+cos(z.x)*sin(z.y));}

real[] lignesniveaux={2,4,6,8};

surface s=surface(f,(0,0),(5,10),20,Spline);

pen[] Palette=Grayscale();
draw(s,surfacepen=mean(palette(s.map(zpart),Palette))
      ,meshpen=black,nolight);

grid3(new grid3routines [] {XYXgrid, ZXgrid(10), ZYgrid(5)},
      Step=2,
      step=1,
      pGrid=new pen[] {red, blue, black},
      pgrid=new pen[] {0.5red, lightgray, lightgray});
xaxis3(Label("$x$",position=MidPoint,align=SE), 
       Bounds(Min,Min), 
       OutTicks());
yaxis3(Label("$y$",position=MidPoint,align=SW), 
       Bounds(Min,Min), 
       OutTicks(Step=2));
zaxis3(Bounds(Max,Min));
zaxis3(Label("$z$",position=EndPoint,align=N+W),
       Bounds(Min,Max),
       InTicks(beginlabel=false,endlabel=false,Label(align=Y)),
       arrow=Arrow3
       );
draw(lift(f,contour(f,(0,0),(5,10),lignesniveaux)),.5bp+red);
Asymptote - Figure 0014: fig_sa11_110109_surface.asy
(Code compilé avec Asymptote version 1.95svn)
largeur320 Figure fig_sa11_110109_surface
import graph3;
import contour;
import grid3;
import palette;

size(8cm,IgnoreAspect);

currentprojection=orthographic(-10,-10,8);
limits((0,0,0),(5,10,12));

real f(pair z) {return (z.x+z.y)/(2+cos(z.x)*sin(z.y));}

real[] levels={2,4,6,8};

surface s=surface(f,(0,0),(5,10),125,Spline);

pen[] Pal=Grayscale();
s.colors(palette(s.map(new real(triple v) {return find(levels > v.z);}),Pal)); 
draw(s); 

grid3(new grid3routines [] {XYXgrid, ZXgrid(10), ZYgrid(5)},
      Step=2,
      step=1,
      pGrid=new pen[] {red, blue, black},
      pgrid=new pen[] {0.5red, lightgray, lightgray});
xaxis3(Label("$x$",position=MidPoint,align=SE), 
       Bounds(Min,Min), 
       OutTicks());
yaxis3(Label("$y$",position=MidPoint,align=SW), 
       Bounds(Min,Min), 
       OutTicks(Step=2));
zaxis3(Bounds(Max,Both));
zaxis3(Label("$z$",position=EndPoint,align=N+W),
       Bounds(Min,Max),
       InTicks(beginlabel=false,endlabel=false,Label(align=Y))
       );
draw(lift(f,contour(f,(0,0),(5,10),levels)),1bp+red);
Asymptote - Figure 0015: fig_sa12_110109_surface.asy
(Code compilé avec Asymptote version 1.95svn)
largeur320 Figure fig_sa12_110109_surface
import graph3;
import contour;
import grid3;
import palette;

size(8cm,IgnoreAspect);

currentprojection=orthographic(-10,-10,6);
limits((0,0,0),(5,10,12));

real f(pair z) {return (z.x+z.y)/(2+cos(z.x)*sin(z.y));}

real[] levels={2,4,6,8};

surface s=surface(f,(0,0),(5,10),125,Spline);

pen[] Pal=Rainbow();
s.colors(palette(s.map(new real(triple v) {return find(levels > v.z);}),Pal)); 
draw(s); 

grid3(new grid3routines [] {XYXgrid, ZXgrid(10), ZYgrid(5)},
      Step=2,
      step=1,
      pGrid=new pen[] {red, blue, black},
      pgrid=new pen[] {0.5red, lightgray, lightgray});
xaxis3(Label("$x$",position=MidPoint,align=-Y-Z), 
       Bounds(Min,Min), 
       OutTicks());
yaxis3(Label("$y$",position=MidPoint,align=-X-Z), 
       Bounds(Min,Min), 
       OutTicks(Step=2));
zaxis3(Bounds(Max,Both));
zaxis3(Label("$z$",position=EndPoint,align=2Z,p=red),
       Bounds(Min,Max),
       p=blue,
       InTicks(beginlabel=false,endlabel=false,Label(align=Y))
       );
draw(lift(f,contour(f,(0,0),(5,10),levels)),1bp+red);
Asymptote - Figure 0016: fig_sa13_150509_surface.asy
(Code compilé avec Asymptote version 1.95svn)
largeur320 Figure fig_sa13_150509_surface
import graph3;
import palette;

size(8cm,0);
currentprojection=perspective(2,5,2);

real f(pair z) {return exp(-((z.x-1)^2+z.y^2))
                       -10*(z.x^3+z.x*z.y^4-z.x/5)*exp(-abs(z)^2);}

limits((-3.5,-3.5,-3.5),(3.5,3.5,3.5));
xaxis3(Label("$x$",1),blue,arrow=Arrow3);
yaxis3(Label("$y$",1),blue,arrow=Arrow3);
zaxis3(Label("$z$",1),blue,arrow=Arrow3);

surface s=surface(f,(-3,-3),(3,3),60,60,Spline);

s.colors(palette(s.map(zpart),Rainbow())); 

draw(s,meshpen=blue);

shipout(bbox(2mm,Fill(white)));
Asymptote - Figure 0017: fig_sa14_150509_surface.asy
(Code compilé avec Asymptote version 1.95svn)
largeur320 Figure fig_sa14_150509_surface
import graph3;
import palette;

size(8cm,0);
currentprojection=perspective(2,5,2);

real f(pair z) {return exp(-((z.x-1)^2+z.y^2))
                       -10*(z.x^3+z.x*z.y^4-z.x/5)*exp(-abs(z)^2);}

surface s=surface(f,(-3,-3),(3,3),60,60,Spline);

real[] level=uniform(-4.5,4.5,6);
s.colors(palette(s.map(new real(triple v) {return find(level >= v.z);}),
                 Rainbow())); 
draw(s,meshpen=blue);
Asymptote - Figure 0018: fig_sa15_200509_surface.asy
(Code compilé avec Asymptote version 1.95svn)
largeur320 Figure fig_sa15_200509_surface
import palette; 
import graph3; 

size3(8cm,8cm,3cm,IgnoreAspect);
size(8cm,0);

triple camera=(36,32,23),
       up=(-0.03,-0.015,0.015),
       target=(0.066,-0.49,-0.26);
currentprojection=orthographic(camera,up,target);

limits((-5,-5,-1),(5,5,1)); 

xaxis3(Label("$x$",MidPoint,align=Y-Z),
       Bounds(),
       OutTicks(scale(.7)*Label(),Step=2,step=.2,pTick=black,ptick=gray),
       p=blue); 
yaxis3(Label("$y$",MidPoint,align=X-Z),
       Bounds(),
       OutTicks(scale(.7)*Label(),Step=2,step=.2,pTick=black,ptick=gray),
       p=blue); 
zaxis3(Label("$z$",MidPoint,align=X-Y),
       Bounds(),
       OutTicks,
       p=red); 

real f(pair z) {return sin((abs(z))^2/3);}

surface s=surface(f,(-5,-5),(5,5),50,50);

s.colors(palette(s.map(zpart),Rainbow())); 
draw(s,meshpen=blue);
Asymptote - Figure 0019: fig_sa16_141109_surface.asy
(Code compilé avec Asymptote version 1.95svn)
largeur320 Figure fig_sa16_141109_surface
import math;
import graph3;
import palette;

size3(8cm,8cm,3cm,IgnoreAspect);
size(8cm,0);

currentprojection=perspective(camera=(9.73,1.26,2.31));

real a=1;
real f(pair z){
   real tempo=0.01-((z.x^2+z.y^2)^2-a^2*(z.x^2-z.y^2))^2;
   if(tempo>=0) return sqrt(tempo);
   else return 0;
   }
limits((-1.3,-.55,-.05),(1.4,.55,.4));
 xaxis3(Label("$x$",1),blue,arrow=Arrow3);
 yaxis3(Label("$y$",1) ,blue,arrow=Arrow3);
 zaxis3(Label("$z$",1),blue,arrow=Arrow3);

surface s=surface(f,(-1.1,-.5),(1.1,.5),95,75,monotonic);

draw(s,yellow,black);
Asymptote - Figure 0020: fig_sa17_141109_surface.asy
(Code compilé avec Asymptote version 1.95svn)
largeur320 Figure fig_sa17_141109_surface
import math;
import graph3;
import palette;

size3(8cm,8cm,IgnoreAspect);
size(8cm,0);

currentprojection=perspective(camera=(7.44,3.35,-1.67));

real a=1;
real f(pair z){
   real tempo=0.01-((z.x^2+z.y^2)^2-a^2*(z.x^2-z.y^2))^2;
   if(tempo>=0) return sqrt(tempo);
   else return 0;
   }

surface s=surface(f,(-1.1,-.5),(1.1,.5),100,100,monotonic);

draw(s,paleyellow,black,light=Viewport);
Asymptote - Figure 0021: fig_sb01_121208_surface.asy
(Code compilé avec Asymptote version 1.95svn)
largeur320 Figure fig_sb01_121208_surface
import graph3;
size(7.5cm,0);
real f(pair z) {return -exp(-abs(z)^2);}
currentprojection=perspective(4,5,4);
limits(O,2.25(1,1,1));
xaxis3(Label("$x$",1),blue,arrow=Arrow3);
yaxis3(Label("$y$",1),blue,arrow=Arrow3);
zaxis3(Label("$z$",1),blue,arrow=Arrow3);
draw(surface(f,(-2,-2),(2,2),nx=20,Spline),
     lightgray,meshpen=black+thick(),nolight);
dot(Label("$O$",align=Z+X),(0,0,0),red);
Asymptote - Figure 0022: fig_sb02_121208_surface.asy
(Code compilé avec Asymptote version 1.95svn)
largeur320 Figure fig_sb02_121208_surface
import graph3;
size(7.5cm,0);
real f(pair z) { 
    if (z!=0)
        return angle(z);
    else
        return 0;
}
currentprojection=perspective(2,-4,3.5);
limits((-7,-8,-4),(7,7,6));
xaxis3(Label("$x$",1),red,arrow=Arrow3);
yaxis3(Label("$y$",1),red,arrow=Arrow3);
zaxis3(Label("$z$",1),red,arrow=Arrow3);
draw(surface(f,(-6,-6),(6,6),nx=31),white,meshpen=blue+thick(),nolight);
Asymptote - Figure 0023: fig_sc01_281111_surface.asy
(Code compilé avec Asymptote version 2.14svn)
largeur320 Figure fig_sc01_281111_surface
import graph3;
size(8cm,0);
currentprojection=orthographic((10,10,7),zoom=.99);

real a=sqrt(3), b=1, dy=.5;

triple f(pair p){
  real x=p.x;
  real y=p.x^2;
  real z=p.y*(a^2-p.x^2);
  return (x,y,z);
}
triple f0(real t) {return f((t,0));}
triple f1(real t) {return f((t,1));}

surface s=surface(f,(-a,0),(a,1),100);
path3 p0=graph(f0,-a,a,operator ..), p1=graph(f1,-a,a,operator ..);
draw(s,yellow+opacity(.5));
draw(p0--cycle ^^ p1 ^^ (0,a^2,0)--(0,0,a^2));

draw ((b,b^2-dy,0)--(b,a^2+dy,0),blue,Arrow3);
dot("$(x,x^2,0)$",(b,b^2,0),align=Z);
dot(format("$(x,%f,0)$",a^2),  (b,a^2,0),align=Z);

limits((-.5,-.5,0),(a,a^2+.5,a^2+.5));
xaxis3("$x$",Arrow3);
yaxis3("$y$",Arrow3);
zaxis3("$z$",Arrow3);
Asymptote - Figure 0024: fig_sc02_281111_surface.asy
(Code compilé avec Asymptote version 2.14svn)
largeur320 Figure fig_sc02_281111_surface
import graph3;
size(8cm,0);
currentprojection=orthographic((10,8,5));

real a=sqrt(3), b=1, dy=.5;

triple f(pair p){
  real x=p.x;
  real y=p.x^2;
  real z=p.y*(a^2-p.x^2);
  return (x,y,z);
}
triple f0(real t) {return f((t,0));}
triple f1(real t) {return f((t,1));}

surface s=surface(f,(-a,0),(a,1),100);
path3 p0=graph(f0,-a,a,operator ..), p1=graph(f1,-a,a,operator ..);
draw(s,yellow+opacity(.6));
draw(p0--cycle ^^ p1 ^^ (0,a^2,0)--(0,0,a^2));
draw(surface(p1--cycle),yellow+opacity(.6));

draw ((b,b^2-dy,0)--(b,a^2+dy,0),blue,Arrow3);
dot(YZ()*scale3(1.5)*"$(x,x^2,0)$",(b,b^2,0),align=2X+3Z,blue);
dot(XZ()*scale3(1.5)*format("$(x,%f,0)$",a^2),  (b,a^2,0),align=Y+2Z,blue);

limits((-.5,-.5,-.1),(a,a^2+.5,a^2+.5));
xaxis3("$x$",Arrow3);
yaxis3("$y$",Arrow3);
zaxis3("$z$",Arrow3);
Asymptote - Figure 0025: fig_sd01_031211_surface.asy
(Code compilé avec Asymptote version 2.14svn)
largeur320 Figure fig_sd01_031211_surface
import solids;
size(7cm,0);

currentprojection=perspective(camera=(5,-4,2));
viewportmargin=(.5cm,.5cm);
currentlight=White;

triple f(pair p){
  real x=1+cos(p.x);
  real y=sin(p.x);
  real z=p.y*sqrt(4.0001-x^2-y^2);
  return (x,y,z);
}
triple g(pair p, real k){
  real x=1+cos(p.x);
  real y=p.y*sin(p.x);
  real z=k*sqrt(4.0001-x^2-y^2);
  return (x,y,z);
}
triple g1(pair p){ return g(p,1); }
triple gm1(pair p){ return g(p,-1); }

int n=100;
pen stylo = yellow, stylo2 = red;
draw(surface(f,(0,-1),(2pi,1),n),stylo);
draw(surface(g1,(0,-1),(2pi,1),n),stylo2);
draw(surface(gm1,(0,-1),(2pi,1),n),stylo2);
Asymptote - Figure 0026: fig_sd02_031211_surface.asy
(Code compilé avec Asymptote version 2.14svn)
largeur320 Figure fig_sd02_031211_surface
import solids;
size(7cm,0);

currentprojection=perspective(camera=(5,-4,2));
viewportmargin=(.5cm,.5cm);
currentlight=White;

triple f(pair p){
  real x=1+cos(p.x);
  real y=sin(p.x);
  real z=p.y*sqrt(4.000001-x^2-y^2);
  return (x,y,z);
}
triple g(pair p, real k){
  real x=1+cos(p.x);
  real y=p.y*sin(p.x);
  real z=k*sqrt(4.000001-x^2-y^2);
  return (x,y,z);
}
triple g1(pair p){ return g(p,1); }
triple gm1(pair p){ return g(p,-1); }

int n=100;
pen stylo = yellow, stylo2 = red;
draw(surface(f,(0,-1),(2pi,1),n,Spline),stylo);
draw(surface(g1,(0,-1),(2pi,1),n,Spline),stylo2);
draw(surface(gm1,(0,-1),(2pi,1),n,Spline),stylo2);
Asymptote - Figure 0027: fig_sd03_031211_surface.asy
(Code compilé avec Asymptote version 2.14svn)
largeur320 Figure fig_sd03_031211_surface
import solids;

picture pic;
unitsize(pic,1.5cm);

currentlight=light(gray(0.25),specularfactor=3,viewport=false,
                  (0.5,-0.5,-0.25),(0.5,0.5,0.25),(0.5,0.5,1),(-0.5,-0.5,-1));
settings.outformat="pdf";
settings.render=4;
viewportmargin=(.5cm,.5cm);

triple f(pair p){
  real x=1+cos(p.x);
  real y=sin(p.x);
  real z=p.y*sqrt(4.000001-x^2-y^2);
  return (x,y,z);
}
triple g(pair p, real k){
  real x=1+cos(p.x);
  real y=p.y*sin(p.x);
  real z=k*sqrt(4.000001-x^2-y^2);
  return (x,y,z);
}
triple g1(pair p){ return g(p,1); }
triple gm1(pair p){ return g(p,-1); }

int n=100;
pen stylo = paleblue, stylo2 = palered;
draw(pic,surface(f,(0,-1),(2pi,1),n),stylo);
draw(pic,surface(g1,(0,-1),(2pi,1),n),stylo2);
draw(pic,surface(gm1,(0,-1),(2pi,1),n),stylo2);

addViews(pic,ThreeViewsFR);
Asymptote - Figure 0028: fig_se01_051211_surface.asy
(Code compilé avec Asymptote version 2.14svn)
largeur320 Figure fig_se01_051211_surface
import solids;
size(7.5cm,0);
viewportmargin=3mm;
currentprojection=orthographic((9,6,4));
pen color=orange+yellow;

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

real a=1;
path p=graph(F,0,a^2,n=10,operator ..)--(0,a)--cycle;
path3 p3=rotate(-90,Y)*path3(p);

render render=render(compression=0,merge=true);

real alpha=260, alphar=pi/2+alpha*pi/180;
draw(surface(revolution(p3,Z,0,alpha)),color,render);

surface s=rotate(-90,Y)*surface(p);
draw(s,color,render);
draw(rotate(alpha,Z)*s,color,render);

draw(p3,.8bp+orange);

xaxis3(Label("$x$",1),xmax=a+.5,Arrow3);
yaxis3(Label("$y$",1),ymax=a+.5,Arrow3);
zaxis3(Label("$z$",1),zmax=a^2*1.3,Arrow3);

draw((a*cos(alphar),a*sin(alphar),a^2)--(0,0,a^2)--(0,a,a^2),dashed);
draw(arc(a^2*Z,r=a/2,90,90,90,90+alpha,CW),Arrow3);
draw(arc(0Z,r=a,90,90+alpha,90,90,CCW),dashed,Arrow3);
Asymptote - Figure 0029: fig_se02_051211_surface.asy
(Code compilé avec Asymptote version 2.14svn)
largeur320 Figure fig_se02_051211_surface
import solids;
size(7.5cm,0);
viewportmargin=3mm;
currentprojection=orthographic((9,6,4));
pen color=orange+white;

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

real a=2;
path p=graph(F,0,a^2,n=10,operator ..)--(0,a)--cycle;
path3 p3=rotate(-90,Y)*path3(p);

render render=render(compression=0,merge=true);

real alpha=280, alphar=pi/2+alpha*pi/180;
draw(surface(revolution(p3,Z,0,alpha)),color,render);

surface s=rotate(-90,Y)*surface(p);
draw(s,color,render);
draw(rotate(alpha,Z)*s,color,render);

draw(p3,.8bp+orange);

xaxis3(Label("$x$",1),xmax=a+.5,Arrow3);
yaxis3(Label("$y$",1),ymax=a+.5,Arrow3);
zaxis3(Label("$z$",1),zmax=a^2*1.3,Arrow3);

draw((a*cos(alphar),a*sin(alphar),a^2)--(0,0,a^2)--(0,a,a^2),dashed);
draw(arc(a^2*Z,r=a/2,90,90,90,90+alpha,CW),Arrow3);
draw(arc(0Z,r=a,90,90+alpha,90,90,CCW),dashed,Arrow3);
Asymptote - Figure 0030: fig_sf01_070309_fichier_de_donnees.asy
(Code compilé avec Asymptote version 1.95svn)
largeur320 Figure fig_sf01_070309_fichier_de_donnees
// Lecture d'un fichier de données (avec les abscisses sur la première ligne,
// les ordonnées sur la deuxième, et le tableau des cotes à la suite.
// (fichier, téléchargeable ici : donnees.txt)

import graph3;

size3(150,IgnoreAspect);

currentlight=nolight;

file in=input("donnees.txt").line();
real[] x=in;
real[] y=in;

real[][] f=in.dimension(0,0);

triple f(pair t) {
  int i=round(t.x);
  int j=round(t.y);
  return (x[i],y[j],f[i][j]);
}
draw(surface(f,(0,0),(x.length-1,y.length-1),x.length-1,y.length-1),
     surfacepen=lightgray,meshpen=1bp+black);

// Calcul de la position de l'observateur
triple m=currentpicture.userMin; 
triple M=currentpicture.userMax; 
triple target=0.5*(m+M); 
currentprojection=perspective(camera=target+realmult(dir(60,210),M-m), 
                              target=target);
     
xaxis3(Label("$x$",position=MidPoint,align=-Y-Z),
       Bounds(),blue,OutTicks(Label(align=-Y-X)));
yaxis3(Label("$y$",position=MidPoint,align=-5X),
       Bounds(),red,OutTicks(Step=1,step=0.25));
zaxis3("$z$",Bounds(),darkgreen,OutTicks(Step=1,step=0.25));
Asymptote - Figure 0031: fig_sf02_070309_fichier_de_donnees.asy
(Code compilé avec Asymptote version 1.95svn)
largeur320 Figure fig_sf02_070309_fichier_de_donnees
// Lecture d'un fichier de données (avec les abscisses sur la première ligne,
// les ordonnées sur la deuxième, et le tableau des cotes à la suite.
// (fichier, téléchargeable ici : donnees.txt)

import graph3;

size3(150,IgnoreAspect);

file in=input("donnees.txt").line();
real[] x=in;
real[] y=in;

real[][] f=in.dimension(0,0);

triple f(pair t) {
  int i=round(t.x);
  int j=round(t.y);
  return (x[i],y[j],f[i][j]);
}
draw(surface(f,(0,0),(x.length-1,y.length-1),x.length-1,y.length-1),
     surfacepen=yellow,meshpen=.8bp+black);

// Calcul de la position de l'observateur
triple m=currentpicture.userMin; 
triple M=currentpicture.userMax; 
triple target=0.5*(m+M); 
currentprojection=perspective(camera=target+realmult(dir(50,35),M-m), 
                              target=target);

xaxis3(Label("$x$",position=MidPoint,align=2Y),
       Bounds(),blue,InTicks);
yaxis3(Label("$y$",position=MidPoint,align=5X),
       Bounds(),red,OutTicks(Label(align=X),Step=1,step=0.25));
zaxis3(Label("$z$",position=MidPoint,align=X-Y),
       Bounds(),darkgreen,InTicks(Step=1,step=0.25));
Asymptote - Figure 0032: fig_sf03_070309_fichier_de_donnees.asy
(Code compilé avec Asymptote version 1.95svn)
largeur320 Figure fig_sf03_070309_fichier_de_donnees
// Lecture d'un fichier de données (avec les abscisses sur la première ligne,
// les ordonnées sur la deuxième, et le tableau des cotes à la suite.
// (fichier, téléchargeable ici : donnees.txt)

import graph3;

size3(150,IgnoreAspect);

file in=input("donnees.txt").line();
real[] x=in;
real[] y=in;

real[][] f=in.dimension(0,0);

triple f(pair t) {
  int i=round(t.x);
  int j=round(t.y);
  return (x[i],y[j],f[i][j]);
}

draw(surface(f,(0,0),(x.length-1,y.length-1),x.length-1,y.length-1),
     surfacepen=lightyellow,meshpen=.8bp+black);

// Calcul de la position de l'observateur
triple m=currentpicture.userMin; 
triple M=currentpicture.userMax; 
triple target=0.5*(m+M); 
currentprojection=perspective(camera=target+realmult(dir(68,-143),M-m), 
                              target=target);
     
xaxis3(Label("$x$",position=MidPoint,align=-Y-Z),
       Bounds(),blue,InTicks);
yaxis3(Label("$y$",position=MidPoint,align=-X-Z),
       Bounds(),red,InTicks(Step=1,step=0.25));
zaxis3("$z$",Bounds(),darkgreen,InTicks(Step=1,step=0.25));
Asymptote - Figure 0033: fig_ta01_200309_surface_tube.asy
(Code compilé avec Asymptote version 1.95svn)
largeur320 Figure fig_ta01_200309_surface_tube
import tube;
import graph3;

size(7.5cm,0);

currentprojection=perspective(10,5,12);
currentlight=light(8,10,2);

path3 g1=(0,0,0)--(1,0,0)..(1,1,0)..cycle;
surface tb1=tube(g1,scale(.1)*unitcircle);
draw(tb1,blue);

path3 g2=(0,0,0)--(1,0,0)--(1,1,0)..cycle;
surface tb2=tube(g2,scale(.1)*polygon(3));
draw(shift(Z)*tb2,green);

limits((-1,-1,-1),(1.5,1.5,1.5));
xaxis3("$x$",Arrow3);
yaxis3("$y$",Arrow3);
zaxis3("$z$",Arrow3);
Asymptote - Figure 0034: fig_ta02_140509_surface_tube.asy
(Code compilé avec Asymptote version 1.95svn)
largeur320 Figure fig_ta02_140509_surface_tube
import tube;
import graph3;

size(7.5cm,0);

currentprojection=perspective(7,10,3);
currentlight=light(8,10,2);

real a=5;
path3 g1=(a,-a,0)--(a,a,0)..(0,a,a)..(-a,a,0)
         --(-a,-a,0)--(0,-a,a)--cycle;

draw(tube(g1,scale(a/10)*unitcircle),red);

limits((-a,-a,-a),(1.5a,1.5a,1.5a));
xaxis3("$x$",Arrow3);
yaxis3("$y$",Arrow3);
zaxis3("$z$",Arrow3);
Asymptote - Figure 0035: fig_zz01_200309_repere.asy
(Code compilé avec Asymptote version 1.95svn)
largeur320 Figure fig_zz01_200309_repere
import graph3; 

size3(120,IgnoreAspect);

limits((0,50,0),(10,60,2)); 

triple m=currentpicture.userMin; 
triple M=currentpicture.userMax; 
triple target=0.5*(m+M); 
currentprojection=perspective(camera=target+realmult(dir(60,50),M-m), 
                              target=target);

xaxis3(Bounds(),OutTicks(beginlabel=false,endlabel=false),p=blue); 
yaxis3(Bounds(),InTicks(Step=5,step=1),p=red); 
zaxis3(Bounds(),OutTicks,p=green); 

// Pour apprendre à configurer les repères, voir la galerie "Repères 3D"

Dernière modification le Sat Jun 27 17:43:09 CEST 2015 par G.Marris       Valide XHTML