Correction de l’orientation des outils dans TikZ lors d’une rotation globale



LMDBT - Le blog



[OBSOLÈTE] – Correction de l’orientation des outils OutilsGeomTikz dans TikZ lors d’une rotation globale


Une mise à jour du 29/08/2024 rend obsolète ce billet que je conserve pour mémo.


Rédigé le : 20/08/2024
Mis à jour le : 31/08/2024

Lorsque l’on effectue une rotation globale d’une figure dans TikZ avec l’option rotate, il est essentiel de veiller à ce que les valeurs numériques des outils du package OutilsGeomTikz soient correctement orientées.

Dans la figure ci-dessous, les valeurs numériques de l’équerre sont "mal orienté" comparée à celle d’en haut.

En effet, une rotation globale affecte non seulement la figure elle-même, mais aussi l’orientation des outils intégrés, ce qui peut entraîner des valeurs numériques mal orientées.

Pourquoi la correction est nécessaire ?

Dans une rotation globale, tous les éléments de la figure, y compris les objets comme les équerres ou les règles, sont tournés autour de l’origine.
Cela signifie que si un outil était initialement aligné horizontalement ou verticalement, après la rotation globale, ses valeurs numériques risquent de ne plus être correctement alignées, ce qui peut désorienter les élèves lors de la lecture.

Méthode pour corriger l’orientation

Pour corriger cela, nous devons :

  1. Recalculer l’origine de l’outil en utilisant des coordonnées polaires :
    Lors d’une rotation, les coordonnées d’un point (x, y) autour de l’origine sont modifiées selon les formules suivantes :

\[x’ = x \cos(\theta) - y \sin(\theta) \]\[ y’ = x \sin(\theta) + y \cos(\theta)\]

Ici, \(\theta\) est l’angle de rotation. Ces formules permettent de recalculer la nouvelle position où placer l’outil après la rotation globale.

  1. Utiliser l’environnement scope pour appliquer une rotation locale :
    En utilisant l’environnement scope de TikZ, tu peux appliquer une rotation locale inversée à l’intérieur de la rotation globale. Cela permet de positionner correctement les outils sans les affecter par la rotation globale de la figure.

  2. Utiliser l’option Rotation de l’outil :
    Après avoir appliqué la rotation locale avec scope, il est nécessaire de spécifier la rotation inversée pour l’outil en utilisant l’option Rotation disponible dans les outils de OutilsGeomTikz. Cela permet de réorienter correctement les valeurs numériques.

Exemple illustratif

La "bonne figure" est la deuxième dans l’exemple suivant, où la méthode correcte est appliquée :

\documentclass{standalone}
\usepackage{tikz}
\usepackage{OutilsGeomTikz}
\usetikzlibrary{calc}

\begin{document}
	\begin{tikzpicture}[rotate=-25,scale=0.75]
			\draw[thin,lightgray] (0,0) grid (6,6);
			\tkzEquerre[Echelle=0.6,Origine={(3,2)},Fond,CouleurFond=cyan!75!white,Longueur=6,Rotation=0];
	\end{tikzpicture}
	
	\begin{tikzpicture}[rotate=-25,scale=0.75]
		\draw[thin,lightgray] (0,0) grid (6,6);
		\begin{scope}[rotate=25]
			\coordinate (Oeq) at ({3*cos(-25)-2*sin(-25)},{3*sin(-25)+2*cos(-25)});
			\tkzEquerre[Echelle=0.6,Origine=Oeq,Fond,CouleurFond=cyan!75!white,Longueur=6,Rotation=-25];
		\end{scope}
	\end{tikzpicture}
\end{document}

Conclusion

En suivant cette méthode, on peut s’assurer que les outils dans TikZ restent correctement orientés et lisibles même après une rotation globale de la figure. L’utilisation de l’environnement scope pour appliquer une rotation locale inversée est cruciale pour préserver l’orientation correcte des outils comme les équerres et les règles dans les dessins techniques.


Retour à l’index


Code de l’image présentée en introduction

\documentclass{standalone}
\usepackage{tikz}
\usepackage{OutilsGeomTikz}
\usetikzlibrary{calc}

\begin{document}
	\begin{tikzpicture}[rotate=-70,scale=0.75]
			\draw[thin,lightgray] (0,0) grid (6,6);
			\tkzEquerre[Echelle=0.6,Origine={(3,2)},Fond,CouleurFond=cyan!75!white,Longueur=6,Rotation=0];
			\begin{scope}[rotate=70]
				\coordinate (Oeq) at ({-2*sin(-70)},{+2*cos(-70)});
				\tkzEquerre[Echelle=0.6,Origine=Oeq,Fond,CouleurFond=cyan!75!white,Longueur=6,Rotation=-70];
			\end{scope}
	\end{tikzpicture}
\end{document}