summaryrefslogtreecommitdiff
path: root/macros/latex/contrib/profcollege/latex/PfCFonctionAffine.tex
diff options
context:
space:
mode:
Diffstat (limited to 'macros/latex/contrib/profcollege/latex/PfCFonctionAffine.tex')
-rw-r--r--macros/latex/contrib/profcollege/latex/PfCFonctionAffine.tex50
1 files changed, 37 insertions, 13 deletions
diff --git a/macros/latex/contrib/profcollege/latex/PfCFonctionAffine.tex b/macros/latex/contrib/profcollege/latex/PfCFonctionAffine.tex
index b9ff48e176..77c683b148 100644
--- a/macros/latex/contrib/profcollege/latex/PfCFonctionAffine.tex
+++ b/macros/latex/contrib/profcollege/latex/PfCFonctionAffine.tex
@@ -1,7 +1,7 @@
%%%
% Fonction Affine
%%%
-\setKVdefault[ClesAffine]{Nom=f,Variable=x,CoefDir=a,OrdoOrig=b,Ligne=false,Image=false,Antecedent=false,Graphique=false,Retrouve=false,ProgCalcul=false,Unitex=1,Unitey=1,VoirCoef=false,ACoef=0,Redaction=false,Ecriture=false,Definition=false}%ACoefficient=false%: inutile ?
+\setKVdefault[ClesAffine]{Nom=f,Variable=x,CoefDir=a,OrdoOrig=b,Ligne=false,Image=false,Antecedent=false,Graphique=false,Retrouve=false,ProgCalcul=false,Unitex=1,Unitey=1,VoirCoef=false,ACoef=0,Redaction=false,Ecriture=false,Definition=false,Centre=false}%ACoefficient=false%: inutile ?
\newcommand\FonctionAffine[5][]{%
% #1 nombre ou abscisse premier point
@@ -33,7 +33,7 @@
\ifboolKV[ClesAffine]{ProgCalcul}{%
La fonction affine $\useKV[ClesAffine]{Nom}$ est d\'efinie par :
\begin{align*}
- \useKV[ClesAffine]{Nom}&:\useKV[ClesAffine]{Variable}\stackrel{\times\xintifboolexpr{#3<0}{(\num{#3})}{\num{#3}}}{\longrightarrow}\num{#3}\useKV[ClesAffine]{Variable}\xintifboolexpr{#4==0}{}{\xintifboolexpr{#4>0}{\stackrel{+\num{#4}}{\longrightarrow}}{\stackrel{\num{#4}}{\longrightarrow}}\num{#3}\useKV[ClesAffine]{Variable}\xintifboolexpr{#4==0}{}{\xintifboolexpr{#4>0}{+\num{#4}}{\num{#4}}}}
+ \useKV[ClesAffine]{Nom}&:\useKV[ClesAffine]{Variable}\stackrel{\times\xintifboolexpr{#3<0}{(\num{#3})}{\num{#3}}}{\longrightarrow}\num{#3}\useKV[ClesAffine]{Variable}\xintifboolexpr{#4==0}{}{\xintifboolexpr{#4>0}{\stackrel{+\num{#4}}{\longrightarrow}}{\stackrel{\num{#4}}{\longrightarrow}}\num{#3}\useKV[ClesAffine]{Variable}\xintifboolexpr{#4==0}{}{\xintifboolexpr{#4>0}{+\num{#4}}{\num{#4}}}}.
\end{align*}
Nous cherchons le nombre $\useKV[ClesAffine]{Variable}$ tel que son image par la fonction $\useKV[ClesAffine]{Nom}$ soit $\num{#2}$. Donc on obtient :
\begin{align*}
@@ -45,7 +45,7 @@
$\useKV[ClesAffine]{Variable}$ tel que
$\useKV[ClesAffine]{Nom}(\useKV[ClesAffine]{Variable})=\num{#2}$. Or,
la fonction $\useKV[ClesAffine]{Nom}$ est d\'efinie par : \[%
- \useKV[ClesAffine]{Nom}(\useKV[ClesAffine]{Variable})=\xintifboolexpr{#3==0}{}{\num{#3}\useKV[ClesAffine]{Variable}}\xintifboolexpr{#3==0}{\num{#4}}{\xintifboolexpr{#4==0}{}{\xintifboolexpr{#4>0}{+\num{#4}}{-\num{\fpeval{0-#4}}}}}
+ \useKV[ClesAffine]{Nom}(\useKV[ClesAffine]{Variable})=\xintifboolexpr{#3==0}{}{\num{#3}\useKV[ClesAffine]{Variable}}\xintifboolexpr{#3==0}{\num{#4}}{\xintifboolexpr{#4==0}{}{\xintifboolexpr{#4>0}{+\num{#4}}{-\num{\fpeval{0-#4}}}}}.
\]
Par cons\'equent, on a :
\begin{align*}
@@ -90,9 +90,22 @@
\ifboolKV[ClesAffine]{Redaction}{%
\xintifboolexpr{#2==0}{Comme la fonction $\useKV[ClesAffine]{Nom}$
est une fonction constante, alors sa repr\'esentation graphique est une droite parall\`ele \`a l'axe des abscisses passant par le point de coordonn\'ees $(0;\num{#3})$.}%
- {\xintifboolexpr{#3==0}{Comme la fonction $\useKV[ClesAffine]{Nom}$ est une fonction lin\'eaire, alors sa repr\'esentation graphique est une droite passant par l'origine du rep\`ere.\\Je choisis $\useKV[ClesAffine]{Variable}=\num{#4}$. Son image est \xdef\NomFonctionA{\useKV[ClesAffine]{Nom}}\FonctionAffine[Nom=\NomFonctionA,Image,Ligne]{#4}{#2}{#3}{#5}. On place le point de coordonn\'ees $(\num{#4};\num{\fpeval{#2*#4+#3}})$.
+ {\xintifboolexpr{#3==0}{Comme la fonction $\useKV[ClesAffine]{Nom}$ est une fonction lin\'eaire, alors sa repr\'esentation graphique est une droite passant par l'origine du rep\`ere.\\Je choisis $\useKV[ClesAffine]{Variable}=\num{#4}$. Son image est \xdef\NomFonctionA{\useKV[ClesAffine]{Nom}}\FonctionAffine[Nom=\NomFonctionA,Image,Ligne]{#4}{#2}{#3}{#5}. On place le point de coordonn\'ees $(\num{#4}\,;\,\num{\fpeval{#2*#4+#3}})$.
}{%
- Comme $\useKV[ClesAffine]{Nom}$ est une fonction affine, alors sa repr\'esentation graphique est une droite.\\Je choisis $\useKV[ClesAffine]{Variable}=\num{#4}$. Son image est \xdef\NomVariable{\useKV[ClesAffine]{Variable}}\xdef\NomFonction{\useKV[ClesAffine]{Nom}}\FonctionAffine[Nom=\NomFonction,Image,Ligne]{#4}{#2}{#3}{#5}. On place le point de coordonn\'ees $(\num{#4};\num{\fpeval{#2*#4+#3}})$.\\Je choisis \setKV[ClesAffine]{Variable=\NomVariable}$\useKV[ClesAffine]{Variable}=\num{#5}$. Son image est \FonctionAffine[Nom=\NomFonction,Image,Ligne]{#5}{#2}{#3}{#4}. On place le point de coordonn\'ees $(\num{#5};\num{\fpeval{#2*#5+#3}})$.%
+ Comme $\useKV[ClesAffine]{Nom}$ est une fonction affine, alors sa repr\'esentation graphique est une droite.\\Je choisis $\useKV[ClesAffine]{Variable}=\num{#4}$. Son image est %
+ \xdef\NomVariable{\useKV[ClesAffine]{Variable}}\xdef\NomFonction{\useKV[ClesAffine]{Nom}}%
+ \ifboolKV[ClesAffine]{Centre}{: \[
+ \FonctionAffine[Nom=\NomFonction,Image,Ligne]{#4}{#2}{#3}{#5}.
+ \]}{%
+ \FonctionAffine[Nom=\NomFonction,Image,Ligne]{#4}{#2}{#3}{#5}. %
+ }%
+ On place le point de coordonn\'ees $(\num{#4}\,;\,\num{\fpeval{#2*#4+#3}})$.\\Je choisis \setKV[ClesAffine]{Variable=\NomVariable}$\useKV[ClesAffine]{Variable}=\num{#5}$. Son image est %
+ \ifboolKV[ClesAffine]{Centre}{: \[
+ \FonctionAffine[Nom=\NomFonction,Image,Ligne]{#5}{#2}{#3}{#5}.
+ \]}{%
+ \FonctionAffine[Nom=\NomFonction,Image,Ligne]{#5}{#2}{#3}{#5}. %
+ }%
+ On place le point de coordonn\'ees $(\num{#5}\,;\,\num{\fpeval{#2*#5+#3}})$.%
}%
}%
}%
@@ -103,9 +116,10 @@
\def\MPFonctionAffine#1#2#3#4#5#6#7{%
% #1 Unitex #2 Unitey
- % #2 a pour f1 - #4 b pour f1
- % #5 abscisse du premier point
- % #6 abscisse du deuxi\`eme point
+ % #3 a pour f1 - #4 b pour f1
+ % #5 abscisse du premier point
+ % #6 abscisse du deuxi\`eme point
+ % #7 on affiche ou pas la lecture du coef directeur
\ifluatex
\mplibforcehmode
\begin{mplibcode}
@@ -155,14 +169,14 @@
%On trace les axes
drawarrow (XMin*unitex,0)--(XMax*unitex,0);
drawarrow (0,YMin*unitey)--(0,YMax*unitey);
- label.llft(btex O etex,(0,0));
- dotlabel.bot(btex 1 etex,(unitex,0));
- dotlabel.lft(btex 1 etex,(0,unitey));
+ label.llft(TEX("\footnotesize O"),(0,0));
+ dotlabel.lrt(TEX("1"),(unitex,0));
+ dotlabel.ulft(TEX("1"),(0,unitey));
% On trace la droite
pair A[];
A1=(#5*unitex,(#5*#3+(#4))*unitey);
A2=(#6*unitex,(#6*#3+(#4))*unitey);
- draw 2[A1,A2]--2[A2,A1];
+ draw 10[A1,A2]--10[A2,A1];
clip currentpicture to ((XMin*unitex,YMin*unitey)--(XMax*unitex,YMin*unitey)--(XMax*unitex,YMax*unitey)--(XMin*unitex,YMax*unitey)--cycle);
%On labellise les points
fill (fullcircle scaled 1mm) shifted A1;
@@ -171,20 +185,26 @@
draw (xpart(A2),0)--A2--(0,ypart(A2)) dashed evenly;
if (#5*#3+(#4))=0:
else:
+ if #5<>1:
if (#5*#3+(#4))<0:
label.top(TEX("\num{"&decimal(#5)&"}"),(xpart(A1),0));
else:
label.bot(TEX("\num{"&decimal(#5)&"}"),(xpart(A1),0));
fi;
fi;
+ fi;
if (#6*#3+(#4))=0:
else:
if (#6*#3+(#4))<0:
+ if #6<>1:
label.top(TEX("\num{"&decimal(#6)&"}"),(xpart(A2),0));
+ fi;
else:
+ if #6<>1:
label.bot(TEX("\num{"&decimal(#6)&"}"),(xpart(A2),0));
fi;
fi;
+ fi;
if #3=0:
label.urt(TEX("\num{"&decimal(#5*#3+(#4))&"}"),(0,ypart(A1)));
else:
@@ -192,19 +212,23 @@
if (#5*#3+(#4))=0:
else:
if (#5*#3+(#4))<0:
+ if #5<0:
label.rt(TEX("\num{"&decimal(#5*#3+(#4))&"}"),(0,ypart(A1)));
else:
label.lft(TEX("\num{"&decimal(#5*#3+(#4))&"}"),(0,ypart(A1)));
fi;
fi;
+ fi;
if (#6*#3+(#4))=0:
else:
if (#6*#3+(#4))<0:
+ if #6<0:
label.rt(TEX("\num{"&decimal(#6*#3+(#4))&"}"),(0,ypart(A2)));
else:
label.lft(TEX("\num{"&decimal(#6*#3+(#4))&"}"),(0,ypart(A2)));
fi;
fi;
+ fi;
else:
if (#5*#3+(#4))=0:
else:
@@ -287,7 +311,7 @@
pair A[];
A1=(#5*unitex,(#5*#3+(#4))*unitey);
A2=(#6*unitex,(#6*#3+(#4))*unitey);
- draw 2[A1,A2]--2[A2,A1];
+ draw 10[A1,A2]--10[A2,A1];
clip currentpicture to ((XMin*unitex,YMin*unitey)--(XMax*unitex,YMin*unitey)--(XMax*unitex,YMax*unitey)--(XMin*unitex,YMax*unitey)--cycle);
%On labellise les points
fill (fullcircle scaled 1mm) shifted A1;