|
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()); |
|
import graph3; size(7.5cm,0); currentprojection=perspective(10,10,10); //currentlight=light(8,10,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); |
|
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); |
|
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); |
|
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); |
|
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); |
|
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); |
|
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); |
|
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); |
|
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); |
|
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); |
|
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); |
|
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); |
|
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); |
|
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))); |
|
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); |
|
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); |
|
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); |
|
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); |
|
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); |
|
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); |
|
// 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)); |
|
// 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)); |
|
// 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)); |
|
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); |
|
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); |
|
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 Sun May 23 01:38:34 CEST 2010 par G.Marris Valide XHTML