diff options
Diffstat (limited to 'Master/texmf-dist/tex/latex/tkz-euclide/tkz-obj-eu-protractor.tex')
-rw-r--r-- | Master/texmf-dist/tex/latex/tkz-euclide/tkz-obj-eu-protractor.tex | 116 |
1 files changed, 116 insertions, 0 deletions
diff --git a/Master/texmf-dist/tex/latex/tkz-euclide/tkz-obj-eu-protractor.tex b/Master/texmf-dist/tex/latex/tkz-euclide/tkz-obj-eu-protractor.tex new file mode 100644 index 00000000000..eaeca969fc1 --- /dev/null +++ b/Master/texmf-dist/tex/latex/tkz-euclide/tkz-obj-eu-protractor.tex @@ -0,0 +1,116 @@ +% tkz-obj-eu-protractor.tex +% Copyright 2011 by Alain Matthes +% This file may be distributed and/or modified +% 1. under the LaTeX Project Public License and/or +% 2. under the GNU Public License. +\def\fileversion{3.01c} +\def\filedate{2020/01/23} + \typeout{2020/01/23 3.01c tkz-obj-eu-protractor.tex} +\makeatletter +%<--------------------------------------------------------------------------–> +% !!! idea from Y. Combe !!! +%<--------------------------------------------------------------------------–> +% \tkzProtractor Protractor +% +% Rapporteur ajustable et positionable +% +% Par défaut: +% centre en (0,0) +% rayon de 5 cm +% ligne de base horizontale. +% épaisseur de ligne 0.4 pt +% +% Paramètres (optionnels, gérés par xkeyval) +% shift : coordonées (n'importe quelle forme +% acceptée par tikz). +% scale : facteur d'échelle +% rotate : rotation +% lw : line width (épaisseur des lignes) +% ce paramètre subit le facteur d'échelle. +%<--------------------------------------------------------------------------–> +\def\FullProtractor{% +\draw[fill=black!50!yellow!20!,even odd rule,semitransparent]% + (0,0) circle (4cm); +\draw (0,0) circle (3.3cm); +\draw (0,0) circle (4cm); +\draw[fill=black] (0,0) circle (.08mm); +\node[draw, circle, inner sep=.2mm] (a) at (0,0) {}; +\foreach \x in {0, 90, ..., 360}{% + \draw[very thin, gray!40] (a) -- (\x:4cm);} +\foreach \x in {0,...,359} {\draw (\x:3.8cm) -- (\x:4cm);} +\foreach \x in {0,5,...,355} {\draw (\x:3.725cm) -- (\x:4cm);} +\foreach \x in {0,10,...,350}{% + \node[rotate=(\x-90)] at (\x:3.6cm) {\tiny\x}; +} + \draw [>=stealth',->, thick,black] (0:2.5) arc(0:32:2.5); + \draw [>=stealth',->, thick,black] (0:2) arc(0:32:2); + \draw [>=stealth',->, thick,black] (0:1.5) arc(0:32:1.5); +\tkzActivOn +} + +\def\FullProtractorReturn{% +\draw[fill=black!50!yellow!20!,even odd rule,semitransparent] (0,0) circle (4cm); +\draw (0,0) circle (3.3cm); +\draw (0,0) circle (4cm); +\draw[fill=black] (0,0) circle (.08mm); +\node[draw, circle, inner sep=.2mm] (a) at (0,0) {}; +\foreach \x in {0, 90, ..., 360}{% + \draw[very thin, gray!40] (a) -- (\x:4cm);} +\foreach \x in {0,...,359} {\draw (\x:3.8cm) -- (\x:4cm);} +\foreach \x in {0,5,...,355} {\draw (\x:3.725cm) -- (\x:4cm);} +\begin{scope} + \foreach \x in {0,10,...,350}{% + \node[rotate=(-\x-90)] at (-\x:3.6cm) {\tiny\x}; +} + \end{scope} + \draw [>=stealth',->, thick,black] (0:2.5) arc(0:-32:2.5); + \draw [>=stealth',->, thick,black] (0:2) arc(0:-32:2); + \draw [>=stealth',->, thick,black] (0:1.5) arc(0:-32:1.5); +} +\global\let\tkz@@Protractor\FullProtractor +\pgfkeys{ + protractor/.cd, + lw/.code = {\def\cmdMO@Rap@lw{#1}}, + shift/.code = {\def\cmdMO@Rap@shift{#1}}, + rotate/.code = {\def\cmdMO@Rap@rotate{#1}}, + scale/.code = {\def\cmdMO@Rap@scale{#1}}, + return/.is if = tkz@RappReturn, + return/.default = true, + /protractor/.search also={/tikz} + } + + +\def\tkzProtractor{\pgfutil@ifnextchar[{\tkz@Protractor}{\tkz@Protractor[]}} +\def\tkz@Protractor[#1](#2,#3){% + \pgfkeys{% + /protractor/.cd, + shift={(0,0)}, + rotate=0, + lw=0.4pt, + scale =1, + return=false + } +\pgfqkeys{/protractor}{#1} + \tkz@@extractxy{#2} + \global\tkz@ax\pgf@x + \global\tkz@ay\pgf@y + \tkzFindSlopeAngle(#2,#3)\tkzGetAngle{cmdMO@Rap@rotate}% +\iftkz@RappReturn + \global\let\tkz@@Protractor\FullProtractorReturn + \fi + \pgfmathsetlengthmacro{\MO@lw}{\cmdMO@Rap@lw * \cmdMO@Rap@scale} + \begin{scope}[shift = {(\tkz@ax,\tkz@ay)},% + scale = \cmdMO@Rap@scale,% + rotate = \cmdMO@Rap@rotate,% + every node/.style = {scale =\cmdMO@Rap@scale, + rotate =\cmdMO@Rap@rotate},% + line width=\MO@lw]% + \tkz@@Protractor +\end{scope} +} +%<--------------------------------------------------------------------------–> +% fin de \tkzProtractor +%<--------------------------------------------------------------------------–> +\makeatother +\endinput + |