Historique des modifications [retour]
cliquez ici pour masquer/afficher la révision 4
mineure ponctuation

21 Déc '19, 20:03

Pathe's gravatar image

Pathe
7.6k49210252

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}
cliquez ici pour masquer/afficher la révision 3
mineure typo

21 Déc '19, 19:36

Pathe's gravatar image

Pathe
7.6k49210252

J'ai une nouvelle proposition de code source mais cette fois-ci il compile grâce aux deux commandes `\pgfmathparse` et `\pgfmathresult` mais je n'obtiens qu'en même pas le résultat escompté à savoir faire pivoter mon équerre correctement selon les valeurs des booléens `xorientation`, `yorientation` et `zorientation` passés en option de ma macro équerre dans laquelle sont modifiées les 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*{Equerre} \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}
cliquez ici pour masquer/afficher la révision 2
code

21 Déc '19, 18:20

samcarter's gravatar image

samcarter
8.6k2817

cliquez ici pour masquer/afficher la révision 1

21 Déc '19, 18:16

pdesmons's gravatar image

pdesmons
294919