From 05e4c0a34b97237b4cd2f3fb0d5cd03e73b8e55e Mon Sep 17 00:00:00 2001 From: Norbert Preining Date: Thu, 19 Oct 2023 03:01:07 +0000 Subject: CTAN sync 202310190301 --- .../outilsgeomtikz/doc/OutilsGeomTikz-doc.pdf | Bin 423840 -> 501125 bytes .../outilsgeomtikz/doc/OutilsGeomTikz-doc.tex | 179 +++++++++++++++------ .../contrib/outilsgeomtikz/tex/OutilsGeomTikz.sty | 128 ++++++++++++++- 3 files changed, 255 insertions(+), 52 deletions(-) (limited to 'graphics') diff --git a/graphics/pgf/contrib/outilsgeomtikz/doc/OutilsGeomTikz-doc.pdf b/graphics/pgf/contrib/outilsgeomtikz/doc/OutilsGeomTikz-doc.pdf index e66c2c6c0f..2bd736f970 100644 Binary files a/graphics/pgf/contrib/outilsgeomtikz/doc/OutilsGeomTikz-doc.pdf and b/graphics/pgf/contrib/outilsgeomtikz/doc/OutilsGeomTikz-doc.pdf differ diff --git a/graphics/pgf/contrib/outilsgeomtikz/doc/OutilsGeomTikz-doc.tex b/graphics/pgf/contrib/outilsgeomtikz/doc/OutilsGeomTikz-doc.tex index aa124a4596..3e30b249db 100644 --- a/graphics/pgf/contrib/outilsgeomtikz/doc/OutilsGeomTikz-doc.tex +++ b/graphics/pgf/contrib/outilsgeomtikz/doc/OutilsGeomTikz-doc.tex @@ -4,8 +4,8 @@ \documentclass[french,a4paper,11pt]{article} \usepackage[margin=2cm,includefoot]{geometry} -\def\TPversion{0.1.2} -\def\TPdate{22 mai 2023} +\def\TPversion{0.1.4} +\def\TPdate{18 octobre 2023} \usepackage[table,svgnames]{xcolor} \usepackage[bold-style=ISO,math-style=french]{concmath-otf} %\usepackage[bold-style=ISO,math-style=french]{unicode-math} @@ -39,12 +39,7 @@ \let\TikZ\tikzlogo \newcommand\TableauDocumentation{% \begin{tblr}{width=\linewidth,colspec={X[c]X[c]X[c]X[c]X[c]X[c]},cells={font=\sffamily}} - {\LARGE \LaTeX} & & & & &\\ - & {\LARGE \hologo{pdfLaTeX}} & & & & \\ - & & {\LARGE \hologo{LuaLaTeX}} & & & \\ - & & & {\LARGE \TikZ} & & \\ - & & & & {\LARGE \TeXLive} & \\ - & & & & & {\LARGE \hologo{MiKTeX}} \\ + {\large \LaTeX} & {\large \hologo{pdfLaTeX}} & {\large \hologo{LuaLaTeX}} & {\large \TikZ} & {\large \TeXLive} & {\large \hologo{MiKTeX}} \\ \end{tblr} } @@ -171,14 +166,14 @@ \tkzRapporteur[Complet,Echelle=0.5,Origine={(13,3.25)},Rotation=25,Fond,CouleurFond=orange] \end{tikzpicture}\hfill~ -%\vspace{0.5cm} -% -%\hfill{}\textit{Merci à Denis Bitouzé et à Gilles Le Bourhis pour leurs retours et idées !} - \smallskip \vfill +\hfill\textit{Merci à Arnaud pour ses retours et idées !!} + +\vfill + \hrule \medskip @@ -202,11 +197,15 @@ \part{Historique} -\verb|v0.1.2|~:~~~~Ajout de la \textit{règle-repère} +\verb|v0.1.4 : |Possibilité de positionner certains outils avec deux points (angle calculé automatiquement) + +\verb|v0.1.3 : |Ajout du \textit{pourcenteur} + +\verb|v0.1.2 : |Ajout de la \textit{règle-repère} -\verb|v0.1.1|~:~~~~Correction d'un bug avec une ancienne syntaxe [join=...] +\verb|v0.1.1 : |Correction d'un bug avec une ancienne syntaxe \textsf{[join=...]} -\verb|v0.1.0|~:~~~~Version initiale. +\verb|v0.1.0 : |Version initiale. \vspace{1cm} @@ -225,7 +224,8 @@ Le package \textsf{OutilsGeomTikz} \textit{propose} des éléments graphiques, e \item un crayon ; \item une règle graduée ; \item une équerre graduée (30/60) ; - \item un rapporteur (180 ou 360); + \item un rapporteur (180 ou 360) ; + \item un pourcenteur ; \item une réquerre graduée ; \item une \og règle-repère \fg{} graduée ; \item une \og rappéquerre \fg{} graduée ; @@ -283,14 +283,15 @@ Les différents outils disponibles ont \textit{grosso-modo} le même mode de fon \begin{itemize} \item le \textit{nom} de la commande est sous la forme \texttt{\textbackslash tkz} ; \item les outils ont été créés, en \TikZ, avec comme unité de base le centimètre ; - \item pour certains outils, des dimensions minimales sont requises pour un aspect conforme et acceptable ; + \item pour certains outils, des dimensions minimales sont requises pour un aspect acceptable ; \item les options personnalisables sont (sauf exceptions) : \begin{itemize} \item la \textit{taille} ; \item l'\textit{échelle} globale ou l'\textit{échelle} des éventuels labels ; \item les \textit{couleurs} ; \item le \textit{fond} (couleur et opacité) ; - \item la position (\textit{placement} et/ou \textit{rotation}). + \item la position (\textit{placement} et/ou \textit{rotation}) ; + \item un \textit{placement automatique} avec la données de 2 points. \end{itemize} \end{itemize} \vspace*{-\baselineskip}\leavevmode @@ -301,12 +302,10 @@ Les différents outils disponibles ont \textit{grosso-modo} le même mode de fon \begin{cautionblock} Les outils disponibles sont à insérer dans un environnement \TikZ, et pour le moment il existe : \begin{itemize} - \item \texttt{\textbackslash tkzRegle} ; - \item \texttt{\textbackslash tkzEquerre} ; - \item \texttt{\textbackslash tkzRapporteur} ; - \item \texttt{\textbackslash tkzRequerre} ; + \item \texttt{\textbackslash tkzRegle} et \texttt{\textbackslash tkzRegleRepere} ; + \item \texttt{\textbackslash tkzEquerre} et \texttt{\textbackslash tkzRequerre} ; + \item \texttt{\textbackslash tkzRapporteur} et \texttt{\textbackslash tkzPourcenteur} ; \item \texttt{\textbackslash tkzRappequerre} ; - \item \texttt{\textbackslash tkzRegleRepere} ; \item \texttt{\textbackslash tkzCompas} ; \item \texttt{\textbackslash tkzCrayon}. \end{itemize} @@ -317,6 +316,7 @@ Les outils disponibles sont à insérer dans un environnement \TikZ, et pour le \tkzRegle[clés] \tkzEquerre[clés] \tkzRapporteur[clés] +\tkzPourcenteur[clés] \tkzRequerre[clés] \tkzRappEquerre[clés] \tkzRegleRepere[clés] @@ -432,7 +432,8 @@ Quelques \Cle{clés} de personnalisation sont disponibles : \hfill~(défaut : \Cle{m}) \end{itemize} -\vspace*{-\baselineskip}\leavevmode + +À noter que pour la clé \Cle{Rotation}, il est possible de préciser un deuxième point, et dans ce cas la clé sera précisée sous la forme \Cle{Rotation=auto/pt}. Dans \textbf{ce cas}, les points \textit{support} \textbf{devront} avoir été déclarés au préalable ! \end{tipblock} \begin{noteblock} @@ -445,17 +446,21 @@ Toutes les \Cle{clés} ne seront pas présentées de manière indépendante, mai \begin{PresentationCode}{listing only} %environnement tikz +\coordinate (K) at (1,-3) ; +\coordinate (C) at (6,-8) ; \tkzRegle[Fond,CouleurFond=red] -\tkzRegle[Longueur=13,Largeur=2,Rotation=-45,Couleur=ForestGreen, Origine={(1,-3)},Fond,PosVal=hb] +\tkzRegle[Longueur=13,Largeur=2,Rotation=auto/C,Couleur=ForestGreen, Origine=K,Fond,PosVal=hb] \tkzRegle[Largeur=1.25,Longueur=9,Couleur=blue,Rotation=20,Origine={(0,3)}, AfficheValeurs=false] \end{PresentationCode} \begin{PresentationCode}{text only} \begin{tikzpicture} \affichegrille{-1}{13}{-14}{7} - \pointsutiles{(0,0),(1,-3),(0,3)} + \coordinate (K) at (1,-3) ; + \coordinate (C) at (6,-8) ; + \pointsutiles{(0,0),(1,-3),(0,3),(6,-8)} \tkzRegle[Fond,CouleurFond=red] - \tkzRegle[Longueur=13,Largeur=2,Rotation=-45,Couleur=ForestGreen,Origine={(1,-3)},Fond,PosVal=hb] + \tkzRegle[Longueur=13,Largeur=2,Rotation=auto/C,Couleur=ForestGreen, Origine=K,Fond,PosVal=hb] \tkzRegle[Largeur=1.25,Longueur=9,Couleur=blue,Rotation=20,Origine={(0,3)},AfficheValeurs=false] \end{tikzpicture} \end{PresentationCode} @@ -498,7 +503,8 @@ Quelques \Cle{clés} de personnalisation sont disponibles : \hfill~(défaut : \Cle{false}) \end{itemize} -\vspace*{-\baselineskip}\leavevmode + +À noter que pour la clé \Cle{Rotation}, il est possible de préciser un deuxième point, et dans ce cas la clé sera précisée sous la forme \Cle{Rotation=auto/pt}. Dans \textbf{ce cas}, les points \textit{support} \textbf{devront} avoir été déclarés au préalable ! \end{tipblock} \begin{noteblock} @@ -511,17 +517,21 @@ Toutes les \Cle{clés} ne seront pas présentées de manière indépendante, mai \begin{PresentationCode}{listing only} %environnement tikz +\coordinate (U) at (1,-5) ; +\coordinate (V) at (9,-7) ; \tkzRegleRepere[Fond,CouleurFond=red] -\tkzRegleRepere[Longueur=8,Rotation=-15,Couleur=ForestGreen, Origine={(1,-5)},Fond,AfficheValeurs=false] +\tkzRegleRepere[Longueur=8,Rotation=auto/V,Couleur=ForestGreen, Origine=U,Fond,AfficheValeurs=false] \tkzRegleRepere[Longueur=18,Echelle=0.5,Couleur=blue,Rotation=20, Origine={(3,3.25)},Retourne] \end{PresentationCode} \begin{PresentationCode}{text only} \begin{tikzpicture} - \affichegrille{-1}{13}{-12}{7} - \pointsutiles{(0,0),(1,-5),(3,3.25)} + \affichegrille{-1}{13}{-11}{7} + \coordinate (U) at (1,-5) ; + \coordinate (V) at (9,-7) ; + \pointsutiles{(0,0),(1,-5),(3,3.25),(9,-7)} \tkzRegleRepere[Fond,CouleurFond=red] - \tkzRegleRepere[Longueur=8,Rotation=-15,Couleur=ForestGreen, Origine={(1,-5)},Fond,AfficheValeurs=false] + \tkzRegleRepere[Longueur=8,Rotation=auto/V,Couleur=ForestGreen, Origine=U,Fond,AfficheValeurs=false] \tkzRegleRepere[Longueur=18,Echelle=0.5,Couleur=blue,Rotation=20,Origine={(3,3.25)},Retourne] \end{tikzpicture} \end{PresentationCode} @@ -556,24 +566,31 @@ Quelques \Cle{clés} de personnalisation sont disponibles : \item le booléen \Cle{Fond} pour afficher une couleur de fond pour l'équerre ;\hfill~(défaut : \Cle{false}) \item \Cle{CouleurFond} pour la couleur du fond de l'équerre ;\hfill~(défaut : \Cle{black}) \item \Cle{Opacite} pour régler l'opacité du fond de l'équerre ;\hfill~(défaut : \Cle{0.5}) - \item le booléen \Cle{AfficheValeurs} pour afficher les valeurs des graduations.\hfill~(défaut : \Cle{true}) + \item le booléen \Cle{PetitCote} dans le cas d'un placement par deux points. \hfill~(défaut \Cle{false}) \end{itemize} -\vspace*{-\baselineskip}\leavevmode + +À noter que pour la clé \Cle{Rotation}, il est possible de préciser un deuxième point, et dans ce cas la clé sera précisée sous la forme \Cle{Rotation=auto/pt}. Dans \textbf{ce cas}, les points \textit{support} \textbf{devront} avoir été déclarés au préalable ! + +Le booléen \Cle{PetitCote} permet de forcer le placement de l'équerre sur le petit côté. \end{tipblock} \begin{PresentationCode}{listing only} %environnement tikz +\coordinate (P) at (8,6) ; +\coordinate (Q) at (11,10) ; \tkzEquerre[Fond] -\tkzEquerre[Echelle=0.5,Origine={(8,6)},Couleur=DarkBlue,Rotation=-45] +\tkzEquerre[Echelle=0.61,Origine=P,Couleur=DarkBlue,Rotation=auto/Q] \tkzEquerre[Longueur=10,Origine={(2.5,-1)},Couleur=red,Rotation=-105] \end{PresentationCode} \begin{PresentationCode}{text only} \begin{tikzpicture} \affichegrille{-1}{13}{-7}{11} - \pointsutiles{(0,0),(8,6),(2.5,-1)} + \coordinate (P) at (8,6) ; + \coordinate (Q) at (11,10) ; + \pointsutiles{(0,0),(8,6),(2.5,-1),(11,10)} \tkzEquerre[Fond] - \tkzEquerre[Echelle=0.5,Origine={(8,6)},Couleur=DarkBlue,Rotation=-45] + \tkzEquerre[Echelle=0.61,Origine=P,Couleur=DarkBlue,Rotation=auto/Q] \tkzEquerre[Longueur=10,Origine={(2.5,-1)},Couleur=red,Rotation=-105] \end{tikzpicture} \end{PresentationCode} @@ -642,6 +659,64 @@ Quelques \Cle{clés} de personnalisation sont disponibles : \pagebreak +\pagebreak + +\section{Le pourcenteur} + +\subsection{La commande} + +\begin{cautionblock} +Le package propose l'outil \textsf{Pourcenteur}. + +La forme générale du rapporteur (largeur $6$~cm) est \textit{fixée}, mais le pourcenteur peut être \textit{personnalisé}. +\end{cautionblock} + +\begin{PresentationCode}{tikz lower} +\tkzPourcenteur +\end{PresentationCode} + +\subsection{Clés et options} + +\begin{tipblock} +Quelques \Cle{clés} de personnalisation sont disponibles : + +\begin{itemize} + \item \Cle{Origine} pour le placer le pourcenteur (au niveau du \textit{centre}) ;\hfill~(défaut : \Cle{\{(0,0)\}}) + \item \Cle{Rotation} pour pivoter le pourcenteur (au niveau du \textit{centre}) ;\hfill~(défaut : \Cle{0}) + \item \Cle{Echelle} pour l'échelle globale du pourcenteur ;\hfill~(défaut : \Cle{1}) + \item \Cle{Couleur} pour la couleur des éléments du pourcenteur ;\hfill~(défaut : \Cle{black}) + \item le booléen \Cle{Fond} pour afficher une couleur de fond ;\hfill~(défaut : \Cle{false}) + \item \Cle{CouleurFond} pour la couleur du fond du pourcenteur ;\hfill~(défaut : \Cle{black}) + \item \Cle{Opacite} pour régler l'opacité du fond du pourcenteur ;\hfill~(défaut : \Cle{0.5}) + \item le booléen \Cle{Decoration} pour afficher les \textit{décorations d'intérieur} ; \hfill~(défaut : \Cle{true}) + \item le booléen \Cle{AfficheValeurs} pour afficher les valeurs des pourcentages.\hfill~(défaut : \Cle{true}) +\end{itemize} +\vspace*{-\baselineskip}\leavevmode +\end{tipblock} + +\pagebreak + +\begin{PresentationCode}{listing only} +%environnement tikz +\tkzPourcenteur[Fond,CouleurFond=purple] +\tkzPourcenteur[Origine={(7,1)},Rotation=-45,Couleur=ForestGreen,Echelle=0.75] +\tkzPourcenteur[Decoration=false,AfficheValeurs=false,Origine={(9,-4)},Rotation=30, Couleur=DarkBlue,Fond,CouleurFond=DarkBlue,Echelle=0.66] +\tkzPourcenteur[Origine={(3,-4)},Rotation=90,Couleur=orange,Fond,CouleurFond=orange, Echelle=0.33] +\end{PresentationCode} + +\begin{PresentationCode}{text only} +\begin{tikzpicture} + \affichegrille{-4}{11}{-7}{4} + \pointsutiles{(0,0),(7,1),(9,-4)} + \tkzPourcenteur[Fond,CouleurFond=purple] + \tkzPourcenteur[Origine={(7,1)},Rotation=-45,Couleur=ForestGreen,Echelle=0.75] + \tkzPourcenteur[Decoration=false,AfficheValeurs=false,Origine={(9,-4)},Rotation=30,Couleur=DarkBlue, Fond,CouleurFond=DarkBlue,Echelle=0.66] + \tkzPourcenteur[Origine={(3,-4)},Rotation=90,Couleur=orange, Fond,CouleurFond=orange,Echelle=0.33] +\end{tikzpicture} +\end{PresentationCode} + +\pagebreak + \section{La réquerre} \subsection{La commande} @@ -673,23 +748,28 @@ Quelques \Cle{clés} de personnalisation sont disponibles : \item \Cle{Opacite} pour régler l'opacité du fond de la réquerre ;\hfill~(défaut : \Cle{0.5}) \item le booléen \Cle{AfficheValeurs} pour afficher les valeurs des graduations.\hfill~(défaut : \Cle{true}) \end{itemize} -\vspace*{-\baselineskip}\leavevmode + +À noter que pour la clé \Cle{Rotation}, il est possible de préciser un deuxième point, et dans ce cas la clé sera précisée sous la forme \Cle{Rotation=auto/pt}. Dans \textbf{ce cas}, les points \textit{support} \textbf{devront} avoir été déclarés au préalable ! \end{tipblock} \begin{PresentationCode}{listing only} %environnement tikz +\coordinate (F) at (1,-5) ; +\coordinate (G) at (4,-4) ; \tkzRequerre[Fond,CouleurFond=yellow] \tkzRequerre[Echelle=0.5,Origine={(-5,-6)},Rotation=-80,Couleur=ForestGreen, Longueur=10,Largeur=3.5,AfficheValeurs=false] -\tkzRequerre[Origine={(1,-5)},Rotation=15,Couleur=DarkBlue, Longueur=9,Largeur=2.75] +\tkzRequerre[Origine=F,Rotation=auto/G,Couleur=DarkBlue, Longueur=9,Largeur=2.75] \end{PresentationCode} \begin{PresentationCode}{text only} \begin{tikzpicture} + \coordinate (F) at (1,-5) ; + \coordinate (G) at (4,-4) ; \affichegrille{-8}{7}{-9}{1} - \pointsutiles{(0,0),(-5,-6),(1,-5)} + \pointsutiles{(0,0),(-5,-6),(1,-5),(4,-4)} \tkzRequerre[Fond,CouleurFond=yellow] \tkzRequerre[Echelle=0.5,Origine={(-5,-6)},Rotation=-80,Couleur=ForestGreen, Longueur=10,Largeur=3.5,AfficheValeurs=false] - \tkzRequerre[Origine={(1,-5)},Rotation=15,Couleur=DarkBlue,Longueur=9,Largeur=2.75] + \tkzRequerre[Origine=F,Rotation=auto/G,Couleur=DarkBlue, Longueur=9,Largeur=2.75] \end{tikzpicture} \end{PresentationCode} @@ -722,28 +802,35 @@ Quelques \Cle{clés} de personnalisation sont disponibles : \item \Cle{EchelleValeurs} pour l'échelle des valeurs ;\hfill~(défaut : \Cle{1}) \item \Cle{Couleur} pour la couleur des éléments de la rappéquerre ;\hfill~(défaut : \Cle{black}) \item le booléen \Cle{Fond} pour afficher une couleur de fond pour la rappéquerre ;\hfill~(défaut : \Cle{false}) - \item \Cle{CouleurFond} pour la couleur du fond de la rappéquerre ;\hfill~(défaut : \Cle{black}) + \item \Cle{CouleurFond} pour la couleur du fond de la rappéquerre ; + + \hfill~(défaut : \Cle{black}) \item \Cle{Opacite} pour régler l'opacité du fond de la rappéquerre ;\hfill~(défaut : \Cle{0.5}) \item le booléen \Cle{AfficheAngles} pour afficher les valeurs des angles ;\hfill~(défaut : \Cle{true}) \item le booléen \Cle{AfficheValeurs} pour afficher les valeurs des graduations.\hfill~(défaut : \Cle{true}) \end{itemize} -\vspace*{-\baselineskip}\leavevmode + +À noter que pour la clé \Cle{Rotation}, il est possible de préciser un deuxième point, et dans ce cas la clé sera précisée sous la forme \Cle{Rotation=auto/pt}. Dans \textbf{ce cas}, les points \textit{support} \textbf{devront} avoir été déclarés au préalable ! \end{tipblock} \begin{PresentationCode}{listing only} %environnement tikz +\coordinate (S) at (2,-10) ; +\coordinate (T) at (0,-10.5) ; \tkzRappEquerre[Fond,Ombre] \tkzRappEquerre[Origine={(-5,-9)},Rotation=150,Couleur=ForestGreen,Echelle=0.5,Ombre] -\tkzRappEquerre[Origine={(2,-10)},Rotation=-170,Couleur=DarkBlue, Largeur=4,Fond,AfficheValeurs=false,AfficheAngles=false,CouleurFond=DarkBlue] +\tkzRappEquerre[Origine=S,Rotation=auto/T,Couleur=DarkBlue, Largeur=4,Fond,AfficheValeurs=false,AfficheAngles=false,CouleurFond=DarkBlue] \end{PresentationCode} \begin{PresentationCode}{text only} \begin{tikzpicture} \affichegrille{-8}{7}{-11}{1} - \pointsutiles{(0,0),(-5,-9),(2,-10)} + \coordinate (S) at (2,-10) ; + \coordinate (T) at (0,-10.5) ; + \pointsutiles{(0,0),(-5,-9),(2,-10),(0,-10.5)} \tkzRappEquerre[Fond,Ombre] \tkzRappEquerre[Origine={(-5,-9)},Rotation=150,Couleur=ForestGreen,Echelle=0.5,Ombre] - \tkzRappEquerre[Origine={(2,-10)},Rotation=-170,Couleur=DarkBlue,Largeur=4,Fond,AfficheValeurs=false,AfficheAngles=false,CouleurFond=DarkBlue] + \tkzRappEquerre[Origine=S,Rotation=auto/T,Couleur=DarkBlue, Largeur=4,Fond,AfficheValeurs=false,AfficheAngles=false,CouleurFond=DarkBlue] \end{tikzpicture} \end{PresentationCode} diff --git a/graphics/pgf/contrib/outilsgeomtikz/tex/OutilsGeomTikz.sty b/graphics/pgf/contrib/outilsgeomtikz/tex/OutilsGeomTikz.sty index 0f90563a4b..29bc489b0f 100644 --- a/graphics/pgf/contrib/outilsgeomtikz/tex/OutilsGeomTikz.sty +++ b/graphics/pgf/contrib/outilsgeomtikz/tex/OutilsGeomTikz.sty @@ -2,7 +2,9 @@ % licence........: Released under the LaTeX Project Public License v1.3c or later, see http://www.latex-project.org/lppl.txtf \NeedsTeXFormat{LaTeX2e} -\ProvidesPackage{OutilsGeomTikz}[2023/05/22 v0.1.2 Outils geometriques en TikZ] +\ProvidesPackage{OutilsGeomTikz}[2023/10/18 v0.1.4 Outils geometriques en TikZ] +% 0.1.4 Possibilité de positionner les outils avec deux points (angle calculé automatiquement) +% 0.1.3 Ajout du pourcenteur % 0.1.2 Ajout de la règle-repère % 0.1.1 Correction d'un bug avec une ancienne syntaxe [join=...] % 0.1.0 Version initiale @@ -12,6 +14,7 @@ \RequirePackage{simplekv} \RequirePackage{xstring} \RequirePackage{nicefrac} +%\RequirePackage{tkz-euclide} %librairies tikz \usetikzlibrary{calc,positioning} @@ -53,7 +56,7 @@ Largeur=\def\REGLlargeur{#1},% Couleur=\def\REGLcouleur{#1},% CouleurFond=\def\REGLcouleurfond{#1},% - Origine=\def\REGLposOrigin{#1},% + Origine=\xdef\REGLposOrigin{#1},% Rotation=\def\REGLangle{#1},% Opacite=\def\REGLopac{#1},% PosVal=\def\REGLposval{#1} @@ -76,6 +79,12 @@ \NewDocumentCommand{\tkzRegle}{ O{} }{% \useKVdefault[RegleGeom]% \setKV[RegleGeom]{#1}% + \IfSubStr{\REGLangle}{auto/}% + {% + \StrBehind{\REGLangle}{/}[\tmppointdeux]% + \pgfmathanglebetweenpoints{\pgfpointanchor{\REGLposOrigin}{center}}{\pgfpointanchor{\tmppointdeux}{center}}% + \edef\REGLangle{\pgfmathresult}% + }{}% \xdef\REGLlongueur{\fpeval{max(3,\REGLlongueur)}}%valeurs mini \xdef\REGLlargeur{\fpeval{max(1.5,\REGLlargeur)}} \begin{scope}[shift={(\REGLposOrigin)},rotate=\REGLangle,scale=\REGLechelle] @@ -137,7 +146,13 @@ \useKVdefault[RegleRepereGeom]% \setKV[RegleRepereGeom]{#1}% \xdef\REGLREPlongueur{\fpeval{max(4,2*round(0.5*\REGLREPlongueur,0))}}%valeurs mini - \xdef\REGLREPlargeur{\fpeval{max(4,round(\REGLREPlargeur,0))}} + \xdef\REGLREPlargeur{\fpeval{max(4,round(\REGLREPlargeur,0))}}% + \IfSubStr{\REGLREPangle}{auto/}% + {% + \StrBehind{\REGLREPangle}{/}[\tmppointdeux]% + \pgfmathanglebetweenpoints{\pgfpointanchor{\REGLREPposOrigin}{center}}{\pgfpointanchor{\tmppointdeux}{center}}% + \edef\REGLREPangle{\pgfmathresult}% + }{}% \begin{scope}[shift={(\REGLREPposOrigin)},rotate=\REGLREPangle,scale=\REGLREPechelle] %bases de la règle-repère \ifboolKV[RegleRepereGeom]{Fond}% @@ -200,7 +215,13 @@ \useKVdefault[RequerreGeom]% \setKV[RequerreGeom]{#1}% \xdef\REQlongueur{\fpeval{max(6,\REQlongueur)}}%valeurs mini - \xdef\REQlargeur{\fpeval{max(1.5,\REQlargeur)}} + \xdef\REQlargeur{\fpeval{max(1.5,\REQlargeur)}}% + \IfSubStr{\REQangle}{auto/}% + {% + \StrBehind{\REQangle}{/}[\tmppointdeux]% + \pgfmathanglebetweenpoints{\pgfpointanchor{\REQposOrigin}{center}}{\pgfpointanchor{\tmppointdeux}{center}}% + \edef\REQangle{\pgfmathresult}% + }{}% \begin{scope}[shift={(\REQposOrigin)},rotate=\REQangle,scale=\REQechelle] \ifboolKV[RequerreGeom]{Fond} { @@ -250,14 +271,27 @@ Rotation=0,% AfficheValeurs=true,% Fond=false,% - Opacite=0.5 + Opacite=0.5,% + PetitCote=false } \NewDocumentCommand{\tkzEquerre}{ O{} }{% \useKVdefault[EquerreGeom]% \setKV[EquerreGeom]{#1}% \xdef\EQlongueur{\fpeval{max(4.5,\EQlongueur)}}%valeurs mini - \def\EQlargeur{\fpeval{\EQlongueur*tand(30)}} + \def\EQlargeur{\fpeval{\EQlongueur*tand(30)}}% + \IfSubStr{\EQangle}{auto/}% + {% + \StrBehind{\EQangle}{/}[\tmppointdeux]% + \pgfmathanglebetweenpoints{\pgfpointanchor{\EQposOrigin}{center}}{\pgfpointanchor{\tmppointdeux}{center}}% + \ifboolKV[EquerreGeom]{PetitCote}% + {% + \edef\EQangle{\pgfmathresult}% + }% + {% + \edef\EQangle{\fpeval{\pgfmathresult-90}}% + }% + }{}% \begin{scope}[shift={(\EQposOrigin)},rotate=\EQangle,scale=\EQechelle] \ifboolKV[EquerreGeom]{Fond} {% @@ -404,6 +438,82 @@ \end{scope} } +\defKV[Pourcenteur]{% + Echelle=\def\POURCechelle{#1},% + EchelleAngle=\def\POURCechangle{#1},% + Couleur=\def\POURCcouleur{#1},% + CouleurFond=\def\POURCcouleurfond{#1},% + Origine=\def\POURCposOrigin{#1},% + Rotation=\def\POURCangle{#1},% + Opacite=\def\POURCopac{#1} +} + +\setKVdefault[Pourcenteur]{% + Echelle=1,% + EchelleAngle=1,% + Couleur=black,% + CouleurFond=black,% + Origine={(0,0)},% + Rotation=0,% + AfficheValeurs=true,% + Fond=false,% + Opacite=0.5,% + Decoration=true +} + +\NewDocumentCommand{\tkzPourcenteur}{ O{} }{% + \useKVdefault[Pourcenteur]% + \setKV[Pourcenteur]{#1}% + \begin{scope}[shift={(\POURCposOrigin)},rotate=\POURCangle,scale=\POURCechelle,every node/.style={rotate=\POURCangle}] + \ifboolKV[Pourcenteur]{Fond} + {% + \fill[draw=none,fill=\POURCcouleurfond!10!white,fill opacity=\POURCopac] (0,0) circle[radius=3] ; + }% + {}% + \draw[\POURCcouleur,semithick] (0,0) circle[radius=3] ; + \draw[\POURCcouleur,semithick] ({-0.15*3},0)--({0.15*3},0) (0,{-0.15*3})--(0,{0.15*3}) ; + \foreach \pct in {0,1,...,199} + {\draw[\POURCcouleur,thin] ({0.5*\pct*3.6}:{3})--({0.5*\pct*3.6}:{3-0.2}) ;} + \foreach \pct in {0,10,...,90}{% + \draw[\POURCcouleur,thin] ({(\pct+1)*3.6}:{3})--({(\pct+1)*3.6}:{3-0.35}) ; + \filldraw[\POURCcouleur] ({(\pct+1)*3.6}:{3-0.35}) circle[fill=\POURCcouleur,radius=0.75pt] ; + \draw[\POURCcouleur,thin] ({(\pct+2)*3.6}:{3})--({(\pct+2)*3.6}:{3-0.35}) ; + \filldraw[\POURCcouleur] ({(\pct+2)*3.6}:{3-0.35}) circle[fill=\POURCcouleur,radius=0.75pt] ; + \draw[\POURCcouleur,thin] ({(\pct+3)*3.6}:{3})--({(\pct+3)*3.6}:{3-0.35}) ; + \filldraw[\POURCcouleur] ({(\pct+3)*3.6}:{3-0.35}) circle[fill=\POURCcouleur,radius=0.75pt] ; + \draw[\POURCcouleur,thin] ({(\pct+4)*3.6}:{3})--({(\pct+4)*3.6}:{3-0.35}) ; + \filldraw[\POURCcouleur] ({(\pct+4)*3.6}:{3-0.35}) circle[fill=\POURCcouleur,radius=0.75pt] ; + \draw[\POURCcouleur,thin] ({(\pct+6)*3.6}:{3})--({(\pct+6)*3.6}:{3-0.35}) ; + \filldraw[\POURCcouleur] ({(\pct+6)*3.6}:{3-0.35}) circle[fill=\POURCcouleur,radius=0.75pt] ; + \draw[\POURCcouleur,thin] ({(\pct+7)*3.6}:{3})--({(\pct+7)*3.6}:{3-0.35}) ; + \filldraw[\POURCcouleur] ({(\pct+7)*3.6}:{3-0.35}) circle[fill=\POURCcouleur,radius=0.75pt] ; + \draw[\POURCcouleur,thin] ({(\pct+8)*3.6}:{3})--({(\pct+8)*3.6}:{3-0.35}) ; + \filldraw[\POURCcouleur] ({(\pct+8)*3.6}:{3-0.35}) circle[fill=\POURCcouleur,radius=0.75pt] ; + \draw[\POURCcouleur,thin] ({(\pct+9)*3.6}:{3})--({(\pct+9)*3.6}:{3-0.35}) ; + \filldraw[\POURCcouleur] ({(\pct+9)*3.6}:{3-0.35}) circle[fill=\POURCcouleur,radius=0.75pt] ; + } + \foreach \pct in {5,10,15,20,30,35,40,45,55,60,65,70,80,85,90,95}{% + \draw[\POURCcouleur,semithick] ({\pct*3.6}:{3})--({\pct*3.6}:{3-0.5}) ; + \ifboolKV[Pourcenteur]{AfficheValeurs} + {\draw ({-\pct*3.6+90}:{3-0.6}) node[\POURCcouleur,rotate={-3.6*\pct},scale=\fpeval{0.8*\POURCechelle*\POURCechangle},font=\tiny] {\pct\,\%} ;}{} + } + \foreach \pct in {0,25,50,75}{% + \draw[\POURCcouleur,semithick] ({\pct*3.6}:{3})--({\pct*3.6}:{3-0.5}) ; + \ifboolKV[Pourcenteur]{AfficheValeurs} + {% + \draw ({-\pct*3.6+90}:{3-0.61}) node[\POURCcouleur,rotate={-3.6*\pct},scale=\fpeval{0.8*\POURCechelle*\POURCechangle},font=\scriptsize\bfseries] {\pct\,\%} ; + \draw ({-\pct*3.6+90}:{2+0.15}) node[\POURCcouleur,rotate={-3.6*\pct},scale=\fpeval{0.8*\POURCechelle*\POURCechangle},font=\tiny\bfseries] {\pct\,\%} ; + }{}% + } + \draw[\POURCcouleur,semithick] (0,1)--(0,2) (1.6,0)--(2,0) (0,-1.6)--(0,-2) (-1.6,0)--(-2,0) ; + \ifboolKV[Pourcenteur]{Decoration} + {% + \foreach \arccc in {0.8,0.9,...,1.9} {\draw[\POURCcouleur] (0,\arccc) arc (90:47:\arccc) ;} + }% + {}% + \end{scope} +} + %--------RappÉquerre (OK) \defKV[RapporteurEquerreGeom]{% Echelle=\def\RAPPEQechelle{#1},% @@ -435,6 +545,12 @@ \useKVdefault[RapporteurEquerreGeom]% \setKV[RapporteurEquerreGeom]{#1}% \xdef\RAPPEQlargeur{\fpeval{max(3,\RAPPEQlargeur)}}%valeurs mini + \IfSubStr{\RAPPEQangle}{auto/}% + {% + \StrBehind{\RAPPEQangle}{/}[\tmppointdeux]% + \pgfmathanglebetweenpoints{\pgfpointanchor{\RAPPEQposOrigin}{center}}{\pgfpointanchor{\tmppointdeux}{center}}% + \edef\RAPPEQangle{\pgfmathresult}% + }{}% \begin{scope}[shift={(\RAPPEQposOrigin)},rotate=\RAPPEQangle,scale=\RAPPEQechelle,every node/.style={rotate=\RAPPEQangle}] %fond \ifboolKV[RapporteurEquerreGeom]{Fond} -- cgit v1.2.3