Je cherche à faire une feuille qui permettre de créer des figures géométriques simples dans un encadré en tête de page, pour pouvoir faire des questions dessus ultérieurement.
Mais j'ai un gros bug, qui me semble être sur le \ifx ; sans doute un problème de syntaxe. La condition n'est jamais remplie pour aucun élément de la boucle...
Merci d'avance !
Code : Tout sélectionner
\documentclass{article}
\usepackage[a4paper, margin=0.5cm]{geometry}
\usepackage{tikz}
\pagestyle{empty} % Supprime les numéros de page
\begin{document}
\begin{center}
\begin{tikzpicture}
% Rectangle aux coins arrondis occupant toute la largeur de la page
\draw[rounded corners=15pt, thick] (-7.5, -1.5) rectangle (7.5, 1.5);
% Définition des couleurs et des formes
\def\colors{{"red", "green", "yellow", "blue", "violet", "black", "orange"}}
\def\shapes{{"circle", "square", "triangle"}}
\pgfmathsetmacro{\numColors}{8} % Nombre de couleurs
\pgfmathsetmacro{\numShapes}{9} % Nombre de formes
\pgfmathsetmacro{\numFigures}{int(min(\numColors, \numShapes))} % Nombre de figures à dessiner
\node[black] at (2, -7.5) {Nombre de figures: \numFigures}; % Affichage du nombre de figures; pour vérifier le code
% Largeur totale disponible pour les figures
\pgfmathsetmacro{\width}{15} % Largeur du rectangle (ajustée à la page)
\pgfmathsetmacro{\figWidth}{\width/\numFigures} % Largeur de chaque figure
% Position et dimensions des formes
\foreach \i in {0,..., 9} {
\pgfmathsetmacro{\x}{-6.75 + \i * 1.5} % Position x pour chaque forme (espacement)
\pgfmathsetmacro{\c}{int(mod(\i, 7))} % Sélection de la couleur
\pgfmathsetmacro{\s}{int(mod(\i, 3))} % Sélection de la forme
\pgfmathparse{\colors[\c]} \edef\currentcolor{\pgfmathresult} % Couleur actuelle
\pgfmathparse{\shapes[\s]} \edef\currentshape{\pgfmathresult} % Forme actuelle
\node[black] at (-3, -7.5 - \i) {Figure \i : \currentshape}; % Affichage pour test
% Dessin de la forme
\ifx\currentshape = circle
\fill[\currentcolor] (\x, -6) circle (0.6); % Cercle
\fi
\fill[\currentcolor] (\x-0.5, -3.5) rectangle (\x+0.5, -2.5); % Carré
\fill[\currentcolor] (\x, 0.6) -- (\x-0.5, -0.5) -- (\x+0.5, -0.5) -- cycle; % Triangle
}
\end{tikzpicture}
\end{center}
\end{document}
Dans un premier temps, j'essaye de créer ces figures, mais cela ne fonctionne pas ; l'idée, dans un second temps, est de pouvoir avoir un code qui puisse s'adapter automatiquement au nombre d'éléments dans les lsites du début ; et de pouvoir mettre dans une troisième liste des noms associés aux figues.