% Dessiner un engrenage \newcommand{\gear}[6]{(0:#2) \foreach \i [evaluate = \i as \n using {\i-1)*360/#1}] in {1,...,#1}{arc (\n:\n+#4:#2) {[rounded corners] -- (\n+#4+#5:#3) arc (\n+#4+#5:\n+360/#1-#5:#3)} -- (\n+360/#1:#2)} -- cycle (0,0) circle[radius = #6]} % #1 : nombre de dents % #2 : rayon à la base des dents % #3 : rayon au sommet des dents % #4 : "angle d'attaque" (finesse de la dent) % #5 : séparation (angle) entre les dents % #6 : rayon du cercle intérieur \begin{tikzpicture}[ block/.style = {text width = 60mm, minimum height = 10mm, align = center, outer sep = 8mm}, comment/.style = {text width = 55mm, align = center, font = \sffamily\huge}, node distance = 20mm, link/.style = {->, > = Straight Barb, line width = 8pt} ] % Blocs \node[block] (etapeA) {\resizebox{!}{\linewidth}{ \begin{tikzpicture} \draw[line join = bevel, line width = 5pt] rectangle (2,3); \draw[line width = 3pt] (0.5,0.5) --++ (1,0) (0.5,1) --++ (1,0) (0.5,1.5) --++ (1,0); \node[anchor = center, text width = 15mm, align = center, font = \sffamily\bfseries\Large] at (1,2.25) {Code}; \end{tikzpicture} } }; \node[block, right = of etapeA] (etapeB) {\resizebox{!}{\linewidth}{ \begin{tikzpicture} \begin{scope}[rotate = 16] \fill[even odd rule] \gear{8}{1.8}{2.5}{13}{8}{1}; \end{scope} \begin{scope}[rotate = 13, scale = 0.5, shift = {(45mm,-60mm)}] \fill[even odd rule] \gear{6}{1.8}{2.5}{21}{8}{1}; \end{scope} \begin{scope}[rotate = -25, scale = 0.5, shift = {(25mm,70mm)}] \fill[even odd rule] \gear{6}{1.8}{2.5}{21}{8}{1}; \end{scope} \end{tikzpicture} } }; \node[block, right = of etapeB] (etapeC) {\resizebox{!}{\linewidth}{ \begin{tikzpicture} \draw[line join = round, line width = 5pt] (0,0) --++ (0,3) --++ (1.5,0) --++ (0.5,-0.5) -- (2,0) -- cycle (1.4,3) --++ (0.1,0) --++ (0.5,-0.5) --++ (0,-0.1) --++ (-0.6,0) --++ (0,0.6) -- cycle; \node[anchor = center, text width = 15mm, align = center, font = \sffamily\bfseries\Large] at (1,1.5) {PDF}; \end{tikzpicture} } }; % Commentaires \node[comment, below] (commentA) at (etapeA.south) {Rédaction \linebreak (en \LaTeX{})}; \node[comment, below] (commentB) at (etapeB.south) {Compilation \linebreak (moteur \LaTeX{})}; \node[comment, below] (commentC) at (etapeC.south) {Document prêt \linebreak (fichier PDF)}; % Liens \draw[link] (etapeA) -- (etapeB); \draw[link] (etapeB) -- (etapeC); \end{tikzpicture}