[TikZ] Eviter les répétitions dans les transformations

Tout ce qui concerne le langage TeX/LaTeX et ses variantes. Ce langage est utilisable sur le forum via les balises tex.
[participation réservée aux utilisateurs inscrits]
Règles du forum
Merci de soigner la rédaction de vos messages et de consulter ce sujet avant de poster. Pensez également à utiliser la fonction recherche du forum.
kriztho
Utilisateur confirmé
Utilisateur confirmé
Messages : 49
Inscription : vendredi 30 avril 2021, 15:14
Statut actuel : Enseignant

[Résolu] [TikZ] Eviter les répétitions dans les transformations

Message non lu par kriztho »

Bonjour à tous,

Pour un exercice sur les transformation du plan, je dois afficher un triangle initial (couleur teal dans l'exemple) et afficher des transformations (translation, échelle et miroir).

À chaque fois je dois répéter les coordonnées du triangle pour appliquer les transformations. Puis-je éviter ces répétitions, mémoriser le nom du triangle initial et lui appliquer les transformations voulues ? Est-ce possible ?

Le code d'un exemple simple :

Code : Tout sélectionner

\begin{tikzpicture}
	\draw[help lines](0,0)grid(13,6);% Grille
	\fill[blue!30](1,2)--(1,4)--(4,2)--cycle;% Triangle initial
	\fill[orange!10,shift={(4cm,1cm)}](1,2)--(1,4)--(4,2)--cycle;% Translation
	\fill[teal!10,xshift=5.5cm,scale=0.5](1,2)--(1,4)--(4,2)--cycle;% Translation et Echelle
	\fill[purple!10,shift={(8cm,6cm)},xscale=1,yscale=-1](1,2)--(1,4)--(4,2)--cycle;% Translation et miroir
\end{tikzpicture}
Dernière modification par kriztho le vendredi 08 septembre 2023, 09:47, modifié 1 fois.
gigiair
Utilisateur chevronné
Utilisateur chevronné
Messages : 2818
Inscription : samedi 08 juillet 2006, 20:56
Localisation : Saint Bonnet Elvert

Re: [TikZ] Eviter les répétitions dans les transformations

Message non lu par gigiair »

Une simple macro prenant les options en paramètre conviendrait peut-être:

Code : Tout sélectionner

\documentclass{article}
\usepackage{tikz}
\begin{document}
%>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
\newcommand{\trian}[1]{\fill[#1](1,2)--(1,4)--(4,2)--cycle;}
\begin{tikzpicture}
        \draw[help lines](0,0)grid(13,6);% Grille
        % \fill[blue!30](1,2)--(1,4)--(4,2)--cycle;% Trian initial
        \trian{blue!30}
        % \fill[orange!10,shift={(4cm,1cm)}](1,2)--(1,4)--(4,2)--cycle;% Translation
        \trian{orange!10,shift={(4cm,1cm)}}
        % \fill[teal!10,xshift=5.5cm,scale=0.5](1,2)--(1,4)--(4,2)--cycle;% Translation et Echelle
        \trian{teal!10,xshift=5.5cm,scale=0.5}
        % \fill[purple!10,shift={(8cm,6cm)},xscale=1,yscale=-1](1,2)--(1,4)--(4,2)--cycle;% Translation et miroir
        \trian{purple!10,shift={(8cm,6cm)},xscale=1,yscale=-1}
\end{tikzpicture}
%<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
\end{document}
J'ai choisi \\trian pour le nom de la macro car le symbole \\triangle est déjà affecté par tikz/.
JJR.
LaTeXien migrateur.
kriztho
Utilisateur confirmé
Utilisateur confirmé
Messages : 49
Inscription : vendredi 30 avril 2021, 15:14
Statut actuel : Enseignant

Re: [TikZ] Eviter les répétitions dans les transformations

Message non lu par kriztho »

Bonjour gigiair,
C'est parfait ! C'est bien ce que je souhaitais, merci.
Je suis juste déçu de moi pour ne pas avoir pensé à cette solution. Je dois plus me creuser les méninges !