Je cherche à créer une animation en plusieurs étapes et je pensais utiliser \ifthenelse

Voici mon code (qui ne compile pas : j'avoue avoir du mal avec les tests logiques et la gestion des nombres dans LaTeX...)

\documentclass[french,11pt,a4paper]{article}
\usepackage{tikz}
\usepackage{animate}
\usepackage{ifthen}
\usepackage{siunitx}
\begin{document}
\begin{center}
\begin{animateinline}[controls=all]{25}
\multiframe{151}{rx=0+0.02}{%
\ifthenelse{\rx<1}{%
\begin{tikzpicture}
\GrAide{0}{0}{5}{5}
\draw[fill=blue] (1+\rx,1) circle (0.2cm);
\draw[fill=red] (2,1) circle (0.2cm);
\draw[fill=green] (3,1) circle (0.2cm);
\end{tikzpicture}
}{\ifthenelse{\rx<2}{%
\begin{tikzpicture}
\draw[fill=blue] (2,1) circle (0.2cm);
\draw[fill=red] (2+\rx,1) circle (0.2cm);
\draw[fill=green] (3,1) circle (0.2cm);
\end{tikzpicture}
}{%
\begin{tikzpicture}
\GrAide{0}{0}{5}{5}
\draw[fill=blue] (2,1) circle (0.2cm);
\draw[fill=red] (3,1) circle (0.2cm);
\draw[fill=green] (3+\rx,1) circle (0.2cm);
\end{tikzpicture}
}}
}
\end{animateinline}
\end{center}
\end{document}
הההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההה
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

Posée 05 Jan '24, 12:09

ablasz's gravatar image

ablasz
4861022
Taux d'acceptation : 23%

fermé 05 Jan '24, 16:15

1

Plutôt que de fermer la question parce qu'une solution trouvée, ne pourriez-vous pas plutôt partager cette solution ?

(05 Jan '24, 20:08) denis ♦♦ denis's gravatar image

Voici une solution. Merci Cédric P.

\documentclass{article}
\usepackage{tikz}
\usepackage{siunitx}
\usepackage{animate}
\usepackage{xintexpr}
\begin{document}
\begin{center}
\begin{animateinline}[controls=all]{25}
\multiframe{151}{rx=0+0.02}{%
\xintifboolexpr{ \rx < 1}%
{%
\begin{tikzpicture}
\draw[thin,lightgray] (0,0) grid (7,4) ;
\draw[fill=blue] (1+\rx,1) circle (0.2cm);
\draw[fill=red] (2,2) circle (0.2cm);
\draw[fill=green] (3,3) circle (0.2cm);
\end{tikzpicture}
}%
{}%
\xintifboolexpr{ \rx >= 1 'and' \rx < 2}%
{%
\begin{tikzpicture}
\draw[thin,lightgray] (0,0) grid (7,4) ;
\draw[fill=blue] (2,1) circle (0.2cm);
\draw[fill=red] (1+\rx,2) circle (0.2cm);
\draw[fill=green] (3,3) circle (0.2cm);
\end{tikzpicture}
}%
{}%
\xintifboolexpr{ \rx >=2 }%
{%
\begin{tikzpicture}
\draw[thin,lightgray] (0,0) grid (7,4) ;
\draw[fill=blue] (2,1) circle (0.2cm);
\draw[fill=red] (3,2) circle (0.2cm);
\draw[fill=green] (1+\rx,3) circle (0.2cm);
\end{tikzpicture}
}%
 
הההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההה
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
Lien permanent

Publiée 05 Jan '24, 21:31

ablasz's gravatar image

ablasz
4861022
Taux d'acceptation : 23%

Autre possibilité: plusieurs boucles de \multiframe:

\documentclass[french,11pt,a4paper]{article}
\usepackage{tikz}
\usepackage{animate}
\usepackage{siunitx}
\begin{document}
\begin{center}
\begin{animateinline}[controls=all]{25}
\multiframe{50}{rx=0+0.02}{%
\begin{tikzpicture}
\draw[thin,lightgray] (0,0) grid (7,4) ;
\draw[fill=blue] (1+\rx,1) circle (0.2cm);
\draw[fill=red] (2,2) circle (0.2cm);
\draw[fill=green] (3,3) circle (0.2cm);
\end{tikzpicture}
}
\newframe
\multiframe{50}{rx=1+0.02}{%
\begin{tikzpicture}
\draw[thin,lightgray] (0,0) grid (7,4) ;
\draw[fill=blue] (2,1) circle (0.2cm);
\draw[fill=red] (1+\rx,2) circle (0.2cm);
\draw[fill=green] (3,3) circle (0.2cm);
\end{tikzpicture}
}
\newframe
\multiframe{51}{rx=2+0.02}{%
\begin{tikzpicture}
\draw[thin,lightgray] (0,0) grid (7,4) ;
\draw[fill=blue] (2,1) circle (0.2cm);
\draw[fill=red] (3,2) circle (0.2cm);
\draw[fill=green] (1+\rx,3) circle (0.2cm);
\end{tikzpicture}
}
\end{animateinline}
\end{center}
\end{document}
הההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההה
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
Lien permanent

Publiée 08 Jan '24, 13:54

alexg's gravatar image

alexg
1112
Taux d'acceptation : 0%

Modifiée 08 Jan '24, 13:55

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 :

×5
×4
×3
×2

Question posée : 05 Jan '24, 12:09

Question vue : 2,866 fois

Dernière mise à jour : 08 Jan '24, 13:55

C'est votre première visite ici ? Consultez la FAQ !

×