J'ai une nouvelle proposition de code source mais ; cette fois-ci il compile grâce aux deux commandes `\pgfmathparse` et `\pgfmathresult` `\pgfmathresult`, mais je n'obtiens qu'en quand même pas le résultat escompté escompté, à savoir faire pivoter mon équerre correctement selon les valeurs des booléens `xorientation`, `yorientation` et `zorientation` `zorientation`, passés en option de ma macro « équerre » dans laquelle sont modifiées les newcount *newcount* `\x`, `\y` et `\z`.
\documentclass[12pt,a4paper]{article}
\usepackage[latin1,utf8]{inputenc}
\usepackage[french]{babel}
\usepackage[T1]{fontenc}
\usepackage{amsmath}
\usepackage{amsfonts}
\usepackage{amssymb}
\usepackage{lmodern}
\usepackage{fourier}
\usepackage[left=2cm,right=2cm,top=2cm,bottom=2cm]{geometry}
\usepackage{tikz}
\usetikzlibrary{patterns,math}
\usepackage{tkz-euclide}
\usetkzobj{all}
\usepackage{xkeyval}
\newcount\x
\newcount\y
\newcount\z
\makeatletter
%----------> \Equerre <----------
\definecolor{bleuI}{cmyk}{.2,.1,.1,.1}%black!50!blue!20!
\definecolor{bleuB}{cmyk}{0.2,0.4,0.4,0.05}%black!30!blue!70!
\define@cmdkey [DES] {Equerre} {inclinaison}{}
\define@cmdkey [DES] {Equerre} {CouleurInterieure}{}
\define@cmdkey [DES] {Equerre} {CouleurBord}{}
\define@cmdkey [DES] {Equerre} {bord}{}
\define@boolkey [DES] {Equerre} {xorientation}[true]{} % Gauche/Droite
\define@boolkey [DES] {Equerre} {yorientation}[true]{} % Haut/Bas
\define@boolkey [DES] {Equerre} {zorientation}[true]{} %Débout/Couchée
\define@cmdkey [DES] {Equerre} {xscale}{}
\define@cmdkey [DES] {Equerre} {yscale}{}
\presetkeys [DES] {Equerre}
{
inclinaison = 0,
CouleurInterieure = black!50!blue!20!,
CouleurBord = black!30!blue!70!,
bord=thick,
xscale=1,
yscale=1
}{}
%
\newcommand{\Equerre}[2][]{%
\setkeys[DES]{Equerre}{#1}
\begin{scope}[shift={(#2)}, rotate=\cmdDES@Equerre@inclinaison, xscale=\cmdDES@Equerre@xscale, yscale=\cmdDES@Equerre@yscale]
\ifDES@Equerre@xorientation
\x = 1 % équerre dessinée vers la droite de l'axe des ordonnées
\else
\x = -1 % équerre dessinée vers la gauche de l'axe des ordonnées
\fi
\ifDES@Equerre@yorientation
\y = 1 % équerre dessinée au-dessus de l'axe des abscisses
\else
\y = -1 % équerre dessinée en-dessous de l'axe des abscisses
\fi
\ifDES@Equerre@zorientation
\z = 1 % équerre dessinée "debout"
\else
\z = 0 % équerre dessinée "couchée"
\fi
%\draw (\x,\y) node[green,below]{$\times$};
%\draw (\x,\y) node[green,below]{O};
%\coordinate(A) at (0,0);
%\coordinate(B) at ({(5.1 * \z + (1 - \z) * 3) * \x},0);
%\coordinate(C) at (0,{3*\y});
% Bord extérieur
%\draw[\cmdDES@Equerre@bord,color=\cmdDES@Equerre@CouleurBord,fill=\cmdDES@Equerre@CouleurInterieure]
%(A) -- (B) -- (C) -- cycle;
%\draw[\cmdDES@Equerre@bord,
%color=\cmdDES@Equerre@CouleurBord,
%fill=\cmdDES@Equerre@CouleurInterieure,
%evaluate={
%\xB = (5.1 * (\z) + (1 - (\z)) * 3) * (\x);
%\yC = (5.1 * (1 - (\z)) + 3 * (\z)) * (\y);
%}
%] (0,0) -- (\xB ,0) -- (0,\yC) -- cycle;
\pgfmathparse{(5.1 * (\z) + 3 * (1 - (\z))) * (\x)} \let \xB \pgfmathresult
\pgfmathparse{(5.1 * (1 - (\z)) + 3 * (\z)) * (\y)} \let \yC \pgfmathresult
\draw[\cmdDES@Equerre@bord,color=\cmdDES@Equerre@CouleurBord,fill=\cmdDES@Equerre@CouleurInterieure] (0,0) -- (\xB,0) -- (0,\yC) -- cycle;
%\draw[\cmdDES@Equerre@bord,color=\cmdDES@Equerre@CouleurBord,fill=\cmdDES@Equerre@CouleurInterieure]
%(0,0) -- ({5.1*\x},0) -- (0,{-3*\y}) -- cycle;
% Bord intérieur
\pgfmathparse{0.6 * (\x)} \let \xD \pgfmathresult
\pgfmathparse{0.6 * (\y)} \let \yD \pgfmathresult
\pgfmathparse{(1.75 * (\z) + 0.5 * (1 - (\z))) * (\x)} \let \xE \pgfmathresult
\pgfmathparse{(1.75 * (1 - (\z)) + 0.5 * (\z)) * (\y)} \let \yE \pgfmathresult
\pgfmathparse{(3 * (\z) + 0.6 * (1 - (\z))) * (\x)} \let \xF \pgfmathresult
\pgfmathparse{(3 * (1 - (\z)) + 0.6 * (\z)) * (\y)} \let \yF \pgfmathresult
\pgfmathparse{(1.75 * (\z) + 1.45 * (1 - (\z))) * (\x)} \let \xG \pgfmathresult
\pgfmathparse{(1.75 * (1 - (\z)) + 1.45 * (\z)) * (\y)} \let \yG \pgfmathresult
\pgfmathparse{(1.975 * (\z) + 0.6 * (1 - (\z))) * (\x)} \let \xH \pgfmathresult
\pgfmathparse{(1.975 * (1 - (\z)) + 0.6 * (\z)) * (\y)} \let \yH \pgfmathresult
\pgfmathparse{(0.5 * (\z) + 1.3 * (1 - (\z))) * (\x)} \let \xI \pgfmathresult
\pgfmathparse{(0.5 * (1 - (\z)) + 1.3 * (\z)) * (\y)} \let \yI \pgfmathresult
\draw[\cmdDES@Equerre@bord,color=\cmdDES@Equerre@CouleurBord,fill=white,smooth,rounded corners=3pt,opacity=0]
(\xD,\yD)--(\xE,\yE)--(\xF,\yF)--(\xG,\yG)--(\xH,\yH)--(\xI,\yI)--cycle;
%\draw[\cmdDES@Equerre@bord,color=\cmdDES@Equerre@CouleurBord,fill=white,smooth,rounded corners=3pt,opacity=1]
%(0.6,{-0.6*\y}) -- (1.8,{-0.5*\y}) -- (3,{-0.6*\y}) -- (1.75,{-1.45*\y}) -- (0.6,{-1.975*\y}) -- (0.5,{-1.3*\y}) -- cycle;
% codage de l'angle droit
\pgfmathparse{0.3 * (\x)} \let \xJ \pgfmathresult
\pgfmathparse{0.3 * (\x)} \let \xK \pgfmathresult
\pgfmathparse{0.3 * (\y)} \let \yK \pgfmathresult
\pgfmathparse{0.3 * (\y)} \let \yL \pgfmathresult
\draw[color=red] (\xJ,0)--(\xK,\yK)--(0,\yL);
%({(-0.4/\cmdDES@Equerre@xscale)*min(\cmdDES@Equerre@xscale,\cmdDES@Equerre@yscale)*\x},0) --
%({(-0.4/\cmdDES@Equerre@xscale)*min(\cmdDES@Equerre@xscale,\cmdDES@Equerre@yscale)*\x},
%{(-0.4/\cmdDES@Equerre@yscale)*min(\cmdDES@Equerre@xscale,\cmdDES@Equerre@yscale)*\y}) --
%(0,{(-0.4/\cmdDES@Equerre@yscale)*min(\cmdDES@Equerre@xscale,\cmdDES@Equerre@yscale)*\y});
\end{scope}
}
\makeatother
\begin{document}
\section*{Équerre}
(x;y;z)=(1;1;1) équerre couchée vers la droite et vers le haut ???
\begin{tikzpicture}
\Equerre[CouleurInterieure=yellow]{1,1}
\draw (0,0) node[red]{$\times$};
\draw (0,0) node[red,below]{O};
\end{tikzpicture}
(x;y;z)=(1;-1;1) équerre couchée vers la droite et vers le bas ???
\begin{tikzpicture}
\Equerre[CouleurInterieure=green,yorientation=false]{1,-1}
\draw (0,0) node[red]{$\times$};
\draw (0,0) node[red,below]{O};
\end{tikzpicture}
(x;y;z)=(-1;-1;1) équerre couchée vers la gauche et le bas ???
\begin{tikzpicture}
\Equerre[CouleurInterieure=blue,xorientation=false,yorientation=false]{-1,-1}
\draw (0,0) node[red]{$\times$};
\draw (0,0) node[red,below]{O};
\end{tikzpicture}
(x;y;z)=(-1;1;1) équerre couchée vers la gauche et vers le haut ???
\begin{tikzpicture}
\Equerre[CouleurInterieure=red,xorientation=false]{-1,1}
\draw (0,0) node[red]{$\times$};
\draw (0,0) node[red,below]{O};
\end{tikzpicture}
(x;y;z)=(1;1;0) équerre debout vers la droite et vers le haut ???
\begin{tikzpicture}
\Equerre[CouleurInterieure=yellow,zorientation=false]{1,1}
\draw (0,0) node[red]{$\times$};
\draw (0,0) node[red,below]{O};
\end{tikzpicture}
(x;y;z)=(1;-1;0) équerre debout vers la droite et vers le bas ???
\begin{tikzpicture}
\Equerre[CouleurInterieure=green,yorientation=false,zorientation=false]{1,-1}
\draw (0,0) node[red]{$\times$};
\draw (0,0) node[red,below]{O};
\end{tikzpicture}
(x;y;z)=(-1;-1;0) équerre debout vers la gauche et le bas ???
\begin{tikzpicture}
\Equerre[CouleurInterieure=blue,xorientation=false,yorientation=false,zorientation=false]{-1,-1}
\draw (0,0) node[red]{$\times$};
\draw (0,0) node[red,below]{O};
\end{tikzpicture}
(x;y;z)=(-1;1;0) équerre debout vers la gauche et vers le haut ???
\begin{tikzpicture}
\Equerre[CouleurInterieure=red,xorientation=false,zorientation=false]{-1,1}
\draw (0,0) node[red]{$\times$};
\draw (0,0) node[red,below]{O};
\end{tikzpicture}
\begin{tikzpicture}
\Equerre[inclinaison=90,CouleurInterieure=yellow,xscale=1,yscale=1]{-1,-1}
\Equerre[bord=dashed,inclinaison=-60,CouleurBord=red,xscale=1.5,yscale=.75]{4,1}
\Equerre[bord=dashed,inclinaison=30,CouleurBord=black,CouleurInterieure=cyan,xscale=0.5,yscale=0.5]{5,-5}
\end{tikzpicture}
\begin{tikzpicture}
\Equerre[CouleurInterieure=yellow]{0,0}
\Equerre[CouleurInterieure=orange]{9,0}
\Equerre[CouleurInterieure=green,yorientation=false]{0,-6}
\Equerre[CouleurInterieure=blue,xorientation=false,yorientation=false]{9,-6}
\end{tikzpicture}
\end{document}