Dans cette vidéo, on voit des formes géométriques construites à partir des tables de multiplications représentées dans un modulo (si j'ai bien compris…).

Et, évidemment, j'ai été séduit par la beauté de la chose et l'idée m'est venue de vouloir faire la même chose avec LaTeX. TikZ devrait répondre à ma curiosité, n'est-ce pas ?

Quelqu'un d'entre vous a-t-il déjà essayé ?

J'ai cherché des représentations de ce type, mais n'ai rien trouvé (probablement faute d'avoir utilisé les bons mots-clé). On aura compris que je ne suis pas matheux pour deux ronds…

Posée 07 Déc '19, 18:16

fred02840's gravatar image

fred02840
4.2k31165189
Taux d'acceptation : 15%

Modifiée 08 Déc '19, 13:54

Pathe's gravatar image

Pathe ♦♦
7.6k49210252


Voici une idée.

Après une petite réflexion, il me semble que c'est plus pratique avec des arguments donc la commande à utiliser comme suit \mttablemultiplicationmodulo[rayon]{unite}{nombremax} avec rayon est 2cm par défaut.

Ouvrir dans l'éditeur Overleaf
\documentclass[a4paper,french]{article}
\usepackage{lmodern}
\usepackage[T1]{fontenc}
\usepackage{babel}
\usepackage[margin=2.5cm]{geometry}
\usepackage{tikz}
\newcommand{\mttablemultiplicationmodulo}[3][2cm]{%
\begin{tikzpicture}[rotate=90]
\draw (0,0) circle (#1);
\foreach \i in {0,...,\numexpr#3-1} {
\fill[green!40!black] (\i*36/#3*10:#1) circle (.4mm);
\draw ({(\i+1)*36/#3*10}:#1)--({(mod(\i*#2,#3)+1)*36/#3*10}:#1);}
\end{tikzpicture}}
\begin{document}
\section{Multiplication par 2}
\mttablemultiplicationmodulo{2}{10}
\mttablemultiplicationmodulo{2}{60}
\mttablemultiplicationmodulo{2}{100}
\section{Multiplication par 3}
\mttablemultiplicationmodulo{3}{10}
\mttablemultiplicationmodulo{3}{60}
\mttablemultiplicationmodulo{3}{100}
\section{Multiplication par 6}
\mttablemultiplicationmodulo{6}{10}
\mttablemultiplicationmodulo{6}{60}
\mttablemultiplicationmodulo{6}{100}
\end{document}
הההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההה
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

Réponse originale.

On a définie trois macros.

  • \mtcircle pour sauvegarder la valeur du rayon du cercle.
  • \mtunite le nombre dont on veut représenter la table de multiplication
  • \mtpoints le nombre des points a mettre sur le cercle, (hauteur de la table)

el la macro \mttablemultiplicationmodulo qui fait le tikz.

Ouvrir dans l'éditeur Overleaf
\documentclass[a4paper,french]{article}
\usepackage{lmodern}
\usepackage[T1]{fontenc}
\usepackage{babel}
\usepackage[margin=2.5cm]{geometry}
\usepackage{tikz}
\newcommand{\mtcircle}{2cm}
\newcommand{\mttablemultiplicationmodulo}{%
\begin{tikzpicture}[rotate=90]
\draw (0,0) circle (\mtcircle);
\foreach \i in {0,...,\numexpr\mtpoints-1} {
\fill[green!40!black] (\i*36/\mtpoints*10:\mtcircle) circle (.4mm);
\draw ({(\i+1)*36/\mtpoints*10}:\mtcircle)--({(mod(\i*\mtunite,\mtpoints)+1)*36/\mtpoints*10}:\mtcircle);}
\end{tikzpicture}}
\begin{document}
\section{Multiplication par 2}
\newcommand{\mtunite}{2}
\newcommand{\mtpoints}{10}
\mttablemultiplicationmodulo
\renewcommand{\mtpoints}{60}
\mttablemultiplicationmodulo
\renewcommand{\mtpoints}{100}
\mttablemultiplicationmodulo
\section{Multiplication par 3}
\renewcommand{\mtunite}{3}
\renewcommand{\mtpoints}{10}
\mttablemultiplicationmodulo
\renewcommand{\mtpoints}{60}
\mttablemultiplicationmodulo
\renewcommand{\mtpoints}{100}
\mttablemultiplicationmodulo
\section{Multiplication par 6}
\renewcommand{\mtunite}{6}
\renewcommand{\mtpoints}{10}
\mttablemultiplicationmodulo
\renewcommand{\mtpoints}{60}
\mttablemultiplicationmodulo
\renewcommand{\mtpoints}{100}
 
הההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההה
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
Lien permanent

Publiée 07 Déc '19, 20:57

touhami's gravatar image

touhami
9.9k410
Taux d'acceptation : 51%

Modifiée 07 Déc '19, 21:13

@touhami. Je n'ose imaginer l'animation qu'on pourrait obtenir avec beamer. J'essaierai cela quand j'aurai un moment

(27 Déc '19, 12:14) fred02840 fred02840's gravatar image

Sans relancer de troll sur les compléments graphiques de l'univers LaTeX... :) voici une solution avec metapost :)

Ouvrir dans l'éditeur Overleaf
prologues:=2;
mul:=2;
modulo:=60;
rayon=2.5;
path cercle;
cercle=fullcircle scaled (2*rayon*1cm);
pair A[],O;
O=(0,0);
A0-O=(0,rayon*1cm);
for k=1 upto modulo-1:
A[k]=A[k-1] rotatedabout(O,360/modulo);
endfor;
beginfig(1);
draw cercle;
for k=1 upto modulo-1:
draw A[k]--A[k*mul mod modulo];
endfor;
endfig;
end
הההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההה
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

ou voici un code à compiler directement sur overleaf

Ouvrir dans l'éditeur Overleaf
\documentclass{article}
\usepackage[shellescape]{gmp}
\begin{document}
\begin{mpost}
prologues:=2;
mul:=2;
modulo:=60;
rayon=2.5;
path cercle;
cercle=fullcircle scaled (2*rayon*1cm);
pair A[],O;
O=(0,0);
A0-O=(0,rayon*1cm);
for k=1 upto modulo-1:
A[k]=A[k-1] rotatedabout(O,360/modulo);
endfor;
beginfig(1);
draw cercle;
for k=1 upto modulo-1:
draw A[k]--A[k*mul mod modulo];
endfor;
endfig;
end
\end{mpost}
\end{document}
הההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההה
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
Lien permanent

Publiée 08 Déc '19, 00:12

christophe-poulain's gravatar image

christophe-poulain
8661827
Taux d'acceptation : 37%

Modifiée 08 Déc '19, 23:06

@christophe-poulain : ce code metapost a l'air limpide, mais il est dépourvu du préambule qui permettrait au néophyte de le tester en ligne en cliquant sur le lien prévu à cet effet. Pourriez-vous le compléter ?

(08 Déc '19, 13:58) Pathe ♦♦ Pathe's gravatar image
2

Pour metapost, pas besoin de préambule... on enregistre le code fourni ci-dessus (sous la forme nomfichier.mp) et on le compile à l'aide de mpost nomfichier. On obtiendra un fichier nomfichier.1 qu'il faudra inclure dans un document LaTeX...

(08 Déc '19, 23:01) christophe-poulain christophe-poulain's gravatar image
4

Après, si vous insistez :), j'ai ajouté un code LaTeX qui peut être testé directement dans overleaf (le lien direct ne fonctionne pas, le préambule LaTeX n'est pas le bon). Cette compilation directe est rendue possible par le package (latex) gmp

(08 Déc '19, 23:05) christophe-poulain christophe-poulain's gravatar image

@christophe-poulain. L'ensemble du fichier .tex m'intéresserait. Et d'autres aussi…

(27 Déc '19, 12:08) fred02840 fred02840's gravatar image
1

quel fichier .tex ? Il est fourni... Quels sont les autres ?

(28 Déc '19, 19:54) christophe-poulain christophe-poulain's gravatar image
Votre réponse
[Masquer l'aperçu]

Suivre cette question

Par courriel :

Une fois que vous serez enregistré, vous pourrez souscrire à n'importe quelle mise à jour ici

Par flux RSS :

Réponses

Réponses et commentaires

Mots-clés de la question :

×109
×1

Question posée : 07 Déc '19, 18:16

Question vue : 4,372 fois

Dernière mise à jour : 28 Déc '19, 19:54