summaryrefslogtreecommitdiff
path: root/Master/texmf-dist/tex/latex/tkz-euclide/tkz-obj-protractor.tex
diff options
context:
space:
mode:
authorKarl Berry <karl@freefriends.org>2011-06-06 17:17:55 +0000
committerKarl Berry <karl@freefriends.org>2011-06-06 17:17:55 +0000
commit1116c441adede647c4931c6553046c8d9eb53e0c (patch)
treeeecba89f578294208292dcfcc70db6b8fb3432e8 /Master/texmf-dist/tex/latex/tkz-euclide/tkz-obj-protractor.tex
parent68598d9c664b3d4c11acabdd625b410e3f3d696a (diff)
new graphics package tkz-euclide (5jun11)
git-svn-id: svn://tug.org/texlive/trunk@22830 c570f23f-e606-0410-a88d-b1316a301751
Diffstat (limited to 'Master/texmf-dist/tex/latex/tkz-euclide/tkz-obj-protractor.tex')
-rw-r--r--Master/texmf-dist/tex/latex/tkz-euclide/tkz-obj-protractor.tex203
1 files changed, 203 insertions, 0 deletions
diff --git a/Master/texmf-dist/tex/latex/tkz-euclide/tkz-obj-protractor.tex b/Master/texmf-dist/tex/latex/tkz-euclide/tkz-obj-protractor.tex
new file mode 100644
index 00000000000..04d4e3b3b95
--- /dev/null
+++ b/Master/texmf-dist/tex/latex/tkz-euclide/tkz-obj-protractor.tex
@@ -0,0 +1,203 @@
+% 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{1.16 c}
+\def\filedate{2011/06/01}
+
+%<--------------------------------------------------------------------------–>
+% !!! 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\HalfProtractor{%
+\tkzActivOff
+ \draw [fill=black!50!blue!20!,even odd rule,semitransparent](-160:5cm) -- (-20:5cm) arc (-20:200:5cm) -- cycle %
+ (-180:3.5cm) -- (0:3.5cm) arc (0:180:3.5cm) -- cycle;%
+
+ \draw (-90:0.3cm) -- (0,0)
+ (-135:0.3cm) -- (0,0)
+ (-45:0.3cm) -- (0,0);
+\foreach \MO@i in {0,1,...,180}
+\pgfmathparse{ 4.8 * (mod(\MO@i ,5)==0) + 4.9 * (mod(\MO@i ,5)>0) }
+\draw (\MO@i:\pgfmathresult cm)--(\MO@i:5cm);
+
+ \foreach \d in {0,1,...,180}
+ \pgfmathparse{3.7 * (mod(\d,5)==0) + 3.6 * (mod(\d,5)>0)}
+ \draw (\d:\pgfmathresult cm)--(\d:3.5cm);
+
+\draw (0: 4.6cm) node[font=\small] {0}
+ (0: 4cm) node[font=\small] {180};
+
+\foreach \d in {10,20,...,80}
+ \pgfmathtruncatemacro{\rang}{180 - \d }
+ \draw (\d:3.9 cm) node[font=\tiny] {\rang}
+ (\d:4.6 cm) node[font=\tiny] {\d};
+
+\draw (90: 4.25cm) node[font=\small] {90};
+\draw (90: 4.6 cm) -- (90:5cm)
+ (90: 3.9 cm) -- (90:3.5cm) ;
+
+\foreach \d in {100,110,...,170}
+ \pgfmathtruncatemacro{\rang}{180 - \d }
+ \draw (\d:3.9 cm) node[font=\tiny] {\rang}
+ (\d:4.6 cm) node[font=\tiny] {\d};
+
+ \draw (180: 4.5cm) node[font=\small] {180}
+ (180: 3.9cm) node[font=\small] {0};
+\tkzActivOn
+}
+
+\def\FullProtractor{%
+\tkzActivOff
+\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{%
+\tkzActivOff
+\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);
+\tkzActivOn
+}
+
+\newif\iftkz@RappReturn
+\newif\iftkz@RappFull
+\pgfkeys{
+ protractor/.cd,
+ with/.is choice,
+ with/full/.code = {\global\let\tkz@@Protractor\FullProtractor
+ \tkz@RappFulltrue},
+ with/half/.code = {\global\let\tkz@@Protractor\HalfProtractor
+ \tkz@RappFullfalse},
+ with/.default = full,
+ 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
+ }
+\def\tkzOriProtractor{\pgfutil@ifnextchar[{\tkz@OriProtractor}{%
+ \tkz@OriProtractor[]}}
+\def\tkz@OriProtractor[#1]{
+ \pgfkeys{/protractor/.cd,
+ with=full,
+ shift={(0,0)},
+ rotate=0,
+ lw=0.4pt,
+ scale =1,
+ return=false
+ }
+ \pgfqkeys{/protractor}{#1}
+ \pgfmathsetlengthmacro{\MO@lw}{\cmdMO@Rap@lw * \cmdMO@Rap@scale}
+ \begin{scope}[shift = \cmdMO@Rap@shift,%
+ 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}
+}
+\def\tkzProtractor{\pgfutil@ifnextchar[{\tkz@Protractor}{\tkz@Protractor[]}}
+\def\tkz@Protractor[#1](#2,#3){
+ \pgfkeys{/protractor/.cd,
+ with=full,
+ 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@RappFull
+\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}
+\else
+ \iftkz@RappReturn%
+ \pgfmathsubtract{\cmdMO@Rap@rotate}{180}
+ \let\cmdMO@Rap@rotate\pgfmathresult
+ \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}
+\fi
+}
+
+%<--------------------------------------------------------------------------–>
+% fin de \tkzProtractor
+%<--------------------------------------------------------------------------–>
+\endinput
+