Retour

Source : fonctionaffine.mp


fonctionaffine.mp
%%Choix
verbatimtex
%&Latex
\documentclass[12pt]{article}
\usepackage[frenchb]{babel}
\usepackage[latin1]{inputenc}
\usepackage{amsmath}
\begin{document}
etex
%%
prologues:=2;
input geometrie31;
input outils;
input constantes;
defaultfont:="cmmi10";
%papier millimétré
vardef millimetre suffix co =
 color coul;
 numeric hauteur, largeur ;
 path p[];
 %ligne horizontale
 p1:=(x.so*cm, 0)--(x.ne*cm, 0);
 %ligne verticale
 p2:=(0,y.so*cm)--(0,y.ne*cm);
 %choix de la couleur
 if str co ="" :
 coul:= orange
 else :
 coul:=co
 fi;
 %grille millimétrique
 pickup pencircle scaled 0.2;
 %lignes horizontales
 for i:=y.so step 0.1 until y.ne :
 draw p1 shifted (0,i*cm) withcolor coul;
 endfor;
 %lignes verticales
 for i:=x.so step 0.1 until x.ne :
 draw p2 shifted (i*cm,0) withcolor coul;
 endfor;
 %grille demi-centimétrique
 pickup pencircle scaled 0.5;
 %lignes horizontales
 for i:=y.so step 0.5 until y.ne:
 draw p1 shifted (0,i*cm) withcolor coul;
 endfor;
 %lignes verticales
 for i:=x.so step 0.5 until x.ne :
 draw p2 shifted (i*cm,0) withcolor coul;
 endfor;
 %grille centimétrique
 pickup pencircle scaled 0.7;
 %lignes horizontales
 for i:=y.so step 1 until y.ne:
 draw p1 shifted (0,i*cm) withcolor coul;
 endfor;
 %lignes verticales
 for i:=x.so step 1 until x.ne :
 draw p2 shifted (i*cm,0) withcolor coul;
 endfor;
 %grille penta-centimétrique
 %lignes horizontales
 pickup pencircle scaled 1;
 for i:=0 step -5 until y.so :
 draw p1 shifted (0,i*cm) withcolor coul;
 endfor;
 for i:=0 step 5 until y.ne :
 draw p1 shifted (0,i*cm) withcolor coul;
 endfor;
 %lignesverticales
 for i:=0 step -5 until x.so :
 draw p2 shifted (i*cm,0) withcolor coul;
 endfor;
 for i:=0 step 5 until x.ne :
 draw p2 shifted (i*cm,0) withcolor coul;
 endfor;
enddef;
 
vardef origine(expr p)=
  x.origin:=xpart(p);
  y.origin:=ypart(p);
enddef;
 
%graduation de l 'axe des x
vardef graduationx suffix inc =
  dotlabel.llft(btex $O$ etex,(x.origin*cm,y.origin*cm));
  label.llft( btex $x$ etex,(x.ne*cm,y.origin*cm));
  pickup pencircle scaled 0.5;
  dotlabel.bot(btex 1 etex,z.origin*cm+(1*x.u,0));
  drawarrow (x.so*cm,y.origin*cm)--(x.ne*cm,y.origin*cm);
  label.lrt( btex $x'$ etex,(x.so*cm,y.origin*cm));
enddef;
 
%graduation de l 'axe des y
vardef graduationy suffix inc =
  label.lrt( btex $y$ etex,(x.origin*cm,y.ne*cm));
  pickup pencircle scaled 0.5;
  dotlabel.lft(btex 1 etex,z.origin*cm+(0,1*y.u));
  drawarrow (x.origin*cm,y.so*cm)--(x.origin*cm,y.ne*cm);
  label.urt( btex $y'$ etex,(x.origin*cm,y.so*cm)) ;
enddef;
%Calcul des coordonnées des points
vardef courbe[](expr a,b,nb) suffix co =
 for i:=0 upto nb :
 x@[i]:=(a+i*(b-a)/nb);
 x:=x@[i];
 ordonnee@(i); % calcul de l'ordonnée du point d'indice i
 endfor ;
 Cb@:= (x@.0*x.u,y@.0*y.u)
 for i:=1 upto nb :
   ..(x@[i]*x.u,y@[i]*y.u)
 endfor;
 Cb@:=Cb@ shifted (z.origin*cm);
 Cb@:=Cb@ cutbefore (z.so*cm--(x.ne,y.so)*cm--z.ne*cm--(x.so,y.ne)*cm--cycle) cutafter (z.so*cm--(x.ne,y.so)*cm--z.ne*cm--(x.so,y.ne)*cm--cycle);
 if str co <>"" :
 draw Cb@ withcolor co
fi;
%clip currentpicture to z.so*cm--(x.ne,y.so)*cm--z.ne*cm--(x.so,y.ne)*cm--cycle;
enddef;
 
vardef param[](expr a,b,nb) suffix co=
 for i:=0 upto nb :
 t@[i]:= (a+i*(b-a)/nb) ;
 coordonnees@(i);
 endfor;
 Cb@:= (x@.0*x.u,y@.0*y.u)
 for i:=1 upto nb :
 ..(x@[i]*x.u,y@[i]*y.u)
endfor;
Cb@:=Cb@ shifted (z.origin*cm);
if str co <>"" :
  draw Cb@ withcolor co
fi;
clip currentpicture to z.so*cm--(x.ne,y.so)*cm--z.ne*cm--(x.so,y.ne)*cm--cycle;
enddef;
 
vardef polaire[](expr a,b,nb) suffix co=
 for i:=0 upto nb :
 t@[i]:= (a+i*(b-a)/nb) ;
 coordpolaire@(i);
 endfor;
 Cb@:= (x@.0*x.u,y@.0*y.u)
 for i:=1 upto nb :
 ..(x@[i]*x.u,y@[i]*y.u)
endfor;
Cb@:=Cb@ shifted (z.origin*cm);
if str co <>"" :
  draw Cb@ withcolor co
fi;
clip currentpicture to z.so*cm--(x.ne,y.so)*cm--z.ne*cm--(x.so,y.ne)*cm--cycle;
enddef;
%etiquettage de la cour Cb@#
vardef labelise@#(expr a)(suffix pos) suffix co =
 numeric t;
 pair pt,tangent;
 color coul;
 if str co ="" :
 coul:= noir
 else :
 coul:=co
 fi;
 if str pos ="" :
 t:= 0.5*length Cb@#
 else :
 t:=pos*length Cb@#
 fi;
 pt:= point t of Cb@#;
 tangent:= unitvector(direction t of Cb@#);
 label(a rotated angle(tangent),pt+2mm*(tangent rotated 90)) withcolor coul;
enddef;
%Dessin de la tangente en cartésien
vardef tangente[](expr abscisse)=
  numeric t;
  pair pt,tangent;
  t=(((abscisse*x.u+x.origin*cm)-xpart(point 0 of Cb@))/(xpart(point (length Cb@) of Cb@)-xpart(point 0 of Cb@)))*length Cb@;
  pt:=point t of Cb@;
  tangent:=unitvector(direction t of Cb@);
  drawdblarrow (pt shifted (-25*tangent))--(pt shifted (25*tangent));
  draw cercle(pt,0.05*u);
enddef;
 
vardef sin(expr t) = sind(c*t) enddef;
 
vardef cos(expr t) = cosd(c*t) enddef;
 
vardef exp(expr t) = e**t enddef;
 
vardef papiermillimetre(expr m,n,p,q,r)(suffix s,t,col)=
  origine(m);
  x.u:=n*cm;
  y.u:=p*cm;
  z.so=q;
  z.ne=r;
  millimetre col;
  graduationx s;
  graduationy t;
enddef;
%Tracé
vardef ordonnee[](expr i) =
 numeric x;
 x:=x@[i];
 y@[i]:=
 % définition des fonctions dont on veut obtenir la courbe représentative.
 if @=1: 2*x-1
 elseif @=2 : -(x**2)+2*x-1
 elseif @=3 : x**3-2*x**2+x+1
 elseif @=4 : x**4
 elseif @=5 : sqrt(x)
 elseif @=6 : x**5
 elseif @=7 : x**6
 elseif @=8 : 0.2/x
 elseif @=9 : 1/(10*x)
 elseif @=10: exp(x)
 fi
enddef;
% définition des courbes en paramétrique.
vardef coordonnees[](expr i) =
 numeric t;
 t:=t@[i];
 z@[i] =
 if @=11: ( 5*cos(t) , 5*sin(t))
 elseif @=12: (t**4,t)
 elseif @=13 :(t**3, t)
 elseif @=14 :( t**6, t)
 elseif @=15 : ( t**5, t)
 elseif @=16 :( t**7, t)
 elseif @=17 : (exp(t), t)
 elseif @=18 :((cos(t))**3 ,(sin(t))**3 )
 elseif @=19 :( , )
 elseif @=20 :( , )
 fi
enddef ;
%Définition des courbes en polaire.
vardef coordpolaire[](expr i)=
  numeric theta;
  theta:=t@[i];
  z@[i]=
  if @=21: ((1+cos(theta))*cos(theta),(1+cos(theta))*sin(theta))%Cardioïde
  elseif @22: ((cos(theta))**2,cos(theta)*sin(theta))
  fi
enddef;
lpage=18;
hpage=20;
path cadre;
cadre=(0,0)--u*(lpage,0)--u*(lpage,hpage)--u*(0,hpage)--cycle;
pair q[];
q0=u*(0,hpage);
q1=u*(lpage,hpage);
q2=u*(0,hpage-2);
q3=u*(lpage,hpage-2);
vues=5;
picture papier[];
papiermillimetre((8,7),1,1,(1,1),(17,13),1,1,orange);
papier1=currentpicture;
currentpicture:=nullpicture;
papiermillimetre((8,7),1,1,(1,1),(17,13),1,1,orange);
affixed.B((8*x.u,7*y.u-1*y.u))se;
q5=z.B;
papier2=currentpicture;
currentpicture:=nullpicture;
draw papier2;
affixed.A((8*x.u+2*x.u,7*y.u+3*y.u))no;
q6=z.A;
dotlabel.bot(btex $2$ etex,(8*x.u+2*x.u,7*y.u));
dotlabel.lft(btex $3$ etex,(8*x.u,7*y.u+3*y.u));
draw (8*x.u+2*x.u,7*y.u)--z.A--(8*x.u,7*y.u+3*y.u) dashed evenly;
papier3=currentpicture;
currentpicture:=nullpicture;
draw papier3;
courbe1(-6,6,100)noir;labelise1(btex $y=2x-1$ etex,0.1)noir;
numeric l;
l=length Cb1;
path droite;
droite=Cb1;
papier4=currentpicture;
currentpicture:=nullpicture;
picture comb[],combo[];
draw crayon(q5,(point 0 of droite),(point 0 of droite),1.5) withcolor bleu;
comb[0]:=currentpicture;
currentpicture:=nullpicture;
draw reglemesure((point 0 of droite),(point(l) of droite),1);
comb[7]:=currentpicture;
currentpicture:=nullpicture;
draw comb0;draw comb7;
combo0=currentpicture;
currentpicture:=nullpicture;
for vue=1 upto vues:
  draw crayon((point((vue/vues)*l) of droite),(point 0 of droite),(point((vue/vues)*l) of droite),1.5) withcolor bleu;
  comb[vue]:=currentpicture;
  currentpicture:=nullpicture;
  draw reglemesure((point 0 of droite),(point(l) of droite),1);
  comb[vues+vue]:=currentpicture;
  currentpicture:=nullpicture;
  draw comb[vue];
  draw comb[vues+vue];
  draw (point 0 of droite)--(point((vue/vues)*l) of droite) withcolor violet;
  combo[vue]:=currentpicture;
  currentpicture:=nullpicture;
endfor;
beginfig(0);
  draw cadre;
  label(btex \bf\Huge Représentation graphique etex,1/2[(0,0),(lpage*cm,hpage*cm)]);
  label(btex \bf\Huge d'une fonction affine etex,1/2[(0,0),(lpage*cm,(hpage-2)*cm)]);
endfig;
beginfig(1);
  draw cadre;
  draw q2--q3;
  label(btex \bf\large Représentation graphique d'une fonction affine. etex,(1/2[q0,q1] shifted ((0,-1*u))));
  draw papier1;
endfig;
beginfig(2);
  draw cadre;
  draw q2--q3;
  label(btex \bf\large Représentation graphique d'une fonction affine. etex,(1/2[q0,q1] shifted (u*(0,-1))));
  draw papier1;
  label.rt(btex Soit la fonction affine $f\,:\,x\mapsto2x-1$. etex,q2 shifted (0,-0.5u));
endfig;
beginfig(3);
  draw cadre;
  draw q2--q3;
  label(btex \bf\large Représentation graphique d'une fonction affine. etex,(1/2[q0,q1] shifted (u*(0,-1))));
  draw papier1;
  label.rt(btex Soit la fonction affine $f\,:\,x\mapsto2x-1$. etex,q2 shifted (0,-0.5u));
  label.rt(btex La fonction $f$ est une fonction affine donc sa représentation graphique est une droite. etex,q2 shifted (0,-1*u));
endfig;
beginfig(4);
  draw cadre;
  draw q2--q3;
  label(btex \bf\large Représentation graphique d'une fonction affine. etex,(1/2[q0,q1] shifted (u*(0,-1))));
  draw papier1;
  label.rt(btex Soit la fonction affine $f\,:\,x\mapsto2x-1$. etex,q2 shifted (0,-0.5u));
  label.rt(btex La fonction $f$ est une fonction affine donc sa représentation graphique est une droite. etex,q2 shifted (0,-1*u));
  label.rt(btex L'ordonnée à l'origine est $-1$ donc je place le point $B$ de coordonnées $(0,-1)$. etex,q2 shifted(0,-1.5*u));
endfig;
beginfig(5);
  draw cadre;
  draw q2--q3;
  label(btex \bf\large Représentation graphique d'une fonction affine. etex,(1/2[q0,q1] shifted (u*(0,-1))));
  draw papier2;
  label.rt(btex Soit la fonction affine $f\,:\,x\mapsto2x-1$. etex,q2 shifted (0,-0.5u));
  label.rt(btex La fonction $f$ est une fonction affine donc sa représentation graphique est une droite. etex,q2 shifted (0,-1*u));
  label.rt(btex L'ordonnée à l'origine est $-1$ donc je place le point $B$ de coordonnées $(0,-1)$. etex,q2 shifted(0,-1.5*u));
endfig;
beginfig(6);
  draw crayon((11cm,7cm),(11cm,9cm),q5,1.5) withcolor blue;
  draw cadre;
  draw q2--q3;
  label(btex \bf\large Représentation graphique d'une fonction affine. etex,(1/2[q0,q1] shifted (u*(0,-1))));
  draw papier2;
  label.rt(btex Soit la fonction affine $f\,:\,x\mapsto2x-1$. etex,q2 shifted (0,-0.5*u));
  label.rt(btex La fonction $f$ est une fonction affine donc sa représentation graphique est une droite. etex,q2 shifted (0,-1*u));
  label.rt(btex L'ordonnée à l'origine est $-1$ donc je place le point $B$ de coordonnées $(0,-1)$. etex,q2 shifted(0,-1.5*u));
endfig;
beginfig(7);
  draw cadre;
  draw q2--q3;
  label(btex \bf\large Représentation graphique d'une fonction affine. etex,(1/2[q0,q1] shifted (u*(0,-1))));
  draw papier2;
  label.rt(btex Soit la fonction affine $f\,:\,x\mapsto2x-1$. etex,q2 shifted (0,-0.5u));
  label.rt(btex La fonction $f$ est une fonction affine donc sa représentation graphique est une droite. etex,q2 shifted (0,-1*u));
  label.rt(btex L'ordonnée à l'origine est $-1$ donc je place le point $B$ de coordonnées $(0,-1)$. etex,q2 shifted(0,-1.5*u));
  label.rt(btex Il faut un 2\ieme point : je choisis $x=2$. Son image est $f(2)=2\times2-1=4-1=3$. etex,q2 shifted(0,-2*u));
  label.rt(btex Je place le point $A$ de coordonnées $(2,3)$. etex,q2 shifted(0,-2.5*u));
endfig;
beginfig(8);
  draw cadre;
  draw q2--q3;
  label(btex \bf\large Représentation graphique d'une fonction affine. etex,(1/2[q0,q1] shifted (u*(0,-1))));
  draw papier3;
  label.rt(btex Soit la fonction affine $f\,:\,x\mapsto2x-1$. etex,q2 shifted (0,-0.5u));
  label.rt(btex La fonction $f$ est une fonction affine donc sa représentation graphique est une droite. etex,q2 shifted (0,-1*u));
  label.rt(btex L'ordonnée à l'origine est $-1$ donc je place le point $B$ de coordonnées $(0,-1)$. etex,q2 shifted(0,-1.5*u));
  label.rt(btex Il faut un 2\ieme point : je choisis $x=2$. Son image est $f(2)=2\times2-1=4-1=3$. etex,q2 shifted(0,-2*u));
  label.rt(btex Je place le point $A$ de coordonnées $(2,3)$. etex,q2 shifted(0,-2.5*u));
  label(btex \begin{tabular}{|c|c|c|}
    \hline
    $x$&0&2\\
    \hline
    $f(x)$&-1&3\\
    \hline
    \end{tabular}
    etex,q2 shifted((lpage/2)*cm,-3.5*u));
endfig;
beginfig(9);
  draw crayon(q6,q5,q6,1.5) withcolor blue;
  draw cadre;
  draw q2--q3;
  label(btex \bf\large Représentation graphique d'une fonction affine. etex,(1/2[q0,q1] shifted (u*(0,-1))));
  draw papier3;
  label.rt(btex Soit la fonction affine $f\,:\,x\mapsto2x-1$. etex,q2 shifted (0,-0.5u));
  label.rt(btex La fonction $f$ est une fonction affine donc sa représentation graphique est une droite. etex,q2 shifted (0,-1*u));
  label.rt(btex L'ordonnée à l'origine est $-1$ donc je place le point $B$ de coordonnées $(0,-1)$. etex,q2 shifted(0,-1.5*u));
  label.rt(btex Il faut un 2\ieme point : je choisis $x=2$. Son image est $f(2)=2\times2-1=4-1=3$. etex,q2 shifted(0,-2*u));
  label.rt(btex Je place le point $A$ de coordonnées $(2,3)$. etex,q2 shifted(0,-2.5*u));
  label(btex \begin{tabular}{|c|c|c|}
    \hline
    $x$&0&2\\
    \hline
    $f(x)$&-1&3\\
    \hline
    \end{tabular}
    etex,q2 shifted((lpage/2)*cm,-3.5*u));
endfig;
for vue=0 upto vues:
  beginfig(10+vue);
    draw cadre;
    draw q2--q3;
    label(btex \bf\large Représentation graphique d'une fonction affine. etex,(1/2[q0,q1] shifted ((0,-1*u))));
    draw papier3;
    draw combo[vue];
    label.rt(btex Soit la fonction affine $f\,:\,x\mapsto2x-1$. etex,q2 shifted (0,-0.5u));
    label.rt(btex La fonction $f$ est une fonction affine donc sa représentation graphique est une droite. etex,q2 shifted (0,-1*u));
    label.rt(btex L'ordonnée à l'origine est $-1$ donc je place le point $B$ de coordonnées $(0,-1)$. etex,q2 shifted(0,-1.5*u));
    label.rt(btex Il faut un 2\ieme point : je choisis $x=2$. Son image est $f(2)=2\times2-1=4-1=3$. etex,q2 shifted(0,-2*u));
    label.rt(btex Je place le point $A$ de coordonnées $(2,3)$. etex,q2 shifted(0,-2.5*u));
    label(btex \begin{tabular}{|c|c|c|}
    \hline
    $x$&0&2\\
    \hline
    $f(x)$&-1&3\\
    \hline
    \end{tabular}
    etex,q2 shifted((lpage/2)*cm,-3.5*u));
  label.rt(btex Je trace la droite $(AB)$. etex,q2 shifted (0,-4*u));
    if (vue=0) or (vue=1):
      clip currentpicture to cadre;
    fi
  endfig;
endfor
beginfig(10+vues+1);
  draw cadre;
  draw q2--q3;
  label(btex \bf\large Représentation graphique d'une fonction affine. etex,(1/2[q0,q1] shifted ((0,-1*u))));
  draw papier4;
  label.rt(btex Soit la fonction affine $f\,:\,x\mapsto2x-1$. etex,q2 shifted (0,-0.5u));
  label.rt(btex La fonction $f$ est une fonction affine donc sa représentation graphique est une droite. etex,q2 shifted (0,-1*u));
  label.rt(btex L'ordonnée à l'origine est $-1$ donc je place le point $B$ de coordonnées $(0,-1)$. etex,q2 shifted(0,-1.5*u));
  label.rt(btex Il faut un 2\ieme point : je choisis $x=2$. Son image est $f(2)=2\times2-1=4-1=3$. etex,q2 shifted(0,-2*u));
  label.rt(btex Je place le point $A$ de coordonnées $(2,3)$. etex,q2 shifted(0,-2.5*u));
  label(btex \begin{tabular}{|c|c|c|}
    \hline
    $x$&0&2\\
    \hline
    $f(x)$&-1&3\\
    \hline
    \end{tabular}
    etex,q2 shifted((lpage/2)*cm,-3.5*u));
  label.rt(btex Je trace la droite $(AB)$. etex,q2 shifted (0,-4*u));
  path cad;
  cad=(9.5*u,1.5*u)--(16.5*u,1.5*u)--(16.5*u,3.2*u)--(9.5*u,3.2*u)--cycle;
  fill cad withcolor blanc;
  draw cad;
  label.top(btex \bf\large La droite $(AB)$ est etex,(13*u,2.5*u)) withcolor rouge;
  label.top(btex \bf\large la représentation graphique etex,(13*u,2*u)) withcolor rouge;
  label.top(btex \bf\large de la fonction affine $f$. etex,(13*u,1.5*u)) withcolor rouge;
endfig;
beginfig(10+vues+2);
  draw cadre;
  draw q2--q3;
  label(btex \bf\large Représentation graphique d'une fonction affine. etex,(1/2[q0,q1] shifted ((0,-1*u))));
  draw papier4;
  label.rt(btex Soit la fonction affine $f\,:\,x\mapsto2x-1$. etex,q2 shifted (0,-0.5u));
  label.rt(btex La fonction $f$ est une fonction affine donc sa représentation graphique est une droite. etex,q2 shifted (0,-1*u));
  label.rt(btex L'ordonnée à l'origine est $-1$ donc je place le point $B$ de coordonnées $(0,-1)$. etex,q2 shifted(0,-1.5*u));
  label.rt(btex Il faut un 2\ieme point : je choisis $x=2$. Son image est $f(2)=2\times2-1=4-1=3$. etex,q2 shifted(0,-2*u));
  label.rt(btex Je place le point $A$ de coordonnées $(2,3)$. etex,q2 shifted(0,-2.5*u));
  label(btex \begin{tabular}{|c|c|c|}
    \hline
    $x$&0&2\\
    \hline
    $f(x)$&-1&3\\
    \hline
    \end{tabular}
    etex,q2 shifted((lpage/2)*cm,-3.5*u));
  label.rt(btex Je trace la droite $(AB)$. etex,q2 shifted (0,-4*u));
  path cad,cade;
  cad=(9.5*u,1.5*u)--(16.5*u,1.5*u)--(16.5*u,3.2*u)--(9.5*u,3.2*u)--cycle;
  fill cad withcolor blanc;
  draw cad;
  cade=(1.3u,4u)--(6.7u,4u)---(6.7u,5.2u)--(1.3u,5.2u)--cycle;
  fill cade withcolor blanc;
  draw cade;
  draw cadre;
  label.top(btex \bf Ne pas oublier d'indiquer etex,(4u,4.5*u)) withcolor bleu;
  label.top(btex \bf une équation de la droite etex,(4u,4*u)) withcolor bleu;
  drawarrow (5u,4u)--(5.5u,2u);
  label.top(btex \bf\large La droite $(AB)$ est etex,(13*u,2.5*u)) withcolor rouge;
  label.top(btex \bf\large la représentation graphique etex,(13*u,2*u)) withcolor rouge;
  label.top(btex \bf\large de la fonction affine $f$. etex,(13*u,1.5*u)) withcolor rouge;
endfig;
 
end