Ah merci beaucoup, effectivement cela fonctionne pour le fichier de mon précédent post.
Mais j'ai un problème avec un autre fichier maintenant.
Code : Tout sélectionner
%======================Fonctionsusuelles======================================
numeric Pi,E;
Pi:= 3.14159;
E:= 2.7182;
vardef sin(expr x) =
sind(x/Pi*180)
enddef;
vardef cos(expr x) =
cosd(x/Pi*180)
enddef;
vardef tan(expr x) =
sin(x)/cos(x)
enddef;
vardef exp(expr x) =
mexp(x*256)
enddef;
vardef ln(expr x) =
mlog(x)/256
enddef;
% Définition du repère ===================================================
def repere(expr Ox,Oy,Xmin,Xmax,Ymin,Ymax,Ux,Uy) =
% affectations des variables
_ox := Ox ; _oy := Oy ; _ux := Ux ; _uy := Uy; _e := e;
_xmin := Xmin ; _xmax := Xmax ; _ymin := Ymin ; _ymax := Ymax;
_r_xmin := _xmin*_ux+_ox; %l'abscisse minimale
_r_xmax := _xmax*_ux+_ox; %l'abscisse maximale
_r_ymin := _ymin*_uy+_oy; %l'ordonnée minimale
_r_ymax := _ymax*_uy+_oy %l'ordonnée maximale
enddef;
% Placer les axes du repère ==============================================
def r_axes =
% pickup pencircle scaled 1.2pt;
drawarrow (_r_xmin,_oy)..(_r_xmax,_oy);
drawarrow (_ox,_r_ymin)..(_ox,_r_ymax);
pickup pencircle scaled 0.5pt;
label.bot(btex $x$ etex, (_r_xmax-1mm,_oy));
label.lft(btex $y$ etex, (_ox,_r_ymax-1mm))
enddef;
% Placer l'origine =======================================================
def r_origine =
label.lft(btex $O$ etex,(_ox,_oy-2mm));
pickup pencircle scaled 3pt;
draw (_ox,_oy);
pickup pencircle scaled 0.5pt
enddef;
%Graduation des unités ===================================================
def r_unites =
draw (_ox+_ux,_oy-1mm)--(_ox+_ux,_oy+1mm);
draw(_ox-1mm,_oy+_uy)--(_ox+1mm,_oy+_uy)
enddef;
%Graduation des axes =====================================================
def grad_x(expr n,m,couleur) =
numeric _m;
_m:=m;
% pickup pencircle scaled 0.1pt;
for i=1 upto (floor(-_xmin+1))/n:
draw (-i*n*_ux,_oy-1mm)--(-i*n*_ux,_oy+1mm) withcolor _m*couleur;
endfor
for i=1 upto (floor(_xmax+1))/n:
draw (i*n*_ux,_oy-1mm)--(i*n*_ux,_oy+1mm) withcolor _m*couleur;
endfor
enddef;
def grad_y(expr n,m,couleur) =
numeric _m;
_m:=m;
% pickup pencircle scaled 0.1pt;
for i=1 upto (floor(-_ymin+1))/n:
draw (_ox-1mm,-i*n*_uy)--(_ox+1mm,-i*n*_uy) withcolor m*couleur;
endfor
for i=1 upto (floor(_ymax+1))/n:
draw (_ox-1mm,i*n*_uy)--(_ox+1mm,i*n*_uy) withcolor m*couleur;
endfor
enddef;
% Quadrillage==================%suppose que xmin est négatif et xmax positif=========
def quad_x(expr n,m,couleur) =
numeric _a,_b,_c,_d,_m;
_m:=m;
_a = floor(_xmin)*_ux+_ox; _b = floor(_ymin)*_uy+_oy;
_c = (floor(_xmax)+1)*_ux+_ox; _d = (floor(_ymax)+1)*_uy+_oy;
% pickup pencircle scaled 0.1pt;
for i=1 upto (floor(-_xmin+1))/n:
draw (-i*n*_ux,_b)--(-i*n*_ux,_d) withcolor _m*couleur;
endfor
for i=1 upto (floor(_xmax+1))/n:
draw (i*n*_ux,_b)--(i*n*_ux,_d) withcolor _m*couleur;
endfor
enddef;
def quadunite_x(expr m,couleur) =
numeric _a,_b,_c,_d;
_a = floor(_xmin)*_ux+_ox; _b = floor(_ymin)*_uy+_oy;
_c = (floor(_xmax)+1)*_ux+_ox; _d = (floor(_ymax)+1)*_uy+_oy;
pickup pencircle scaled 0.3pt;
for i=0 upto (floor(_xmax)+1-floor(_xmin)) -1:
draw (_a+i*_ux,_b)--(_a+i*_ux,_d) withcolor m*couleur;
endfor
enddef;
def quad_y(expr n,m,couleur) =
numeric _a,_b,_c,_d;
_a = floor(_xmin)*_ux+_ox; _b = floor(_ymin)*_uy+_oy;
_c = (floor(_xmax)+1)*_ux+_ox; _d = (floor(_ymax)+1)*_uy+_oy;
% pickup pencircle scaled 0.1pt;
for i=1 upto (floor(-_ymin+1))/n:
draw (_a,-i*n*_uy)--(_c,-i*n*_uy) withcolor m*couleur;
endfor
for i=1 upto (floor(_ymax+1))/n:
draw (_a,i*n*_uy)--(_c,i*n*_uy) withcolor m*couleur;
endfor
enddef;
def quadunite_y(expr m,couleur) =
numeric _a,_b,_c,_d;
_a = floor(_xmin)*_ux+_ox; _b = floor(_ymin)*_uy+_oy;
_c = (floor(_xmax)+1)*_ux+_ox; _d = (floor(_ymax)+1)*_uy+_oy;
pickup pencircle scaled 0.3pt;
for i=0 upto (floor(_ymax)+1-floor(_ymin)) -1:
draw (_a,_b+i*_uy)--(_c,_b+i*_uy) withcolor m*couleur;
endfor
enddef;
%Définir un point dans ce plan ===========================================
def r_point(expr x,y) =
(_ox+x*_ux,_oy+y*_uy)
enddef;
%Placer un point plein dans ce repère ====================================
def r_ppoint(expr x,y) =
pickup pencircle scaled 3pt;
draw (_ox+x*_ux,_oy+y*_uy);
pickup pencircle scaled 0.5pt
enddef;
%Placer un point creux dans ce repère ====================================
def r_cpoint(expr x,y) =
path _e;
_e = fullcircle scaled 3pt shifted(_ox+x*_ux,_oy+y*_uy);
draw _e;
fill _e withcolor white
enddef;
%Label des unités ========================================================
def r_labelxy =
label.bot(btex $+1$ etex,(_ox+_ux,_oy-1mm));
label.lft(btex $+1$ etex, (_ox-1mm,_oy+_uy))
enddef;
%Definir un segment ================================================
def r_segment(expr a,b,c,d) =
(_ox+a*_ux,_oy+b*_uy)--(_ox+c*_ux,_oy+d*_uy)
enddef;
% Definir une droite // à l'axe des ordonnées =============================
def rx_droite(expr k) =
(_ox+k*_ux,_r_ymin)--(_ox+k*_ux,_r_ymax)
enddef;
% Definir une droite définie par un point et son coeff dir ================
def r_droitedir(expr a,b,m) =
(_r_xmin,_oy+(m*_xmin+b-m*a)*_uy)--(_r_xmax,_oy+(m*_xmax+b-m*a)*_uy)
enddef;
% Projection d'un point sur les axes ======================================
def r_point_proj(expr x,y) =
draw(_ox+x*_ux,_oy)--(_ox+x*_ux,_oy+y*_uy)--(_ox,_oy+y*_uy) dashed evenly;
r_ppoint(x,y)
enddef;
% On enlève ce qui sort du repère =========================================
def r_fin =
clip currentpicture to (_r_xmin,_r_ymin)--(_r_xmin,_r_ymax)--
(_r_xmax,_r_ymax)--(_r_xmax,_r_ymin)--cycle
enddef;
% Tracer des courbes en dimension 2 =======================================
% Sont prédéfinies avant beginfig les expressions fx(t) et fy(t)===========
vardef f_point(suffix fx,fy)(expr t) =
r_point(fx(t),fy(t))
enddef;
vardef fy_val(suffix fx,fy)(expr t) =
fy(t)
enddef;
vardef f_courbe(suffix fx,fy)(expr ti,tf,n) =
f_point(fx,fy,ti)
for i=1 upto n:
...f_point(fx,fy,ti+(i/n)*(tf-ti))
endfor
enddef;
% Dérivée de f sous réserve d'existence =====================================
vardef fx_derive(suffix fx)(expr a,h) =
((fx(a+h))-(fx(a)))/h
enddef;
vardef fy_derive(suffix fy)(expr a,h) =
((fy(a+h))-(fy(a)))/h
enddef;
% Tangente à la courbe en un point régulier tel que x'(t) différent de 0=====
vardef f_tangente(suffix fx,fy)(expr a,h) =
r_droitedir(fx(a),fy(a),(fy_derive(fy,a,h))/(fx_derive(fx,a,h)))
enddef;
% Tracé de la tangente en un point régulier tel que x'(t) différent de 0=====
vardef tracef_tangente(suffix fx,fy)(expr a,b,h,couleur) =
pair _f[];
_f1=f_point(fx,fy,a)+b*(1*_ux,(fy_derive(fy,a,h))/(fx_derive(fx,a,h))*_uy);
_f2=f_point(fx,fy,a)-b*(1*_ux,(fy_derive(fy,a,h))/(fx_derive(fx,a,h))*_uy);
drawdblarrow _f1.._f2 withcolor couleur;
pickup pencircle scaled 0.5pt;
r_ppoint(fx(a),fy(a))
enddef;
%==========================Suites numeriques=================================
%suites u(n)=f(n)
vardef u_courbe(suffix ux,uy)(expr ni,nf,t) =
drawoptions( dashed evenly);
draw f_point(ux,uy,ni)
for i=ni upto nf:
...f_point(ux,uy,i)
endfor ;
drawoptions( );
pickup pencircle scaled 3pt;
for i=ni upto nf:
draw f_point(ux,uy,i);
% dotlabel.bot(""&decimal i, r_point(i,0));
% dotlabel.lft("u"&decimal i, r_point(0,uy(i));
endfor ;
if t=1:
for j=ni upto nf:
u[j] = uy(j);
write "dotlabel.lft"
&
"(btex $u_{"&decimal j&"}$ etex,r_point(0,u["&decimal j&"]));"
to
"toto.tmp";
dotlabel.bot(""&decimal j, r_point(j,0));
endfor;
write EOF to "toto.tmp";
scantokens "input toto.tmp";
fi;
pickup pencircle scaled 0.5pt
enddef;
% calcul d'un terme quelconque de la suite u(n+1)=f(u(n)) à partir
% d'un autre précédent dans la liste
% suites u(n+1)=f(u(n))
vardef u_rec(suffix fx,fy)(expr d,i,n) =
numeric u[];
u[i] = d;
for j=i upto n:
u[j+1] = fy(u[j]);
endfor;
u[n]
enddef;
% courbes suites u(n+1)=f(u(n))
vardef u_reccourbe (suffix fx,fy) (expr d,i,n,ni,nf,t) =
draw f_courbe(fx,fy,ni,nf,100);
draw r_droitedir(0,0,1);
numeric u[];
u[i] = d;
for j=i upto n-1:
u[j+1] = fy(u[j]);
draw r_point(u[j+1],0)--r_point(u[j+1],u[j+1]) dashed evenly;
if j > i:
draw r_point(u[j],u[j])--f_point(fx,fy,u[j])--r_point(u[j+1],u[j+1]);
fi;
endfor;
draw r_point(u[i],0)--f_point(fx,fy,u[i])--r_point(u[i+1],u[i+1]);
if t=1:
for j=0 upto n:
write "dotlabel.bot"
&
"(btex $u_{"&decimal j&"}$ etex, r_point(u["&decimal j&"],0));"
to
"toto.tmp";
endfor;
write EOF to "toto.tmp";
scantokens "input toto.tmp";
fi;
enddef;
%============================integration===================================
%Pompé en partie sur le net chez Vincent Zoonekynd.....merci a lui
% rectangles à gauche, on commence avec une hauteur qui est l'image
% du premier point de la subdivision, la somme des aires ne minore
% donc pas en general integrale de f sur [a,b]
vardef trace_rectangles_left (suffix fx,fy)(expr a,b,inc) =
% sur l'intervalle [a,b] avec un pas de inc
save i; numeric i;
for i=a step inc until b-inc:
path p;
p = r_point(i,0)--r_point(i+inc,0)--r_point(i+inc,fy(i))--r_point(i,fy(i))--cycle;
%p := p scaled 1cm;
%fill p withcolor .8*white;
draw p;
endfor;
enddef;
% rectangles à droite, on commence avec une hauteur qui est l'image
% du premier point +inc de la subdivision, la somme des aires ne
% minore donc pas en general integrale de f sur [a,b]
vardef trace_rectangles_right (suffix fx,fy)(expr a,b,inc) =
% sur l'intervalle [a,b] avec un pas de inc
save i; numeric i;
for i=a step inc until b-inc:
path p;
p = r_point(i,0)--r_point(i+inc,0)--r_point(i+inc,fy(i+inc))--
r_point(i,fy(i+inc))--cycle;
%p := p scaled 1cm;
%fill p withcolor .8*white;
draw p;
endfor;
enddef;
%methode des trapezes
vardef trace_trapezes (suffix fx,fy)(expr a,b,inc) =
save i; numeric i;
for i=a step inc until b-inc:
path p;
p = r_point(i,0)--r_point(i+inc,0)--r_point(i+inc,fy(i+inc)) --
r_point(i,fy(i))--cycle;
% p := p scaled 1cm;
% fill p withcolor .8*white;
draw p;
endfor;
enddef;
% une macro non parfaite pour obtenir le min de f sur un intervalle,
% cela suppose qu'elle soit bien reguliere......
vardef minf(suffix fx,fy)(expr a,b) =
save m,i; numeric m,i;
m:=fy(a);
for i=a step (b-a)/100 until b:
if m>fy(i): m:=fy(i); fi;
endfor;
m
enddef;
%rectangle en dessous de la courbe, utilise la macro precedente
vardef trace_rectangles_min (suffix fx,fy)(expr a,b,inc) =
save i; numeric i;
for i=a step inc until b-inc:
path p; numeric m;
m:=minf(fx,fy,i,i+inc);
p = r_point(i,0)--r_point(i+inc,0)--r_point(i+inc,m)--r_point(i,m)--cycle;
%p := p scaled 1cm;
%fill p withcolor .8*white;
draw p;
endfor;
enddef;
% une macro non parfaite pour obtenir le max de f sur un intervalle,
% cela suppose qu'elle soit bien reguliere......
vardef maxf(suffix fx,fy)(expr a,b) =
save m,i; numeric m,i;
m:=fy(a);
for i=a step (b-a)/100 until b:
if m<fy(i): m:=fy(i); fi;
endfor;
m
enddef;
% rectangle au dessus de la courbe, utilise la macro precedente
vardef trace_rectangles_max (suffix fx,fy)(expr a,b,inc) =
save i; numeric i;
for i=a step inc until b-inc:
path p; numeric m;
m:=maxf(fx,fy,i,i+inc);
p = r_point(i,0)--r_point(i+inc,0)--r_point(i+inc,m)--r_point(i,m)--cycle;
%p := p scaled 1cm;
%fill p withcolor .8*white;
draw p;
endfor;
enddef;
%===================Hachurage (Christophe Poulain .....merci a lui)============
vardef hachuragechemin(expr chemin, angle, ecart, trace,couleur)= % retourne une picture
save $;
picture $;
path support;
support=((cm*(-37,0))--(cm*(37,0))) rotated angle;
if trace=1:
drawoptions(dashed evenly);
elseif trace=2:
drawoptions(dashed dashpattern(on12bp off6bp on3bp off6bp));
fi;
$=image(
for j=-200 upto 200:
if ((support shifted (ecart*j*(cm,0))) intersectiontimes chemin)<>(-1,-1):
draw support shifted (ecart*j*(cm,0))
withcolor couleur;
fi
endfor;
);
clip $ to chemin;
drawoptions();
$
enddef;
Code : Tout sélectionner
input courbes.mp;
verbatimtex
%&latex
\documentclass{article}
\begin{document}
\def\vect#1{\vec #1}
etex
beginfig(1);
path p[],q[],t[];
repere(0,0,-1,3,-1,2,1cm,2cm);
p1 = r_point(0,0)--r_point(0,1)--r_point(1,1)--r_point(1,0)--cycle;
fill p1 withcolor 0.5*white;
label.bot(btex $I$ etex, r_point(1,0));
label.rt(btex $K$ etex, r_point(1,1));
label.lft(btex $J$ etex, r_point(0,1));
label.bot(btex $\vect{i}$ etex, r_point(0.5,0));
label.lft(btex $\vect{j}$ etex, r_point(0,0.5));
label(btex $u.a.$ etex, r_point(0.5,0.5));
%trace du repère
r_axes;
r_origine;
%r_unites;
%r_labelxy;
r_fin;
endfig;
%========================================================================
vardef fx(expr t) =
t
enddef;
vardef fy(expr t) =
cos(t)+4
enddef;
%========================================================================
vardef gx(expr t) =
t
enddef;
vardef gy(expr t) =
cos(t-0.5)+3
enddef;
%========================================================================
beginfig(2);
path p[],q[],t[];
repere(0,0,-1,9,-1,6,1cm,1cm);
%definition de la surface
p1 = f_courbe(fx,fy,2,9,100);
p2 = f_courbe(gx,gy,2,9,100);
q1 = rx_droite(3);
q2= rx_droite(8);
q3 = r_droitedir(0,0,0);
%remplissage de la surface
t1 = buildcycle(q1,p1,q2,q3);
fill t1 withcolor .8white;
t2= buildcycle(q1,p2,q2,q3);
unfill t2;
fill t2 withcolor .4white;
%trace de la surface
draw p1;draw p2;
draw r_point(3,0)--f_point(fx,fy,3);
draw r_point(8,0)--f_point(fx,fy,8);
label.lft(btex $y=f(x)$ etex, f_point(fx,fy,2));
label.lft(btex $y=g(x)$ etex, f_point(gx,gy,2));
label.bot(btex $a$ etex, r_point(3,0));
label.bot(btex $b$ etex, r_point(8,0));
%trace du repère
r_axes;
r_origine;
%r_unites;
%r_labelxy;
r_fin;
endfig;
%========================================================================
vardef fx(expr t) =
t
enddef;
vardef fy(expr t) =
cos(t)+0.5
enddef;
%========================================================================
vardef gx(expr t) =
t
enddef;
vardef gy(expr t) =
cos(t-0.5)-0.5
enddef;
%========================================================================
beginfig(3);
path p[],q[],t[];
repere(0,0,-1,9,-3,3,1cm,1cm);
%trace du repère
r_axes;
r_origine;
%r_unites;
%r_labelxy;
%definition de la surface
p1 = f_courbe(fx,fy,2,9,100);
p2 = f_courbe(gx,gy,2,9,100);
q1 = rx_droite(3);
q2= rx_droite(7);
q3 = r_droitedir(0,0,0);
%remplissage de la surface
t1 = buildcycle(p2,q1,p1,q2);
fill t1 withcolor .4white;
%trace de la surface
draw p1;draw p2;
draw r_point(3,0)--f_point(gx,gy,3);
draw r_point(7,0)--f_point(fx,fy,7);
label.ulft(btex $y=f(x)$ etex, f_point(fx,fy,2));
label.lft(btex $y=g(x)$ etex, f_point(gx,gy,2));
label.top(btex $a$ etex, r_point(3,0));
label.bot(btex $b$ etex, r_point(7,0));
r_fin;
endfig;
%========================================================================
vardef fx(expr t) =
t
enddef;
vardef fy(expr t) =
cos(t)+4
enddef;
%========================================================================
beginfig(4);
path p[],q[],t[];
repere(0,0,-1,9,-1,6,1cm,1cm);
%definition de la surface
p1 = f_courbe(fx,fy,2,9,100);
q1 = rx_droite(3);
q2= rx_droite(6);
q3 =rx_droite(8);
q4 = r_droitedir(0,0,0);
%remplissage de la surface
t1 = buildcycle(q2,p1,q3,q4);
fill t1 withcolor .4white;
t2= buildcycle(q1,p1,q2,q4);
fill t2 withcolor .9white;
%trace de la surface
draw p1;
draw r_point(3,0)--f_point(fx,fy,3);
draw r_point(6,0)--f_point(fx,fy,6);
draw r_point(8,0)--f_point(fx,fy,8);
label.lft(btex $y=f(x)$ etex, f_point(fx,fy,2));
label.bot(btex $a$ etex, r_point(3,0));
label.bot(btex $b$ etex, r_point(6,0));
label.bot(btex $c$ etex, r_point(8,0));
%trace du repère
r_axes;
r_origine;
%r_unites;
%r_labelxy;
r_fin;
endfig;
%=========================================================================
beginfig(5);
path p[],q[],t[];
repere(0,0,-1,9,-1,8,1cm,1cm);
%definition de la surface
p1 = f_courbe(fx,fy,2,9,100);
q1 = rx_droite(3);
q3 =rx_droite(8);
q4 = r_droitedir(0,0,0);
%remplissage de la surface
t1 = buildcycle(q1,p1,q3,q4);
fill t1 withcolor .4white;
%trace de la surface
draw p1;
draw r_point(3,0)--r_point(3,6);
draw r_point(8,0)--r_point(8,6);
draw r_point(0,6)--r_point(8,6);
draw r_point(8,2)--r_point(0,2);
label.lft(btex $y=f(x)$ etex, f_point(fx,fy,2));
label.bot(btex $a$ etex, r_point(3,0));
label.bot(btex $b$ etex, r_point(8,0));
label.ulft(btex $A$ etex, r_point(3,0));
label.urt(btex $B$ etex, r_point(8,0));
label.ulft(btex $F$ etex, r_point(3,2));
label.urt(btex $E$ etex, r_point(8,2));
label.top(btex $D$ etex, r_point(3,6));
label.top(btex $C$ etex, r_point(8,6));
label.lft(btex $M$ etex, r_point(0,6));
label.lft(btex $m$ etex, r_point(0,2));
%trace du repère
r_axes;
r_origine;
%r_unites;
%r_labelxy;
r_fin;
endfig;
%========================================================================
beginfig(6);
path p[],q[],t[];
repere(0,0,-1,9,-1,6,1cm,1cm);
%definition de la surface
p1 = f_courbe(fx,fy,2,9,100);
q1 = rx_droite(3);
q2= rx_droite(6);
q3 =rx_droite(8);
q4 = r_droitedir(0,0,0);
%remplissage de la surface
t1 = buildcycle(q1,p1,q3,q4);
fill t1 withcolor .4white;
%trace de la surface
draw p1;
draw r_point(3,0)--r_point(3,fy(7));
%draw r_point(7,0)--f_point(fx,fy,7) dashed evenly;
draw r_point(0,fy(7))--r_point(3,fy(7)) dashed evenly;
draw r_point(8,0)--r_point(8,fy(7));
draw r_point(3,fy(7))--r_point(8,fy(7));
label.lft(btex $y=f(x)$ etex, f_point(fx,fy,2));
label.bot(btex $a$ etex, r_point(3,0));
%label.bot(btex $c$ etex, r_point(7,0));
label.bot(btex $b$ etex, r_point(8,0));
label.lft(btex $h$ etex, r_point(0,fy(7)));
%trace du repère
r_axes;
r_origine;
%r_unites;
%r_labelxy;
r_fin;
endfig;
beginfig(7);
numeric u;
u=1cm;
path p[],q[],c[];
%les axes et l'origine
z0=(0u,0u);
z1=(-3u,-3u);
z2=(6u,0u);
z3=(0u,10u);
drawarrow z0--z1;
drawarrow z0--z2;
draw (0u,1u)--(0u,2u) dashed evenly ;
draw (0u,4u)--(0u,5u) dashed evenly ;
draw (0u,7u)--(0u,8u) dashed evenly ;
draw (0u,0u)--(0u,1u);
draw (0u,2u)--(0u,4u);
draw (0u,5u)--(0u,7u);
drawarrow (0u,8u)--(0u,10u);
dotlabel.bot(btex $O$ etex, z0);
label.lft(btex $x$ etex, z1);
label.bot(btex $y$ etex, z2);
label.lft(btex $z$ etex, z3);
%les plans
draw (-2u,1u)--(-1u,3u)--(6u,3u)--(5u,1u)--cycle;
draw (-2u,4u)--(-1u,6u)--(6u,6u)--(5u,4u)--cycle;
draw (-2u,7u)--(-1u,9u)--(6u,9u)--(5u,7u)--cycle;
label.lft(btex $a$ etex, (0u,2u));
label.lft(btex $z$ etex, (0u,5u));
label.lft(btex $b$ etex, (0u,8u));
%le solide
%le bas
z10=(1u,2u);
z11=(2u,2.8u);
z12=(3u,2.5u);
z13=(4u,2u);
z14=(2u,1.3u);
c1=z10{up}...{right}z11{right}...{right}z12{right}...{down}z13{down}...{left}z14{left}...cycle;
fill c1 withcolor 0.5*white;
draw c1;
%le milieu
z20=(1.5u,5u);
z21=(2u,5.7u);
z22=(3u,5.3u);
z23=(3.5u,5u);
z24=(2u,4.5u);
c2=z20{up}...{right}z21{right}...{right}z22{right}...{down}z23{down}...{left}z24{left}...cycle;
fill c2 withcolor 0.5*white;
draw c2;
%le haut
z30=(1.5u,8u);
z31=(2u,8.5u);
z32=(3u,8.1u);
z33=(3.5u,8u);
z34=(2u,7.6u);
c3=z30{up}...{right}z31{right}...{right}z32{right}...{down}z33{down}...{left}z34{left}...cycle;
fill c3 withcolor 0.5*white;
draw c3;
%les generatrices
q1 = z10...z20...z30;
p1 = (-2u,4u)--(5u,4u);
z40 = p1 intersectionpoint q1;
draw z10...z40; draw z40...z20 dashed evenly;
p2 = (-2u,7u)--(5u,7u);
z41 = p2 intersectionpoint q1;
draw z20...z41; draw z41...z30 dashed evenly;
q2 = z13...z23...z33;
z50 = p1 intersectionpoint q2;
draw z13...z50; draw z50...z23 dashed evenly;
z51 = p2 intersectionpoint q2;
draw z23...z51; draw z51...z33 dashed evenly;
q3 = z14...z24...z34;
z60 = p1 intersectionpoint q3;
draw z14...z60; draw z60...z24 dashed evenly;
z61 = p2 intersectionpoint q3;
draw z24...z61; draw z61...z34 dashed evenly;
%surface
label.rt(btex $S(z)$ etex, z23);
endfig;
%========================================================================
vardef fx(expr t) =
t
enddef;
vardef fy(expr t) =
cos(t)
enddef;
%========================================================================
vardef gx(expr t) =
t
enddef;
vardef gy(expr t) =
sin(t)
enddef;
%========================================================================
beginfig(8);
path p[],q[],t[];
repere(0,0,-1,3,-1,2,1cm,1cm);
%definition de la surface
p1 = f_courbe(fx,fy,0,3.14/2,100);
p2 = f_courbe(gx,gy,0,3.14/2,100);
q1 = rx_droite(0);
q2=rx_droite(3.14/2);
%remplissage de la surface
t1 = buildcycle(q1,p1,p2);
fill t1 withcolor .4white;
t2= buildcycle(p1,p2,q2);
fill t2 withcolor .4white;
%trace de la surface
draw p1;draw p2;
label.bot(btex $\frac{\pi}{2}$ etex, r_point(3.14/2,0));
%trace du repère
r_axes;
r_origine;
%r_unites;
%r_labelxy;
r_fin;
endfig;
%========================================================================
vardef fx(expr t) =
t
enddef;
vardef fy(expr t) =
cos(t)+4
enddef;
%========================================================================
beginfig(9);
path p[],q[],t[];
repere(0,0,-1,9,-1,6,1cm,1cm);
%definition de la surface
p1 = f_courbe(fx,fy,2,9,100);
q1 = rx_droite(3);
q3 =rx_droite(8);
q4 = r_droitedir(0,0,0);
%remplissage de la surface
t1 = buildcycle(q1,p1,q3,q4);
fill t1 withcolor .4white;
%trace de la surface
draw p1;
draw r_point(3,0)--f_point(fx,fy,3);
draw r_point(8,0)--f_point(fx,fy,8);
label.lft(btex $y=f(x)$ etex, f_point(fx,fy,2));
label.bot(btex $a$ etex, r_point(3,0));
label.bot(btex $b$ etex, r_point(8,0));
%trace du repère
r_axes;
r_origine;
%r_unites;
%r_labelxy;
r_fin;
endfig;
%========================================================================
beginfig(10);
pair x[],c[],p[];
repere(0,0,-1,7,-2,6,1cm,1cm);
%on place les points
x0=r_point(2,0);
x1=r_point(2.5,0);
x2=r_point(3.5,0);
x3=r_point(5,0);
x4=r_point(6,0);
c1=r_point(0,1);
c2=r_point(0,4);
c3=r_point(0,-1);
c4=r_point(0,3);
p0=r_point(2,1);
p1=r_point(2.5,1);
p2=r_point(2.5,4);
p3=r_point(3.5,4);
p4=r_point(3.5,-1);
p5=r_point(5,-1);
p6=r_point(5,3);
p7=r_point(6,3);
%trace des rectangles
draw x0--p0 dashed evenly;
draw p0--c1 dashed evenly ;
pickup pencircle scaled 1pt;
draw p0--p1 ;
pickup pencircle scaled 0.5pt;
draw x1--p2 dashed evenly;
draw p2--c2 dashed evenly ;
pickup pencircle scaled 1pt;
draw p2--p3;
pickup pencircle scaled 0.5pt;
draw p3--p4 dashed evenly;
draw p4--c3 dashed evenly ;
pickup pencircle scaled 1pt;
draw p4--p5 ;
pickup pencircle scaled 0.5pt;
draw p5--p6 dashed evenly ;
draw p6--c4 dashed evenly ;
pickup pencircle scaled 1pt;
draw p6--p7 ;
pickup pencircle scaled 0.5pt;
draw p7--x4 dashed evenly ;
%label sur les axes
label.lft(btex $c_{1}$ etex,c1);
label.lft(btex $c_{2}$ etex,c2);
label.lft(btex $c_{3}$ etex,c3);
label.lft(btex $c_{4}$ etex,c4);
label.llft(btex $x_{0}=a$ etex,x0);
label.bot(btex $x_{1}$ etex,x1);
label.bot(btex $x_{2}$ etex,x2);
label.bot(btex $x_{3}$ etex,x3);
label.bot(btex $x_{4}=b$ etex,x4);
%trace du repère
r_axes;
r_origine;
%r_unites;
%r_labelxy;
r_fin;
endfig;
%========================================================================
beginfig(11);
pair x[],c[],p[];
repere(0,0,-1,7,-2,6,1cm,1cm);
%on place les points
x0=r_point(2,0);
x1=r_point(2.5,0);
x2=r_point(3.5,0);
x3=r_point(5,0);
x4=r_point(6,0);
c1=r_point(0,1);
c2=r_point(0,4);
c3=r_point(0,-1);
c4=r_point(0,3);
p0=r_point(2,1);
p1=r_point(2.5,1);
p2=r_point(2.5,4);
p3=r_point(3.5,4);
p4=r_point(3.5,-1);
p5=r_point(5,-1);
p6=r_point(5,3);
p7=r_point(6,3);
%trace des rectangles
pickup pencircle scaled 1pt;
draw x0--p0 ;
pickup pencircle scaled 0.5pt;
draw p0--c1 dashed evenly ;
pickup pencircle scaled 1pt;
draw p0--p1 ;
draw x1--p2 ;
pickup pencircle scaled 0.5pt;
draw p2--c2 dashed evenly ;
pickup pencircle scaled 1pt;
draw p2--p3;
draw p3--p4 ;
pickup pencircle scaled 0.5pt;
draw p4--c3 dashed evenly ;
pickup pencircle scaled 1pt;
draw p4--p5 ;
draw p5--p6 ;
pickup pencircle scaled 0.5pt;
draw p6--c4 dashed evenly ;
pickup pencircle scaled 1pt;
draw p6--p7 ;
draw p7--x4 ;
pickup pencircle scaled 0.5pt;
%marque + ou -
label(btex $+$ etex, 0.5*(x0+p1));
label(btex $+$ etex, 0.5*(x1+p3));
label(btex $-$ etex, 0.5*(x2+p5));
label(btex $+$ etex, 0.5*(x3+p7));
%label sur les axes
label.lft(btex $c_{1}$ etex,c1);
label.lft(btex $c_{2}$ etex,c2);
label.lft(btex $c_{3}$ etex,c3);
label.lft(btex $c_{4}$ etex,c4);
label.llft(btex $x_{0}=a$ etex,x0);
label.bot(btex $x_{1}$ etex,x1);
label.bot(btex $x_{2}$ etex,x2);
label.bot(btex $x_{3}$ etex,x3);
label.bot(btex $x_{4}=b$ etex,x4);
%trace du repère
r_axes;
r_origine;
%r_unites;
%r_labelxy;
r_fin;
endfig;
%==========================================================================
vardef fx(expr t) =
t
enddef;
vardef fy(expr t) =
t**2
enddef;
%==========================================================================
beginfig(12); %pour l'activite
path p,q;
numeric h;
repere(0,0,-0.2,1.2,-0.2,1.2,10cm,10cm);
%quadunite_x(1,black);
%quadunite_y(1,black);
r_axes;
r_origine;
r_unites;
r_labelxy;
p =f_courbe(fx,fy,0,1,100);
draw p;
trace_rectangles_min(fx,fy,0,1,1/5);
trace_rectangles_max(fx,fy,0,1,1/5);
r_fin;
endfig;
beginfig(13);%pour l'activite
path p,q;
numeric h;
repere(0,0,-0.2,1.2,-0.2,1.2,10cm,10cm);
%quadunite_x(1,black);
%quadunite_y(1,black);
r_axes;
r_origine;
r_unites;
r_labelxy;
p =f_courbe(fx,fy,0,1,100);
draw p;
trace_rectangles_min(fx,fy,0,1,1/10);
trace_rectangles_max(fx,fy,0,1,1/10);
r_fin;
endfig;
beginfig(14);%pour l'activite
path p,q;
numeric h;
repere(0,0,-0.2,1.2,-0.2,1.2,10cm,10cm);
%quadunite_x(1,black);
%quadunite_y(1,black);
r_axes;
r_origine;
r_unites;
r_labelxy;
p =f_courbe(fx,fy,0,1,100);
draw p;
trace_rectangles_min(fx,fy,0,1,1/20);
trace_rectangles_max(fx,fy,0,1,1/20);
r_fin;
endfig;
%========================================================================
vardef ix(expr t) =
t
enddef;
vardef iy(expr t) =
1/t
enddef;
%========================================================================
beginfig(15);
path p[],q[],t[];
repere(0,0,-0.2,1.2,-1,10,10cm,1cm);
%definition de la surface
p1 = f_courbe(ix,iy,0.01,1.2,100);
q1 = rx_droite(0.4);
q3 =rx_droite(1);
q4 = r_droitedir(0,0,0);
%remplissage de la surface
t1 = buildcycle(q1,p1,q3,q4);
fill t1 withcolor .4white;
%trace de la surface
draw p1;
draw r_point(0.4,0)--f_point(ix,iy,0.4);
draw r_point(1,0)--f_point(ix,iy,1);
label.urt(btex $y=\frac{1}{x}$ etex, f_point(ix,iy,0.7));
label.urt(btex $\ln x {\textnormal{ si } 0<x<1}$ etex, r_point(0.4,3));
label.bot(btex $x$ etex, r_point(0.4,0));
label.bot(btex $1$ etex, r_point(1,0));
%trace du repère
r_axes;
r_origine;
%r_unites;
%r_labelxy;
r_fin;
endfig;
%========================================================================
vardef ix(expr t) =
t
enddef;
vardef iy(expr t) =
1/t
enddef;
%========================================================================
beginfig(16);%pour ln
path p[],q[],t[];
repere(0,0,-0.2,2.2,-1,10,8cm,1cm);
%definition de la surface
p1 = f_courbe(ix,iy,0.01,2,100);
q1 = rx_droite(1);
q3 =rx_droite(1.8);
q4 = r_droitedir(0,0,0);
%remplissage de la surface
t1 = buildcycle(q1,p1,q3,q4);
fill t1 withcolor .4white;
%trace de la surface
draw p1;
draw r_point(1,0)--f_point(ix,iy,1);
draw r_point(1.8,0)--f_point(ix,iy,1.8);
label.urt(btex $y=\frac{1}{x}$ etex, f_point(ix,iy,0.7));
label.urt(btex $\ln x {\textnormal{ si } x>1}$ etex, r_point(1,3));
label.bot(btex $1$ etex, r_point(1,0));
label.bot(btex $x$ etex, r_point(1.8,0));
%trace du repère
r_axes;
r_origine;
%r_unites;
%r_labelxy;
r_fin;
endfig;
end
Ces deux fichiers sont dans un même répertoire et lorsque je lance la compilation (avec texmaker et la commande modifiée), j'obtiens ce message d'erreur :
Merci d'avance.