summaryrefslogtreecommitdiff
path: root/Master/texmf-dist/tex/latex/tkz-euclide/tkz-obj-eu-protractor.tex
diff options
context:
space:
mode:
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.tex116
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
+