summaryrefslogtreecommitdiff
path: root/macros/latex/contrib/profcollege/latex/PfCTrigonometrie.tex
diff options
context:
space:
mode:
Diffstat (limited to 'macros/latex/contrib/profcollege/latex/PfCTrigonometrie.tex')
-rw-r--r--macros/latex/contrib/profcollege/latex/PfCTrigonometrie.tex663
1 files changed, 663 insertions, 0 deletions
diff --git a/macros/latex/contrib/profcollege/latex/PfCTrigonometrie.tex b/macros/latex/contrib/profcollege/latex/PfCTrigonometrie.tex
new file mode 100644
index 0000000000..701637141e
--- /dev/null
+++ b/macros/latex/contrib/profcollege/latex/PfCTrigonometrie.tex
@@ -0,0 +1,663 @@
+%%%
+% Trigonom\'etrie
+%%%
+\def\MPFigTrigo#1#2#3#4#5#6#7#8{%
+ \ifluatex
+ \mplibcodeinherit{enable}
+ \mplibforcehmode
+ \begin{mplibcode}
+ u:=\useKV[ClesTrigo]{Echelle};
+ pair A,B,C,O,I,D,E,F;%
+ % On place les points A,B,C sur le cercle de mani\`ere \`a faciliter la rotation de la figure
+ A=u*(1,1);
+ B-A=u*(3,0);
+ C=(A--2[A,B rotatedabout(A,50)]) intersectionpoint (B--2[B,A rotatedabout(B,-90)]);
+ % On d\'efinit le centre du cercle circonscrit
+ O - .5[A,B] = whatever * (B-A) rotated 90;
+ O - .5[B,C] = whatever * (C-B) rotated 90;
+ % On tourne pour \'eventuellement moins de lassitude :)
+ A:=A rotatedabout(O,#8);
+ B:=B rotatedabout(O,#8);
+ C:=C rotatedabout(O,#8);
+ % On d\'efinit le centre du cercle inscrit
+ (I-C) rotated ((angle(A-C)-angle(B-C))/2) shifted C=whatever[A,C];
+ (I-B) rotated ((angle(C-B)-angle(A-B))/2) shifted B=whatever[B,C];
+ % on dessine \`a main lev\'ee :)
+ path triangle;
+ triangle=A{dir(angle(B-A)+5)}..B{dir(angle(B-A)+5)}--B{dir(angle(C-B)+5)}..C{dir(angle(C-B)+5)}--C{dir(angle(A-C)+5)}..A{dir(angle(A-C)+5)}--cycle;
+ % on d\'efinit l'angle droit
+ D-B=7*unitvector(C-B);
+ F-B=7*unitvector(A-B);
+ E-D=F-B;
+ draw D{dir(angle(E-D)+5)}..E{dir(angle(E-D)+5)}--E{dir(angle(F-E)+5)}..F{dir(angle(F-E)+5)};
+ % L'angle :)
+ path cc;
+ cc=fullcircle scaled 1u;
+ % on marque les angles
+ picture MAngle;
+ MAngle=image(
+ draw (cc shifted A);
+ );
+ draw MAngle;
+ clip currentpicture to triangle;
+ draw A{dir(angle(B-A)+5)}..B{dir(angle(B-A)+5)};
+ draw B{dir(angle(C-B)+5)}..C{dir(angle(C-B)+5)};
+ draw C{dir(angle(A-C)+5)}..A{dir(angle(A-C)+5)};
+ % on labelise
+ picture z;
+ label(btex #1 etex,1.15[O,A]);
+ label(btex #2 etex,1.15[O,B]);
+ label(btex #3 etex,1.15[O,C]);
+ label(btex \ang{#7} etex,A+0.95u*unitvector(I-A));
+ decalage:=3mm;
+ if #6<0:
+ else:
+ if angle(1/2[A,C]-B)>0:
+ if #6=0:
+ label(btex ? etex,1.1[B,1/2[A,C]]);
+ else:
+ label(btex \num{#6} etex,1.2[B,1/2[A,C]]);
+ fi;
+ else:
+ if #6=0:
+ label(btex ? etex,1.1[B,1/2[A,C]]);
+ else:
+ label(btex \num{#6} etex,1.2[B,1/2[A,C]]);
+ fi;
+ fi;
+ fi;
+ if #4<0:
+ else:
+ if angle(1/2[B,C]-A)>0:
+ if #4=0:
+ label(btex ? etex,1/2[B,C]-decalage*(unitvector(A-B)));
+ else:
+ label(btex \num{#4} etex,1/2[B,C]-decalage*(unitvector(A-B)));
+ fi;
+ else:
+ if #4=0:
+ label(btex ? etex,1/2[B,C]-decalage*(unitvector(A-B)));
+ else:
+ label(btex \num{#4} etex,1/2[B,C]-decalage*(unitvector(A-B)));
+ fi;
+ fi;
+ fi;
+ if #5<0:
+ else:
+ if angle(1/2[A,B]-C)>0:
+ if #5=0:
+ label(btex ? etex,1/2[A,B]-decalage*(unitvector(C-B)));
+ else:
+ label(btex \num{#5} etex,1/2[A,B]-decalage*(unitvector(C-B)));
+ fi;
+ else:
+ if #5=0:
+ label(btex ? etex,1/2[A,B]-decalage*(unitvector(C-B)));
+ else:
+ label(btex \num{#5} etex,1/2[A,B]-decalage*(unitvector(C-B)));
+ fi;
+ fi;
+ fi;
+ \end{mplibcode}
+ \mplibcodeinherit{disable}
+ \else
+ \begin{mpost}[mpsettings={u:=\useKV[ClesTrigo]{Echelle};}]
+ pair A,B,C,O,I,D,E,F;%
+ % On place les points A,B,C sur le cercle de mani\`ere \`a faciliter la rotation de la figure
+ A=u*(1,1);
+ B-A=u*(3,0);
+ C=(A--2[A,B rotatedabout(A,50)]) intersectionpoint (B--2[B,A rotatedabout(B,-90)]);
+ % On d\'efinit le centre du cercle circonscrit
+ O - .5[A,B] = whatever * (B-A) rotated 90;
+ O - .5[B,C] = whatever * (C-B) rotated 90;
+ % On tourne pour \'eventuellement moins de lassitude :)
+ A:=A rotatedabout(O,#8);
+ B:=B rotatedabout(O,#8);
+ C:=C rotatedabout(O,#8);
+ % On d\'efinit le centre du cercle inscrit
+ (I-C) rotated ((angle(A-C)-angle(B-C))/2) shifted C=whatever[A,C];
+ (I-B) rotated ((angle(C-B)-angle(A-B))/2) shifted B=whatever[B,C];
+ % on dessine \`a main lev\'ee :)
+ path triangle;
+ triangle=A{dir(angle(B-A)+5)}..B{dir(angle(B-A)+5)}--B{dir(angle(C-B)+5)}..C{dir(angle(C-B)+5)}--C{dir(angle(A-C)+5)}..A{dir(angle(A-C)+5)}--cycle;
+ % on d\'efinit l'angle droit
+ D-B=7*unitvector(C-B);
+ F-B=7*unitvector(A-B);
+ E-D=F-B;
+ draw D{dir(angle(E-D)+5)}..E{dir(angle(E-D)+5)}--E{dir(angle(F-E)+5)}..F{dir(angle(F-E)+5)};
+ % L'angle :)
+ path cc;
+ cc=fullcircle scaled 1u;
+ % on marque les angles
+ picture MAngle;
+ MAngle=image(
+ draw (cc shifted A);
+ % draw (cc shifted B);
+ % draw (cc shifted C);
+ );
+ draw MAngle;
+ clip currentpicture to triangle;
+ draw A{dir(angle(B-A)+5)}..B{dir(angle(B-A)+5)};
+ draw B{dir(angle(C-B)+5)}..C{dir(angle(C-B)+5)};
+ draw C{dir(angle(A-C)+5)}..A{dir(angle(A-C)+5)};
+ % on labelise
+ picture z;
+ label(btex #1 etex,1.15[O,A]);
+ label(btex #2 etex,1.15[O,B]);
+ label(btex #3 etex,1.15[O,C]);
+ label(btex \ang{#7} etex,A+0.95u*unitvector(I-A));
+ decalage:=3mm;
+ if #6<0:
+ else:
+ if angle(1/2[A,C]-B)>0:
+ if #6=0:
+ label(btex ? etex rotated angle(C-A),1.1[B,1/2[A,C]]);
+ else:
+ label(btex \num{#6} etex rotated angle(C-A),1.2[B,1/2[A,C]]);
+ fi;
+ else:
+ if #6=0:
+ label(btex ? etex rotated angle(A-C),1.1[B,1/2[A,C]]);
+ else:
+ label(btex \num{#6} etex rotated angle(A-C),1.2[B,1/2[A,C]]);
+ fi;
+ fi;
+ fi;
+ if #4<0:
+ else:
+ if angle(1/2[B,C]-A)>0:
+ if #4=0:
+ label(btex ? etex rotated(angle(B-C)),1/2[B,C]-decalage*(unitvector(A-B)));
+ else:
+ label(btex \num{#4} etex rotated(angle(B-C)),1/2[B,C]-decalage*(unitvector(A-B)));
+ fi;
+ else:
+ if #4=0:
+ label(btex ? etex rotated(angle(C-B)),1/2[B,C]-decalage*(unitvector(A-B)));
+ else:
+ label(btex \num{#4} etex rotated(angle(C-B)),1/2[B,C]-decalage*(unitvector(A-B)));
+ fi;
+ fi;
+ fi;
+ if #5<0:
+ else:
+ if angle(1/2[A,B]-C)>0:
+ if #5=0:
+ label(btex ? etex rotated angle(A-B),1/2[A,B]-decalage*(unitvector(C-B)));
+ else:
+ label(btex \num{#5} etex rotated angle(A-B),1/2[A,B]-decalage*(unitvector(C-B)));
+ fi;
+ else:
+ if #5=0:
+ label(btex ? etex rotated angle(B-A),1/2[A,B]-decalage*(unitvector(C-B)));
+ else:
+ label(btex \num{#5} etex rotated angle(B-A),1/2[A,B]-decalage*(unitvector(C-B)));
+ fi;
+ fi;
+ fi;
+\end{mpost}
+\fi
+}
+
+\def\MPFigTrigoAngle#1#2#3#4#5#6#7{%
+ % #1 A
+ % #2 B
+ % #3 C
+ % #4 opp
+ % #5 adj
+ % #6 hyp
+ % #7 angle de rotation
+ \ifluatex
+ \mplibcodeinherit{enable}
+ \mplibforcehmode
+ \begin{mplibcode}
+ u:=\useKV[ClesTrigo]{Echelle};
+ pair A,B,C,O,I,D,E,F;%
+ % On place les points A,B,C sur le cercle de mani\`ere \`a faciliter la rotation de la figure
+ A=u*(1,1);
+ B-A=u*(3,0);
+ C=(A--2[A,B rotatedabout(A,50)]) intersectionpoint (B--2[B,A rotatedabout(B,-90)]);
+ % On d\'efinit le centre du cercle circonscrit
+ O - .5[A,B] = whatever * (B-A) rotated 90;
+ O - .5[B,C] = whatever * (C-B) rotated 90;
+ % On tourne pour \'eventuellement moins de lassitude :)
+ A:=A rotatedabout(O,#7);
+ B:=B rotatedabout(O,#7);
+ C:=C rotatedabout(O,#7);
+ % On d\'efinit le centre du cercle inscrit
+ (I-C) rotated ((angle(A-C)-angle(B-C))/2) shifted C=whatever[A,C];
+ (I-B) rotated ((angle(C-B)-angle(A-B))/2) shifted B=whatever[B,C];
+ %on dessine \`a main lev\'ee :)
+ path triangle;
+ triangle=A{dir(angle(B-A)+5)}..B{dir(angle(B-A)+5)}--B{dir(angle(C-B)+5)}..C{dir(angle(C-B)+5)}--C{dir(angle(A-C)+5)}..A{dir(angle(A-C)+5)}--cycle;
+ %on d\'efinit l'angle droit
+ D-B=7*unitvector(C-B);
+ F-B=7*unitvector(A-B);
+ E-D=F-B;
+ draw D{dir(angle(E-D)+5)}..E{dir(angle(E-D)+5)}--E{dir(angle(F-E)+5)}..F{dir(angle(F-E)+5)};
+ %L'angle :)
+ path cc;
+ cc=fullcircle scaled 1u;
+ % on marque les angles
+ picture MAngle;
+ MAngle=image(
+ draw (cc shifted A);
+ );
+ draw MAngle;
+ clip currentpicture to triangle;
+ draw A{dir(angle(B-A)+5)}..B{dir(angle(B-A)+5)};
+ draw B{dir(angle(C-B)+5)}..C{dir(angle(C-B)+5)};
+ draw C{dir(angle(A-C)+5)}..A{dir(angle(A-C)+5)};
+ % on labelise
+ label(btex #1 etex,1.15[O,A]);
+ label(btex #2 etex,1.15[O,B]);
+ label(btex #3 etex,1.15[O,C]);
+ label(btex ? etex,A+0.95u*unitvector(I-A));
+ decalage:=3mm;
+ if #6>0:
+ if angle(1/2[A,C]-B)>0:
+ label(btex \num{#6} etex,1.2[B,1/2[A,C]]);
+ else:
+ label(btex \num{#6} etex,1.2[B,1/2[A,C]]);
+ fi;
+ fi;
+ if #4>0:
+ if angle(1/2[B,C]-A)>0:
+ label(btex \num{#4} etex,1/2[B,C]-decalage*(unitvector(A-B)));
+ else:
+ label(btex \num{#4} etex,1/2[B,C]-decalage*(unitvector(A-B)));
+ fi;
+ fi;
+ if #5>0:
+ if angle(1/2[A,B]-C)>0:
+ label(btex \num{#5} etex,1/2[A,B]-decalage*(unitvector(C-B)));
+ else:
+ label(btex \num{#5} etex,1/2[A,B]-decalage*(unitvector(C-B)));
+ fi;
+ fi;
+\end{mplibcode}
+\mplibcodeinherit{disable}
+ \else
+ \begin{mpost}[mpsettings={u:=\useKV[ClesTrigo]{Echelle};}]
+ u:=1cm;
+ pair A,B,C,O,I,D,E,F;%
+ %On place les points A,B,C sur le cercle de mani\`ere \`a faciliter la rotation de la figure
+ A=u*(1,1);
+ B-A=u*(3,0);
+ C=(A--2[A,B rotatedabout(A,50)]) intersectionpoint (B--2[B,A rotatedabout(B,-90)]);
+ % On d\'efinit le centre du cercle circonscrit
+ O - .5[A,B] = whatever * (B-A) rotated 90;
+ O - .5[B,C] = whatever * (C-B) rotated 90;
+ % On tourne pour \'eventuellement moins de lassitude :)
+ A:=A rotatedabout(O,#7);
+ B:=B rotatedabout(O,#7);
+ C:=C rotatedabout(O,#7);
+ % On d\'efinit le centre du cercle inscrit
+ (I-C) rotated ((angle(A-C)-angle(B-C))/2) shifted C=whatever[A,C];
+ (I-B) rotated ((angle(C-B)-angle(A-B))/2) shifted B=whatever[B,C];
+ %on dessine \`a main lev\'ee :)
+ path triangle;
+ triangle=A{dir(angle(B-A)+5)}..B{dir(angle(B-A)+5)}--B{dir(angle(C-B)+5)}..C{dir(angle(C-B)+5)}--C{dir(angle(A-C)+5)}..A{dir(angle(A-C)+5)}--cycle;
+ %on d\'efinit l'angle droit
+ D-B=7*unitvector(C-B);
+ F-B=7*unitvector(A-B);
+ E-D=F-B;
+ draw D{dir(angle(E-D)+5)}..E{dir(angle(E-D)+5)}--E{dir(angle(F-E)+5)}..F{dir(angle(F-E)+5)};
+ %L'angle :)
+ path cc;
+ cc=fullcircle scaled 1u;
+ % on marque les angles
+ picture MAngle;
+ MAngle=image(
+ draw (cc shifted A);
+ );
+ draw MAngle;
+ clip currentpicture to triangle;
+ draw A{dir(angle(B-A)+5)}..B{dir(angle(B-A)+5)};
+ draw B{dir(angle(C-B)+5)}..C{dir(angle(C-B)+5)};
+ draw C{dir(angle(A-C)+5)}..A{dir(angle(A-C)+5)};
+ %on labelise
+ label(btex #1 etex,1.15[O,A]);
+ label(btex #2 etex,1.15[O,B]);
+ label(btex #3 etex,1.15[O,C]);
+ label(btex ? etex,A+0.95u*unitvector(I-A));
+ decalage:=3mm;
+ if #6>0:
+ if angle(1/2[A,C]-B)>0:
+ label(btex \num{#6} etex,1.2[B,1/2[A,C]]);
+ else:
+ label(btex \num{#6} etex,1.2[B,1/2[A,C]]);
+ fi;
+ fi;
+ if #4>0:
+ if angle(1/2[B,C]-A)>0:
+ label(btex \num{#4} etex,1/2[B,C]-decalage*(unitvector(A-B)));
+ else:
+ label(btex \num{#4} etex,1/2[B,C]-decalage*(unitvector(A-B)));
+ fi;
+ fi;
+ if #5>0:
+ if angle(1/2[A,B]-C)>0:
+ label(btex \num{#5} etex,1/2[A,B]-decalage*(unitvector(C-B)));
+ else:
+ label(btex \num{#5} etex,1/2[A,B]-decalage*(unitvector(C-B)));
+ fi;
+ fi;
+\end{mpost}
+\fi
+}
+
+\setKVdefault[ClesTrigo]{Angle=0,Propor=false,Figure=false,FigureSeule=false,ValeurExacte=false,Precision=2,Unite=cm,Sinus=false,Cosinus=false,Tangente=false,Perso=false,Echelle=1cm}%
+
+\newcommand\RedactionTrigo{}%
+
+\newcommand\TrigoCalculs[5][]{%
+ \setKV[ClesTrigo]{#1}%
+ % #1 Cl\'es
+ % #2 Nom du triangle ABC, rectangle en B, angle connu ou pas : BAC
+ % #3 Longueur #4 Longueur #5 angle
+ % On d\'efinit les points
+ \DeclareSIUnit{\PfCTrigoUnit}{\useKV[ClesTrigo]{Unite}}%
+ \StrMid{#2}{1}{1}[\NomA]%
+ \StrMid{#2}{2}{2}[\NomB]%
+ \StrMid{#2}{3}{3}[\NomC]%
+ \xdef\NomTriangle{\NomA\NomB\NomC}%
+ \xdef\NomAngleDroit{\NomB}%
+ \xdef\NomSommetA{\NomA}%
+ \xdef\NomSommetB{\NomB}%
+ \xdef\NomSommetC{\NomC}%
+ \ifboolKV[ClesTrigo]{Perso}{%
+ \RedactionTrigo%
+ }{%
+ Dans le triangle $\NomA\NomB\NomC$, rectangle en $\NomB$, on a :%
+ }%
+ \ifboolKV[ClesTrigo]{Cosinus}{%
+ \ifx\bla#3\bla%on calcule le c\^ot\'e adjacent
+ \xdef\ResultatTrigo{\fpeval{round(#4*cosd(#5),\useKV[ClesTrigo]{Precision})}}%
+ \ifboolKV[ClesTrigo]{Propor}{%
+ \begin{align*}
+ \NomA\NomC\times\cos(\widehat{\NomB\NomA\NomC})&=\NomA\NomB\\
+ \num{#4}\times\cos(\ang{#5})&=\NomA\NomB%\\
+ \ifboolKV[ClesTrigo]{ValeurExacte}{}{\\
+ \SI{\fpeval{round(#4*cosd(#5),\useKV[ClesTrigo]{Precision})}}{\PfCTrigoUnit}&\IfInteger{\fpeval{round(#4*cosd(#5),9)}}{=}{\approx}\NomA\NomB}
+ \end{align*}%
+ }{%
+ \begin{align*}
+ \cos(\widehat{\NomB\NomA\NomC})&=\frac{\NomA\NomB}{\NomA\NomC}\\
+ \cos(\ang{#5})&=\frac{\NomA\NomB}{\num{#4}}\\
+ \num{#4}\times\cos(\ang{#5})&=\NomA\NomB%\\
+ \ifboolKV[ClesTrigo]{ValeurExacte}{}{\\%
+ \SI{\fpeval{round(#4*cosd(#5),\useKV[ClesTrigo]{Precision})}}{\PfCTrigoUnit}&\IfInteger{\fpeval{round(#4*cosd(#5),9)}}{=}{\approx}\NomA\NomB}%
+ \end{align*}
+ }%
+ \else%
+ \ifx\bla#4\bla%on calcule l'hypoth\'enuse
+ \xdef\ResultatTrigo{\fpeval{round(#3/cosd(#5),\useKV[ClesTrigo]{Precision})}}%
+ \ifboolKV[ClesTrigo]{Propor}{%
+ \begin{align*}
+ \NomA\NomC\times\cos(\widehat{\NomB\NomA\NomC})&=\NomA\NomB\\
+ \NomA\NomC\times\cos(\ang{#5})&=\num{#3}\\
+ \NomA\NomC&=\frac{\num{#3}}{\cos(\ang{#5})}%\\
+ \ifboolKV[ClesTrigo]{ValeurExacte}{}{\\%
+ \NomA\NomC&\IfInteger{\fpeval{round(#3/cosd(#5),9)}}{=}{\approx}\SI{\fpeval{round(#3/cosd(#5),\useKV[ClesTrigo]{Precision})}}{\PfCTrigoUnit}}%
+ \end{align*}
+ }{%
+ \begin{align*}
+ \cos(\widehat{\NomB\NomA\NomC})&=\frac{\NomA\NomB}{\NomA\NomC}\\
+ \cos(\ang{#5})&=\frac{\num{#3}}{\NomA\NomC}\\
+ \NomA\NomC&=\frac{\num{#3}}{\cos(\ang{#5})}%\\
+ \ifboolKV[ClesTrigo]{ValeurExacte}{}{\\%
+ \NomA\NomC&\IfInteger{\fpeval{round(#3/cosd(#5),9)}}{=}{\approx}\SI{\fpeval{round(#3/cosd(#5),\useKV[ClesTrigo]{Precision})}}{\PfCTrigoUnit}}%
+ \end{align*}%
+ }%
+ \else%on calcule l'angle
+ \xdef\ResultatTrigo{\fpeval{round(acosd(#3/#4),\useKV[ClesTrigo]{Precision})}}%
+ \setKV[ClesTrigo]{Precision=0}%
+ \setKV[ClesTrigo]{#1}%
+ \ifboolKV[ClesTrigo]{Propor}{%
+ \begin{align*}
+ \NomA\NomC\times\cos(\widehat{\NomB\NomA\NomC})&=\NomA\NomB\\
+ \num{#4}\times\cos(\widehat{\NomB\NomA\NomC})&=\num{#3}\\
+ \cos(\widehat{\NomB\NomA\NomC})&=\frac{\num{#3}}{\num{#4}}\\
+ \widehat{\NomB\NomA\NomC}&\IfInteger{\fpeval{round(acosd(#3/#4),9)}}{=}{\approx}\ang{\fpeval{round(acosd(#3/#4),\useKV[ClesTrigo]{Precision})}}%
+ \end{align*}%
+ }{%
+ \begin{align*}
+ \cos(\widehat{\NomB\NomA\NomC})&=\frac{\NomA\NomB}{\NomA\NomC}\\
+ \cos(\widehat{\NomB\NomA\NomC})&=\frac{\num{#3}}{\num{#4}}\\
+ \widehat{\NomB\NomA\NomC}&\IfInteger{\fpeval{round(acosd(#3/#4),9)}}{=}{\approx}\ang{\fpeval{round(acosd(#3/#4),\useKV[ClesTrigo]{Precision})}}%
+ \end{align*}%
+ }%
+ \fi%
+ \fi%
+ }{}%
+ \ifboolKV[ClesTrigo]{Sinus}{%
+ \ifx\bla#3\bla%on calcule le c\^ot\'e oppos\'e
+ \xdef\ResultatTrigo{\fpeval{round(#4*sind(#5),\useKV[ClesTrigo]{Precision})}}%
+ \ifboolKV[ClesTrigo]{Propor}{%
+ \begin{align*}
+ \NomA\NomC\times\sin(\widehat{\NomB\NomA\NomC})&=\NomB\NomC\\
+ \num{#4}\times\sin(\ang{#5})&=\NomB\NomC%\\
+ \ifboolKV[ClesTrigo]{ValeurExacte}{}{\\%
+ \SI{\fpeval{round(#4*sind(#5),\useKV[ClesTrigo]{Precision})}}{\PfCTrigoUnit}&\IfInteger{\fpeval{round(#4*sind(#5),9)}}{=}{\approx}\NomB\NomC}%
+ \end{align*}%
+ }{%
+ \begin{align*}
+ \sin(\widehat{\NomB\NomA\NomC})&=\frac{\NomB\NomC}{\NomA\NomC}\\
+ \sin(\ang{#5})&=\frac{\NomB\NomC}{\num{#4}}\\
+ \num{#4}\times\sin(\ang{#5})&=\NomB\NomC%\\
+ \ifboolKV[ClesTrigo]{ValeurExacte}{}{\\%
+ \SI{\fpeval{round(#4*sind(#5),\useKV[ClesTrigo]{Precision})}}{\PfCTrigoUnit}&\IfInteger{\fpeval{round(#4*sind(#5),9)}}{=}{\approx}\NomB\NomC}%
+ \end{align*}%
+ }%
+ \else
+ \ifx\bla#4\bla%on calcule l'hypoth\'enuse
+ \xdef\ResultatTrigo{\fpeval{round(#3/sind(#5),\useKV[ClesTrigo]{Precision})}}%
+ \ifboolKV[ClesTrigo]{Propor}{%
+ \begin{align*}
+ \NomA\NomC\times\sin(\widehat{\NomB\NomA\NomC})&=\NomB\NomC\\
+ \NomA\NomC\times\sin(\ang{#5})&=\num{#3}\\
+ \NomA\NomC&=\frac{\num{#3}}{\sin(\ang{#5})}%\\
+ \ifboolKV[ClesTrigo]{ValeurExacte}{}{\\%
+ \NomA\NomC&\IfInteger{\fpeval{round(#3/sind(#5),9)}}{=}{\approx}\SI{\fpeval{round(#3/sind(#5),\useKV[ClesTrigo]{Precision})}}{\PfCTrigoUnit}}%
+ \end{align*}%
+ }{%
+ \begin{align*}
+ \sin(\widehat{\NomB\NomA\NomC})&=\frac{\NomB\NomC}{\NomA\NomC}\\
+ \sin(\ang{#5})&=\frac{\num{#3}}{\NomA\NomC}\\
+ \NomA\NomC&=\frac{\num{#3}}{\sin(\ang{#5})}%\\
+ \ifboolKV[ClesTrigo]{ValeurExacte}{}{\\%
+ \NomA\NomC&\IfInteger{\fpeval{round(#3/sind(#5),9)}}{=}{\approx}\SI{\fpeval{round(#3/sind(#5),\useKV[ClesTrigo]{Precision})}}{\PfCTrigoUnit}}%
+ \end{align*}%
+ }%
+ \else%on calcule l'angle
+ \xdef\ResultatTrigo{\fpeval{round(asind(#3/#4),\useKV[ClesTrigo]{Precision})}}%
+ \setKV[ClesTrigo]{Precision=0}%
+ \setKV[ClesTrigo]{#1}%
+ \ifboolKV[ClesTrigo]{Propor}{%
+ \begin{align*}
+ \NomA\NomC\times\sin(\widehat{\NomB\NomA\NomC})&=\NomB\NomC\\
+ \num{#4}\times\sin(\widehat{\NomB\NomA\NomC})&=\num{#3}\\
+ \sin(\widehat{\NomB\NomA\NomC})&=\frac{\num{#3}}{\num{#4}}\\
+ \widehat{\NomB\NomA\NomC}&\IfInteger{\fpeval{round(asind(#3/#4),9)}}{=}{\approx}\ang{\fpeval{round(asind(#3/#4),\useKV[ClesTrigo]{Precision})}}%
+ \end{align*}%
+ }{%
+ \begin{align*}
+ \sin(\widehat{\NomB\NomA\NomC})&=\frac{\NomB\NomC}{\NomA\NomC}\\
+ \sin(\widehat{\NomB\NomA\NomC})&=\frac{\num{#3}}{\num{#4}}\\
+ \widehat{\NomB\NomA\NomC}&\IfInteger{\fpeval{round(asind(#3/#4),9)}}{=}{\approx}\ang{\fpeval{round(asind(#3/#4),\useKV[ClesTrigo]{Precision})}}%
+ \end{align*}%
+ }%
+ \fi%
+ \fi%
+ }{}%
+ \ifboolKV[ClesTrigo]{Tangente}{%
+ \ifx\bla#3\bla%on calcule le c\^ot\'e oppos\'e
+ \xdef\ResultatTrigo{\fpeval{round(#4*tand(#5),\useKV[ClesTrigo]{Precision})}}%
+ \ifboolKV[ClesTrigo]{Propor}{%
+ \begin{align*}
+ \NomA\NomB\times\tan(\widehat{\NomB\NomA\NomC})&=\NomB\NomC\\%
+ \num{#4}\times\tan(\ang{#5})&=\NomB\NomC%\\%
+ \ifboolKV[ClesTrigo]{ValeurExacte}{}{\\%
+ \SI{\fpeval{round(#4*tand(#5),\useKV[ClesTrigo]{Precision})}}{\PfCTrigoUnit}&\IfInteger{\fpeval{round(#4*tand(#5),9)}}{=}{\approx}\NomB\NomC}%
+ \end{align*}%
+ }{%
+ \begin{align*}
+ \tan(\widehat{\NomB\NomA\NomC})&=\frac{\NomB\NomC}{\NomA\NomB}\\
+ \tan(\ang{#5})&=\frac{\NomB\NomC}{\num{#4}}\\
+ \num{#4}\times\tan(\ang{#5})&=\NomB\NomC%\\
+ \ifboolKV[ClesTrigo]{ValeurExacte}{}{\\%
+ \SI{\fpeval{round(#4*tand(#5),\useKV[ClesTrigo]{Precision})}}{\PfCTrigoUnit}&\IfInteger{\fpeval{round(#4*tand(#5),9)}}{=}{\approx}\NomB\NomC}%
+ \end{align*}%
+ }%
+ \else
+ \ifx\bla#4\bla%on calcule l'adjacent
+ \xdef\ResultatTrigo{\fpeval{round(#3/tand(#5),\useKV[ClesTrigo]{Precision})}}%
+ \ifboolKV[ClesTrigo]{Propor}{%
+ \begin{align*}
+ \NomA\NomB\times\tan(\widehat{\NomB\NomA\NomC})&=\NomB\NomC\\
+ \NomA\NomB\times\tan(\ang{#5})&=\num{#3}\\
+ \NomA\NomB&=\frac{\num{#3}}{\tan(\ang{#5})}%\\
+ \ifboolKV[ClesTrigo]{ValeurExacte}{}{\\%
+ \NomA\NomB&\IfInteger{\fpeval{round(#3/tand(#5),9)}}{=}{\approx}\SI{\fpeval{round(#3/tand(#5),\useKV[ClesTrigo]{Precision})}}{\PfCTrigoUnit}}%
+ \end{align*}%
+ }{%
+ \begin{align*}
+ \tan(\widehat{\NomB\NomA\NomC})&=\frac{\NomB\NomC}{\NomA\NomB}\\
+ \tan(\ang{#5})&=\frac{\num{#3}}{\NomA\NomB}\\
+ \NomA\NomB&=\frac{\num{#3}}{\tan(\ang{#5})}%\\
+ \ifboolKV[ClesTrigo]{ValeurExacte}{}{\\%
+ \NomA\NomB&\IfInteger{\fpeval{round(#3/tand(#5),9)}}{=}{\approx}\SI{\fpeval{round(#3/tand(#5),\useKV[ClesTrigo]{Precision})}}{\PfCTrigoUnit}}%
+ \end{align*}%
+ }%
+ \else%on calcule l'angle
+ \setKV[ClesTrigo]{Precision=0}%
+ \setKV[ClesTrigo]{#1}%
+ \xdef\ResultatTrigo{\fpeval{round(atand(#3/#4),\useKV[ClesTrigo]{Precision})}}%
+ \ifboolKV[ClesTrigo]{Propor}{%
+ \begin{align*}
+ \NomA\NomB\times\tan(\widehat{\NomB\NomA\NomC})&=\NomB\NomC\\
+ \num{#4}\times\tan(\widehat{\NomB\NomA\NomC})&=\num{#3}\\
+ \tan(\widehat{\NomB\NomA\NomC})&=\frac{\num{#3}}{\num{#4}}\\
+ \widehat{\NomB\NomA\NomC}&\IfInteger{\fpeval{round(atand(#3/#4),9)}}{=}{\approx}\ang{\fpeval{round(atand(#3/#4),\useKV[ClesTrigo]{Precision})}}%
+ \end{align*}%
+ }{%
+ \begin{align*}
+ \tan(\widehat{\NomB\NomA\NomC})&=\frac{\NomB\NomC}{\NomA\NomB}\\
+ \tan(\widehat{\NomB\NomA\NomC})&=\frac{\num{#3}}{\num{#4}}\\
+ \widehat{\NomB\NomA\NomC}&\IfInteger{\fpeval{round(atand(#3/#4),9)}}{=}{\approx}\ang{\fpeval{round(atand(#3/#4),\useKV[ClesTrigo]{Precision})}}%
+ \end{align*}%
+ }%
+ \fi%
+ \fi%
+ }{}%
+}%
+
+\newcommand\Trigo[5][]{%
+ \useKVdefault[ClesTrigo]%
+ \setKV[ClesTrigo]{#1}%
+ % #1 Cl\'es
+ % #2 Nom du triangle ABC, rectangle en B, angle connu ou pas : BAC
+ % #3 Longueur #4 Longueur #5 angle
+ % On d\'efinit les points
+ \StrMid{#2}{1}{1}[\NomA]%
+ \StrMid{#2}{2}{2}[\NomB]%
+ \StrMid{#2}{3}{3}[\NomC]%
+ % On r\'edige
+ \ifboolKV[ClesTrigo]{FigureSeule}{%
+ \ifx\bla#5\bla%
+ \ifboolKV[ClesTrigo]{Cosinus}{%
+ \MPFigTrigoAngle{\NomA}{\NomB}{\NomC}{-1}{#3}{#4}{\useKV[ClesTrigo]{Angle}}
+ }{}%
+ \ifboolKV[ClesTrigo]{Sinus}{%
+ \MPFigTrigoAngle{\NomA}{\NomB}{\NomC}{#3}{-1}{#4}{\useKV[ClesTrigo]{Angle}}
+ }{}%
+ \ifboolKV[ClesTrigo]{Tangente}{%
+ \MPFigTrigoAngle{\NomA}{\NomB}{\NomC}{#3}{#4}{-1}{\useKV[ClesTrigo]{Angle}}
+ }{}%
+ \else%}{%figure pour calculer une longueur
+ \ifboolKV[ClesTrigo]{Cosinus}{%
+ \ifx\bla#3\bla%adjacent inconnu
+ \MPFigTrigo{\NomA}{\NomB}{\NomC}{-1}{0}{#4}{#5}{\useKV[ClesTrigo]{Angle}}
+ \else
+ \MPFigTrigo{\NomA}{\NomB}{\NomC}{-1}{#3}{0}{#5}{\useKV[ClesTrigo]{Angle}}
+ \fi
+ }{}%
+ \ifboolKV[ClesTrigo]{Sinus}{%
+ \ifx\bla#3\bla%adjacent inconnu
+ \MPFigTrigo{\NomA}{\NomB}{\NomC}{0}{-1}{#4}{#5}{\useKV[ClesTrigo]{Angle}}
+ \else
+ \MPFigTrigo{\NomA}{\NomB}{\NomC}{#3}{-1}{0}{#5}{\useKV[ClesTrigo]{Angle}}
+ \fi
+ }{}%
+ \ifboolKV[ClesTrigo]{Tangente}{%
+ \ifx\bla#3\bla%adjacent inconnu
+ \MPFigTrigo{\NomA}{\NomB}{\NomC}{0}{#4}{-1}{#5}{\useKV[ClesTrigo]{Angle}}
+ \else%
+ \MPFigTrigo{\NomA}{\NomB}{\NomC}{#3}{0}{-1}{#5}{\useKV[ClesTrigo]{Angle}}
+ \fi%
+ }{}%
+ \fi%
+ }{%
+ \ifboolKV[ClesTrigo]{Figure}{%
+ \begin{multicols}{2}%
+ {\em La figure est donn\'ee \`a titre indicatif.}%
+ \ifx\bla#5\bla%
+ \ifboolKV[ClesTrigo]{Cosinus}{%
+ \begin{center}
+ \MPFigTrigoAngle{\NomA}{\NomB}{\NomC}{-1}{#3}{#4}{\useKV[ClesTrigo]{Angle}}
+ \end{center}
+ }{}%
+ \ifboolKV[ClesTrigo]{Sinus}{%
+ \begin{center}
+ \MPFigTrigoAngle{\NomA}{\NomB}{\NomC}{#3}{-1}{#4}{\useKV[ClesTrigo]{Angle}}
+ \end{center}
+ }{}%
+ \ifboolKV[ClesTrigo]{Tangente}{%
+ \begin{center}
+ \MPFigTrigoAngle{\NomA}{\NomB}{\NomC}{#3}{#4}{-1}{\useKV[ClesTrigo]{Angle}}
+ \end{center}
+ }{}%
+ \else%}{%figure pour calculer une longueur
+ \ifboolKV[ClesTrigo]{Cosinus}{%
+ \ifx\bla#3\bla%adjacent inconnu
+ \begin{center}
+ \MPFigTrigo{\NomA}{\NomB}{\NomC}{-1}{0}{#4}{#5}{\useKV[ClesTrigo]{Angle}}
+ \end{center}
+ \else
+ \begin{center}
+ \MPFigTrigo{\NomA}{\NomB}{\NomC}{-1}{#3}{0}{#5}{\useKV[ClesTrigo]{Angle}}
+ \end{center}
+ \fi
+ }{}%
+ \ifboolKV[ClesTrigo]{Sinus}{%
+ \ifx\bla#3\bla%adjacent inconnu
+ \begin{center}
+ \MPFigTrigo{\NomA}{\NomB}{\NomC}{0}{-1}{#4}{#5}{\useKV[ClesTrigo]{Angle}}
+ \end{center}
+ \else
+ \begin{center}
+ \MPFigTrigo{\NomA}{\NomB}{\NomC}{#3}{-1}{0}{#5}{\useKV[ClesTrigo]{Angle}}
+ \end{center}
+ \fi
+ }{}%
+ \ifboolKV[ClesTrigo]{Tangente}{%
+ \ifx\bla#3\bla%adjacent inconnu
+ \begin{center}
+ \MPFigTrigo{\NomA}{\NomB}{\NomC}{0}{#4}{-1}{#5}{\useKV[ClesTrigo]{Angle}}
+ \end{center}
+ \else%
+ \begin{center}
+ \MPFigTrigo{\NomA}{\NomB}{\NomC}{#3}{0}{-1}{#5}{\useKV[ClesTrigo]{Angle}}
+ \end{center}
+ \fi%
+ }{}%
+ \fi%
+ \par\columnbreak\par
+ \TrigoCalculs[#1]{#2}{#3}{#4}{#5}%
+ \end{multicols}
+ }{%
+ \TrigoCalculs[#1]{#2}{#3}{#4}{#5}%
+ }%
+ }%
+}% \ No newline at end of file