diff options
author | Karl Berry <karl@freefriends.org> | 2011-06-06 17:17:55 +0000 |
---|---|---|
committer | Karl Berry <karl@freefriends.org> | 2011-06-06 17:17:55 +0000 |
commit | 1116c441adede647c4931c6553046c8d9eb53e0c (patch) | |
tree | eecba89f578294208292dcfcc70db6b8fb3432e8 /Master/texmf-dist/tex/latex/tkz-euclide/tkz-obj-protractor.tex | |
parent | 68598d9c664b3d4c11acabdd625b410e3f3d696a (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.tex | 203 |
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 + |