Compilateur LaTeX en ligne
www.cpierquet.fr
fichiers/test/rouequestions.tex
↓ télécharger
% !TeX TXS-program:compile = txs:///pdflatex

\documentclass[a4paper,french,12pt]{article}
\usepackage[margin=1cm]{geometry}
\usepackage{fontawesome5}
\usepackage{tikz,pgffor}
\usetikzlibrary{calc}
\usepackage{xstring}
\usepackage{simplekv}
\usepackage{listofitems}

\defKV[RoueEq]{%
	RayonPrincipal=\def\RDEQrayon{#1},%
	HauteurQuestion=\def\RDEQhautquest{#1},%
	Police=\def\RDEQpolice{#1},%
	Epaisseur=\def\RDEQthick{#1}
}

\setKVdefault[RoueEq]{%
	RayonPrincipal=5,%
	HauteurQuestion=2,%
	Police={},%
	Epaisseur=0.8pt,%
	Reponses=true,%
	Logo=true
}

\NewDocumentCommand\RoueEquations{ O{} m m }{%
	\restoreKV[RoueEq]%paramètres par défaut
	\setKV[RoueEq]{#1}%
	\readlist*\RDEQlisteequations{#2}%
	\def\RDEQnbquest{\RDEQlisteequationslen}
	\def\RDEQangle{\fpeval{round(360/\RDEQnbquest,2)}}
	\begin{tikzpicture}[line width=\RDEQthick,line cap=round,line join=bevel]
		%LES NŒUDS !!
		\foreach \i in {1,2,...,\RDEQnbquest}{%
			\coordinate (A\i) at ({\i*\RDEQangle}:{\RDEQrayon-\RDEQhautquest}) ;
			\coordinate (B\i) at ({\i*\RDEQangle}:{\RDEQrayon}) ;
		}%
		\foreach \i in {1,...,\inteval{\RDEQnbquest-1}}{%
			\def\j{\inteval{\i+1}}%
			\coordinate (I\i) at ($(B\i)!0.5!(B\j)$) ;
		}%
		\coordinate (I\RDEQnbquest) at ($(B1)!0.5!(B\RDEQnbquest)$) ;
		\foreach \i in {1,...,\inteval{\RDEQnbquest-1}}{%
			\def\j{\inteval{\i+1}}%
			\coordinate (C\j) at ([rotate around={180:(I\i)}]A\i);
			\coordinate (D\i) at ([rotate around={180:(I\i)}]A\j);
			%\filldraw (C\j) circle[radius=2pt] node{C\j} (D\i) circle[radius=2pt] node{D\i} ;
		}%
		\coordinate (C1) at ([rotate around={180:(I\RDEQnbquest)}]A\RDEQnbquest);
		\coordinate (D\RDEQnbquest) at ([rotate around={180:(I\RDEQnbquest)}]A1);
		%LES TRACÉS
		\ifboolKV[RoueEq]{Reponses}
			{%
				\draw (A1)--(B1)--(C1)--(D\RDEQnbquest)--(B\RDEQnbquest)--(A\RDEQnbquest)--cycle ;
				\foreach \i in {1,...,\inteval{\RDEQnbquest-1}}{%
					\def\j{\inteval{\i+1}}%
					\draw(B\i)--(B\j) ;
					\draw(A\i)--(B\i)--(D\i)--(C\j)--(B\j)--(A\j)--cycle ;
				}
				\draw (B1)--(B\RDEQnbquest) ;
			}%
			{%
					\foreach \i in {1,...,\inteval{\RDEQnbquest-1}}{%
						\def\j{\inteval{\i+1}}%
						\draw(A\i)--(B\i)--(B\j)--(A\j)--cycle ;
					}
					\draw (A1)--(A\RDEQnbquest) ;
					\draw (B1)--(B\RDEQnbquest) ;
			}%
		%LES NŒUDS DES QUESTIONS
		\foreach \foreach \i in {1,...,\RDEQnbquest}{%
			\coordinate (Q\i) at ({(\i+0.5)*\RDEQangle}:{(\RDEQrayon)*cos(0.5*\RDEQangle)+0.5*\RDEQhautquest*cos(0.5*\RDEQangle)}) ;
			\draw (Q\i)  node[rotate={(\i+0.5)*\RDEQangle-90},font=\RDEQpolice] {\RDEQlisteequations[\i]} ;
			\ifboolKV[RoueEq]{Reponses}
				{%
					\coordinate (R\i) at ({(\i+0.5)*\RDEQangle}:{(\RDEQrayon-\RDEQhautquest)*cos(0.5*\RDEQangle)+0.5*\RDEQhautquest*cos(0.5*\RDEQangle)}) ;
					\IfStrEq{#3}{}%
						{}%
						{%
							\readlist*\RDEQlistereponses{#3}%
							\draw (R\i) node[rotate={(\i+0.5)*\RDEQangle-90},font=\RDEQpolice]{\RDEQlistereponses[\i]} ;
						}%
				}%
				{}%
			}%
		\ifboolKV[RoueEq]{Logo}%
			{%
				\draw (0,{0.4*(\RDEQrayon-\RDEQhautquest)}) node[scale={1.66*(\RDEQrayon-\RDEQhautquest)}] {\scalebox{-1}[1]{\faRev}} ;
				\draw (0,{-0.25*(\RDEQrayon-\RDEQhautquest)}) node[scale={0.5*(\RDEQrayon-\RDEQhautquest)},font=\sffamily] {\parbox{\fpeval{0.75*(\RDEQrayon-\RDEQhautquest)}cm}{\centering La roue des questions}} ;
			}{}%
	\end{tikzpicture}%
	
	\vspace{5mm}
	
	\begin{tikzpicture}[line width=\RDEQthick,line cap=round,line join=bevel]
		%LES NŒUDS !!
		\foreach \i in {1,2,...,\RDEQnbquest}{%
			\coordinate (A\i) at ({\i*\RDEQangle}:{\RDEQrayon-\RDEQhautquest}) ;
			\coordinate (B\i) at ({\i*\RDEQangle}:{\RDEQrayon}) ;
		}%
		\foreach \i in {1,...,\inteval{\RDEQnbquest-1}}{%
			\def\j{\inteval{\i+1}}%
			\coordinate (I\i) at ($(B\i)!0.5!(B\j)$) ;
		}%
		\coordinate (I\RDEQnbquest) at ($(B1)!0.5!(B\RDEQnbquest)$) ;
		\foreach \i in {1,...,\inteval{\RDEQnbquest-1}}{%
			\def\j{\inteval{\i+1}}%
			\coordinate (C\j) at ([rotate around={180:(I\i)}]A\i);
			\coordinate (D\i) at ([rotate around={180:(I\i)}]A\j);
			%\filldraw (C\j) circle[radius=2pt] node{C\j} (D\i) circle[radius=2pt] node{D\i} ;
		}%
		\coordinate (C1) at ([rotate around={180:(I\RDEQnbquest)}]A\RDEQnbquest);
		\coordinate (D\RDEQnbquest) at ([rotate around={180:(I\RDEQnbquest)}]A1);
		%LES TRACÉS
		\ifboolKV[RoueEq]{Reponses}
		{%
			\draw (A1)--(B1)--(C1)--(D\RDEQnbquest)--(B\RDEQnbquest)--(A\RDEQnbquest)--cycle ;
			\foreach \i in {1,...,\inteval{\RDEQnbquest-1}}{%
				\def\j{\inteval{\i+1}}%
				\draw(B\i)--(B\j) ;
				\draw(A\i)--(B\i)--(D\i)--(C\j)--(B\j)--(A\j)--cycle ;
			}
			\draw (B1)--(B\RDEQnbquest) ;
		}%
		{%
			\foreach \i in {1,...,\inteval{\RDEQnbquest-1}}{%
				\def\j{\inteval{\i+1}}%
				\draw(A\i)--(B\i)--(B\j)--(A\j)--cycle ;
			}
			\draw (A1)--(A\RDEQnbquest) ;
			\draw (B1)--(B\RDEQnbquest) ;
		}%
		%LES NŒUDS DES QUESTIONS
		\foreach \foreach \i in {1,...,\RDEQnbquest}{%
			\coordinate (Q\i) at ({(-\i-0.5)*\RDEQangle}:{(\RDEQrayon)*cos(0.5*\RDEQangle)+0.5*\RDEQhautquest*cos(0.5*\RDEQangle)}) ;
			\draw (Q\i)  node[rotate={(-\i-0.5)*\RDEQangle+90},font=\RDEQpolice] {\RDEQlisteequations[\i]} ;
		}%
		\ifboolKV[RoueEq]{Logo}%
			{%
				\draw (0,{-0.4*(\RDEQrayon-\RDEQhautquest)}) node[scale={1.66*(\RDEQrayon-\RDEQhautquest)},rotate=180] {\scalebox{-1}[1]{\faRev}} ;
				\draw (0,{0.25*(\RDEQrayon-\RDEQhautquest)}) node[scale={0.5*(\RDEQrayon-\RDEQhautquest)},font=\sffamily,rotate=180] {\parbox{\fpeval{0.75*(\RDEQrayon-\RDEQhautquest)}cm}{\centering La roue des questions}} ;
			}{}%
	\end{tikzpicture}%
}

\begin{document}


\RoueEquations[RayonPrincipal=5,HauteurQuestion=1.5]{Q1,Q2,Q3,Q4,Q5,Q6}{R1,R2,R3,R4,R5,R6}

\pagebreak
%
%\hfill
%\RoueEquations[Logo=false,RayonPrincipal=5,HauteurQuestion=1.5]{,,,,,}{R1,R2,R3,R4,R5,R6}
%\hfill~

%\RoueEquations[RayonPrincipal=5,HauteurQuestion=1.5,Reponses=false]{Q1,Q2,Q3,Q4,Q5,Q6,Q7,Q8}{}

\end{document}