diff options
Diffstat (limited to 'Master/texmf-dist/tex/latex/tkz-euclide/tkz-obj-eu-lines.tex')
-rw-r--r-- | Master/texmf-dist/tex/latex/tkz-euclide/tkz-obj-eu-lines.tex | 99 |
1 files changed, 52 insertions, 47 deletions
diff --git a/Master/texmf-dist/tex/latex/tkz-euclide/tkz-obj-eu-lines.tex b/Master/texmf-dist/tex/latex/tkz-euclide/tkz-obj-eu-lines.tex index c8137bcc6e8..6bdecebee9a 100644 --- a/Master/texmf-dist/tex/latex/tkz-euclide/tkz-obj-eu-lines.tex +++ b/Master/texmf-dist/tex/latex/tkz-euclide/tkz-obj-eu-lines.tex @@ -1,5 +1,5 @@ % tkz-obj-eu-lines.tex -% Copyright 2020 Alain Matthes +% Copyright 2022 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. @@ -7,15 +7,12 @@ % 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. -% utf8 encoding -\def\fileversion{3.06c} -\def\filedate{2020/03/18} -\typeout{2020/03/18 3.06c tkz-obj-eu-lines.tex} +\def\fileversion{4.00} +\def\filedate{2022/01/04} +\typeout{2022/01/04 4.00 tkz-obj-eu-lines.tex} \makeatletter %<--------------------------------------------------------------------------–> % les lignes @@ -32,6 +29,10 @@ bisector/.code = \def\tkz@numl{3}, bisector out/.code = \def\tkz@numl{4}, symmedian/.code = \def\tkz@numl{5}, + tangent at/.code = {#1}{\def\tkz@numl{6} \def\tkz@ptat{#1}}, + tangent from/.code = {#1}{\def\tkz@numl{7} \def\tkz@ptfrom{#1}}, + median/.code = \def\tkz@numl{8}, + altitude/.code = \def\tkz@numl{9}, K/.code = \def\tkz@koeff{#1}, K = 1, normed/.is if = tkz@line@normed, @@ -39,7 +40,6 @@ normed = false, mediator } - \def\tkzDefLine{\pgfutil@ifnextchar[{\tkz@DefLine}{\tkz@DefLine[]}} \def\tkz@DefLine[#1](#2){% \begingroup @@ -49,7 +49,7 @@ % first case 0 \tkzDefMediatorLine(#2) \or% 1 - \tkzDefOrthLine[\tkz@koeff](#2)(\tkz@through) + \tkzDefOrthLine[\tkz@koeff](#2) \or% 2 \tkzDefLineLL(#2) \or% 3 @@ -58,6 +58,10 @@ \tkzDefBisectorOutLine(#2) \or% 5 \tkzDefSymmedianLine(#2) + \or% 6 + \tkzTgtAt(#1)(#2) + \or% 7 + \tkzTgtFromP(#1)(#2) \fi \endgroup } @@ -74,7 +78,7 @@ \pgfinterruptboundingbox \path[coordinate](\tkz@through)--++(\tkz@koeff\pgf@xa,\tkz@koeff\pgf@ya)% coordinate (tkzPointResult); - \endpgfinterruptboundingbox + \endpgfinterruptboundingbox \iftkz@line@normed \tkzVecKNorm(\tkz@through,tkzPointResult) \fi @@ -90,9 +94,9 @@ \pgfnodealias{tkz@OLtmp}{tkzPointResult} \tkz@VecKCoLinear[\tkz@koeff](#2,tkz@OLtmp,\tkz@through) \iftkz@line@normed - \pgfinterruptboundingbox + \pgfinterruptboundingbox \tkzVecKNorm(\tkz@through,tkzPointResult) - \endpgfinterruptboundingbox + \endpgfinterruptboundingbox \fi \endgroup}% %<--------------------------------------------------------------------------–> @@ -105,7 +109,7 @@ \begingroup \tkzDefEquilateral(#2,#3) \pgfnodealias{tkzFirstPointResult}{tkzPointResult} - \tkzDefEquilateral(#3,#2) + \tkzDefEquilateral(#3,#2) \pgfnodealias{tkzSecondPointResult}{tkzPointResult} \ifx\tkz@koeff=1 % \else @@ -119,12 +123,12 @@ \iftkz@line@normed \tkzDefMidPoint(#2,#3) \pgfnodealias{tkz@mid}{tkzPointResult} - \pgfinterruptboundingbox + % \pgfinterruptboundingbox \tkzVecKNorm[\tkz@koeff](tkz@mid,tkzFirstPointResult) \pgfnodealias{tkzFirstPointResult}{tkzPointResult} \tkzVecKNorm[\tkz@koeff](tkz@mid,tkzSecondPointResult) \pgfnodealias{tkzSecondPointResult}{tkzPointResult} - \endpgfinterruptboundingbox + % \endpgfinterruptboundingbox \fi \endgroup} % autre possibilité @@ -134,10 +138,11 @@ %<--------------------------------------------------------------------------–> \def\tkzDefBisectorLine(#1,#2,#3){% \begingroup - \pgfinterruptboundingbox + \pgfinterruptboundingbox \tkzDuplicateSegment(#2,#1)(#2,#3) \pgfnodealias{bi@tmp}{tkzPointResult} - \tkzDefEquilateral(bi@tmp,#1) + \tkzDefMidPoint(bi@tmp,#1) +% \tkzDefEquilateral(bi@tmp,#1) \ifx\tkz@koeff=1 % \else \tkzVecK[\tkz@koeff](#2,tkzPointResult) @@ -145,7 +150,7 @@ \iftkz@line@normed \tkzVecKNorm[\tkz@koeff](#2,tkzPointResult) \fi - \endpgfinterruptboundingbox + \endpgfinterruptboundingbox \endgroup } %<--------------------------------------------------------------------------–> @@ -153,7 +158,7 @@ %<--------------------------------------------------------------------------–> \def\tkzDefBisectorOutLine(#1,#2,#3){% \begingroup - \pgfinterruptboundingbox + \pgfinterruptboundingbox \tkzDuplicateLength(#2,#1)(#2,#3) \pgfnodealias{out@tmp}{tkzPointResult} \tkzDefMidPoint(#1,out@tmp) @@ -166,7 +171,7 @@ \iftkz@line@normed \tkzVecKNorm[\tkz@koeff](#2,tkzPointResult) \fi - \endpgfinterruptboundingbox + \endpgfinterruptboundingbox \endgroup } %<--------------------------------------------------------------------------–> @@ -178,7 +183,7 @@ \pgfnodealias{sym@pt1}{tkzPointResult} \tkzDefMidPoint(#1,#3) \pgfnodealias{sym@pt2}{tkzPointResult} - \tkzUSymOrth(#2,sym@pt1)(sym@pt2) + \tkzUSymOrth(#2,sym@pt1)(sym@pt2) \ifx\tkz@koeff=1 % \else \tkzVecK[\tkz@koeff](#2,tkzPointResult) @@ -188,43 +193,43 @@ \fi \endgroup } -%<-------------------------------------------------------------------------–> %<--------------------------------------------------------------------------–> % tangente à cercle passant par un point donné %<--------------------------------------------------------------------------–> -\def\tkzTgtFromPR(#1,#2)(#3){% - \begingroup - \tkzDefMidPoint(#1,#3) - \tkzCalcLength(tkzPointResult,#1) - \tkzInterCCR(#1,#2)(tkzPointResult,\tkzLengthResult pt){% - tkzFirstPointResult}{% - tkzSecondPointResult}% - \endgroup + +\def\tkzTgtAt(#1)(#2){% +\begingroup + \tkz@VecKOrthNorm[-1](#2,#1) + \endgroup } - +%<-------------------------------------------------------------------------–> \def\tkzTgtFromP(#1,#2)(#3){% - \begingroup +\begingroup \tkzDefMidPoint(#1,#3) - \tkzCalcLength(#1,#2) - \tkzGetLength{tkz@radone}% - \tkzCalcLength(tkzPointResult,#1) - \tkzGetLength{tkz@radtwo}% - \tkzInterCCR(#1,\tkz@radone pt)(tkzPointResult,\tkz@radtwo pt){% + \tkz@@CalcLengthcm(#1,#2){tkz@radone} + \tkz@@CalcLengthcm(tkzPointResult,#1){tkz@radtwo} + \tkzInterCCR(#1,\tkz@radone)(tkzPointResult,\tkz@radtwo){% tkzFirstPointResult}{% tkzSecondPointResult}% - \endgroup -} -\def\tkzTgtAt(#1)(#2){% +\endgroup +} +%<-------------------------------------------------------------------------–> +\def\tkzTgtFromPR(#1,#2)(#3){% \begingroup - \tkz@VecKOrthNorm[-1](#2,#1) - \endgroup -} %<--------------------------------------------------------------------------–> %<--------------------------------------------------------------------------–> + \tkzDefMidPoint(#1,#3) + \tkz@@CalcLengthcm(tkzPointResult,#1){tkzLengthResult} + \tkzInterCCR(#1,#2)(tkzPointResult,\tkzLengthResult){% + tkzFirstPointResult}{% + tkzSecondPointResult}% +\endgroup +} +%<--------------------------------------------------------------------------–> \def\tkz@numtang{0} \pgfkeys{/tkz@tang/.cd, - at/.code = {\def\tkz@numtang{0}\def\tkz@ptat{#1}}, - from/.code = {\def\tkz@numtang{1}\def\tkz@ptfrom{#1}}, - from with R/.code = {\def\tkz@numtang{2}\def\tkz@ptfrom{#1}} - } + at/.code = {\def\tkz@numtang{0}\def\tkz@ptat{#1}}, + from/.code = {\def\tkz@numtang{1}\def\tkz@ptfrom{#1}}, + from with R/.code = {\def\tkz@numtang{2}\def\tkz@ptfrom{#1}} + } %<--------------------------------------------------------------------------–> \def\tkzDefTangent{\pgfutil@ifnextchar[{\tkz@Tangent}{\tkz@Tangent[]}} |