diff options
Diffstat (limited to 'Master/texmf-dist/tex/latex/tkz-euclide/tkz-draw-eu-compass.tex')
-rw-r--r-- | Master/texmf-dist/tex/latex/tkz-euclide/tkz-draw-eu-compass.tex | 100 |
1 files changed, 100 insertions, 0 deletions
diff --git a/Master/texmf-dist/tex/latex/tkz-euclide/tkz-draw-eu-compass.tex b/Master/texmf-dist/tex/latex/tkz-euclide/tkz-draw-eu-compass.tex new file mode 100644 index 00000000000..76f3a888be1 --- /dev/null +++ b/Master/texmf-dist/tex/latex/tkz-euclide/tkz-draw-eu-compass.tex @@ -0,0 +1,100 @@ +% tkz-obj-eu-compass.tex +% Copyright 2023 Alain Matthes +% This work may be distributed and/or modified under the +% conditions of the LaTeX Project Public License, either version 1.3 +% of this license or (at your option) any later version. +% The latest version of this license is in +% http://www.latex-project.org/lppl.txt +% and version 1.3 or later is part of all distributions of LaTeX +% version 2005/12/01 or later. +% This work has the LPPL maintenance status “maintained”. +% The Current Maintainer of this work is Alain Matthes. + +\def\fileversion{5.00c} +\def\filedate{2023/01/23} +\typeout{2023/01/23 5.00c tkz-obj-eu-compass.tex} +\makeatletter +%<--------------------------------------------------------------------------–> +% Author Alain Matthes +% idea from Y. Combe +%<--------------------------------------------------------------------------–> +%<--------------------------------------------------------------------------–> +% Utilisation du Compas : Compass +%<--------------------------------------------------------------------------–> +% Setup Compass +%<--------------------------------------------------------------------------–> +\pgfkeys{tkzsucompass/.cd, + line width/.store in = \tkz@compass@lw, + color/.store in = \tkz@compass@color, + style/.store in = \tkz@compass@style, + line width = \tkz@euc@compasswidth, + color = \tkz@euc@compasscolor, + style = \tkz@euc@compassstyle, + /tkzsucompass/.search also = {/tikz,/tkzcompass} + } +%<--------------------------------------------------------------------------–> +\def\tkzSetUpCompass{\pgfutil@ifnextchar[{\tkz@SetUpCompass}{\tkz@SetUpCompass[]}} +%<--------------------------------------------------------------------------–> +\def\tkz@SetUpCompass[#1]{% +\pgfqkeys{/tkzsucompass}{#1} +\tikzset{compass style/.style={% + color = \tkz@compass@color, + line width = \tkz@compass@lw, + style = \tkz@compass@style + }} +} +%<--------------------------------------------------------------------------–> +% \tkzCompass(A, B) +% +% Marque de compas auto-ajustée en longueur +% #2 center #3 le point +% Par défaut: +% longueur : 1cm, mais avec un maximum d'un angle de 180° +% angle calculé pour la longueur +% style traits pleins + +%<--------------------------------------------------------------------------–> + \pgfkeys{/tkzcompass/.cd, + delta/.store in = \tkz@delta, + length/.store in = \tkz@length, + length = 1, + delta = 0, + /tkzcompass/.unknown/.code = {\let\searchname=\pgfkeyscurrentname + \pgfkeysalso{\searchname/.try=#1, /tikz/\searchname/.retry=#1}} +} + +\def\tkzCompass{\pgfutil@ifnextchar[{\tkz@Compass}{\tkz@Compass[]}} +\def\tkz@Compass[#1](#2,#3){% +\begingroup +\pgfkeys{tkzcompass/.cd,#1} +\tkz@@CalcLength(#2,#3){tkz@tempLen} +\ifnum\tkz@delta=0 % + \pgfmathsetmacro{\tkz@delta}{min(deg(\tkz@length cm/ \tkz@tempLen pt),180)/2} +\fi +\tkzFindSlopeAngle(#2,#3)\tkzGetAngle{tkz@angle}% +\draw[shift ={(#2)},compass style,/tkzcompass/.cd,#1]% + (\tkz@angle-\tkz@delta:\tkz@tempLen pt)% + arc (\tkz@angle-\tkz@delta:\tkz@angle+\tkz@delta:\tkz@tempLen pt); +\endgroup} +%<--------------------------------------------------------------------------–> +\def\tkz@multiCompass#1 #2\@nil{% + \protected@edef\tkz@temp{ + \noexpand \tkzCompass[\tkz@optcompass](#1)}\tkz@temp% + \def\tkz@nextArg{#2}% + \ifx\tkzutil@empty\tkz@nextArg + \let\next\@gobble + \fi + \next#2\@nil +} +\def\tkzCompasss{\pgfutil@ifnextchar[{\tkz@Compasss}{\tkz@Compasss[]}} + +\def\tkz@Compasss[#1](#2){% +\global\edef\tkz@optcompass{#1} +\begingroup + \let\next\tkz@multiCompass + \next#2 \@nil % +\endgroup +}% + +\makeatother +\endinput
\ No newline at end of file |