diff options
author | Norbert Preining <norbert@preining.info> | 2022-07-16 03:00:55 +0000 |
---|---|---|
committer | Norbert Preining <norbert@preining.info> | 2022-07-16 03:00:55 +0000 |
commit | 24ae0c3844b308d81bc4684e57817d43c0b29a13 (patch) | |
tree | 91058aa850845b445f48d52794ce128c9b0d419f /macros/latex/contrib/tkz/tkz-euclide/latex/tkz-obj-eu-circles.tex | |
parent | 672664411215c14fc71db763da169731d3c6a361 (diff) |
CTAN sync 202207160300
Diffstat (limited to 'macros/latex/contrib/tkz/tkz-euclide/latex/tkz-obj-eu-circles.tex')
-rw-r--r-- | macros/latex/contrib/tkz/tkz-euclide/latex/tkz-obj-eu-circles.tex | 166 |
1 files changed, 54 insertions, 112 deletions
diff --git a/macros/latex/contrib/tkz/tkz-euclide/latex/tkz-obj-eu-circles.tex b/macros/latex/contrib/tkz/tkz-euclide/latex/tkz-obj-eu-circles.tex index 8eb9ce62cf..3b309afa48 100644 --- a/macros/latex/contrib/tkz/tkz-euclide/latex/tkz-obj-eu-circles.tex +++ b/macros/latex/contrib/tkz/tkz-euclide/latex/tkz-obj-eu-circles.tex @@ -10,9 +10,9 @@ % This work has the LPPL maintenance status “maintained”. % The Current Maintainer of this work is Alain Matthes. -\def\fileversion{4.051b} -\def\filedate{2022/02/25} -\typeout{2022/02/25 4.051b tkz-obj-eu-circles.tex} +\def\fileversion{4.2c} +\def\filedate{2022/07/14} +\typeout{2022/07/14 4.2c tkz-obj-eu-circles.tex} \makeatletter %<--------------------------------------------------------------------------–> % tkzCircle center and one point @@ -23,31 +23,30 @@ % through instead of radius \def\tkz@numc{0} \pgfkeys{/tkzcircle/.cd, - through/.code = \def\tkz@numc{0}, - radius/.code = \def\tkz@numc{0}, - diameter/.code = \def\tkz@numc{1}, - circum/.code = \def\tkz@numc{2}, - in/.code = \def\tkz@numc{3}, - ex/.code = \def\tkz@numc{4}, - euler/.code = \def\tkz@numc{5}, - nine/.code = \def\tkz@numc{5}, - apollonius/.code = \def\tkz@numc{6}, - orthogonal from/.code args = {#1}{\def\tkz@ptfrom{#1} - \def\tkz@numc{7}}, - orthogonal through/.code args = {#1 and #2}{\def\tkz@ptone{#1} - \def\tkz@pttwo{#2} - \def\tkz@numc{8}}, - spieker/.code = \def\tkz@numc{9}, - K/.code = \def\tkz@koeff{#1}, - K = 1, - through + R/.code = \def\tkz@numc{0}, + diameter/.code = \def\tkz@numc{1}, + circum/.code = \def\tkz@numc{2}, + in/.code = \def\tkz@numc{3}, + ex/.code = \def\tkz@numc{4}, + euler/.code = \def\tkz@numc{5}, + nine/.code = \def\tkz@numc{5}, + apollonius/.code = \def\tkz@numc{6}, + spieker/.code = \def\tkz@numc{7}, + orthogonal from/.code args = {#1}{\gdef\tkz@numc{8} + \def\tkz@ptfrom{#1}}, + orthogonal through/.code args = {#1 and #2}{\gdef\tkz@numc{9} + \def\tkz@ptone{#1} + \def\tkz@pttwo{#2}}, + K/.code = \def\tkz@koeff{#1}, + K = 1, + circum } \def\tkzDefCircle{\pgfutil@ifnextchar[{\tkz@DefCircle}{\tkz@DefCircle[]}} \def\tkz@DefCircle[#1](#2){% \begingroup \pgfqkeys{/tkzcircle}{#1} \ifcase\tkz@numc% - \tkzDefCircleThrough(#2)% + \tkzDefCircleR(#2) \or% 1 \tkzDefCircleD(#2) \or% 2 @@ -61,21 +60,24 @@ \or% 6 \tkzDefApolloniusCircle(#2) \or% 7 - \tkzDefOrthogonalCircle(#2,\tkz@ptfrom) - \or% 8 - \tkzDefOrthoThroughCircle(#2,\tkz@ptone,\tkz@pttwo) - \or% 9 \tkzDefSpiekerCircle(#2) + \or% 8 + \tkzDefOrthogonalCircle(#2,\tkz@ptfrom) + \or% 9 + \tkzDefOrthoThroughCircle(#2,\tkz@ptone,\tkz@pttwo) \fi \endgroup } %for compatibility %<--------------------------------------------------------------------------–> +% R +%<--------------------------------------------------------------------------–> \def\tkzDefCircleR(#1,#2){% \begingroup \edef\tkzLengthResult{\fpeval{round(#2,5)}} \global\let\tkzLengthResult\tkzLengthResult - \tkzRenamePoint(#1){tkzPointResult} + \path (#1)--++(\tkzLengthResult,0) coordinate (tkzSecondPointResult); + \tkzRenamePoint(tkzSecondPointResult){tkzPointResult} \endgroup } %<--------------------------------------------------------------------------–> @@ -83,16 +85,20 @@ %<--------------------------------------------------------------------------–> \def\tkzDefCircleThrough(#1,#2){% \begingroup - \tkz@@CalcLengthcm(#1,#2){tkzLengthResult} - \tkzRenamePoint(#1){tkzPointResult} + \tkz@@CalcLengthcm(#1,#2){tkzLengthResult} + \node [draw,circle through=(#2)] at (#1) {}; + \tkzRenamePoint(#1){tkzPointResult} \endgroup } + %<--------------------------------------------------------------------------–> % Diameter Circle %<--------------------------------------------------------------------------–> \def\tkzDefCircleD(#1,#2){% \begingroup \tkzDefMidPoint(#1,#2) + \pgfnodealias{tkzFirstPointResult}{tkzPointResult} + \pgfnodealias{tkzSecondPointResult}{#2} \tkz@@CalcLengthcm(#1,tkzPointResult){tkzLengthResult} \endgroup } @@ -101,8 +107,10 @@ %<--------------------------------------------------------------------------–> \def\tkzDefCircumCircle(#1,#2,#3){% \begingroup - \tkzCircumCenter(#1,#2,#3) - \tkz@@CalcLengthcm(#1,tkzPointResult){tkzLengthResult}%3.06 add [cm] + \tkzCircumCenter(#1,#2,#3) + \tkzRenamePoint(tkzPointResult){tkzFirstPointResult} + \tkzRenamePoint(#1){tkzSecondPointResult} + \tkz@@CalcLengthcm(#1,tkzPointResult){tkzLengthResult}%3.06 add [cm] \endgroup } %<--------------------------------------------------------------------------–> @@ -152,6 +160,8 @@ \tkzDefMidPoint(#2,#3) \pgfnodealias{tkz@e2}{tkzPointResult} \tkzDefMidPoint(#1,#3) \pgfnodealias{tkz@e3}{tkzPointResult} \tkzCircumCenter(tkz@e1,tkz@e2,tkz@e3) + \pgfnodealias{tkzFirstPointResult}{tkzPointResult} + \tkzRenamePoint(tkz@e1){tkzSecondPointResult} \tkz@@CalcLengthcm(tkzPointResult,tkz@e1){tkzLengthResult} \endgroup } @@ -163,7 +173,7 @@ \tkzEulerCenter(#1,#2,#3) \pgfnodealias{eur@pta}{tkzPointResult} \tkzDefMidPoint(#1,#2) - \tkz@@CalcLengthcm(eur@pta,tkzPointResult){tkzLengthResult} + \tkz@@CalcLengthcm(eur@pta,tkzPointResult){tkzLengthResult} \endgroup } %<--------------------------------------------------------------------------–> @@ -172,66 +182,16 @@ \def\tkzDefApolloniusCircle(#1,#2){% \begingroup \tkz@VecK[\tkz@koeff/(1+\tkz@koeff)](#1,#2) - \pgfnodealias{tkzFirstPointResult}{tkzPointResult} - \tkz@VecK[\tkz@koeff/(\tkz@koeff-1)](#1,#2) - \pgfnodealias{tkzSecondPointResult}{tkzPointResult} - \tkzDefMidPoint(tkzFirstPointResult,tkzSecondPointResult) - \tkz@@CalcLengthcm(tkzPointResult,tkzFirstPointResult){tkzLengthResult} -\endgroup -} -%<--------------------------------------------------------------------------–> -% Apollonius radius -%<--------------------------------------------------------------------------–> -\pgfkeys{/tkzapor/.cd, - K/.code = \def\tkz@koeff{#1},% apollonius - K = 1 - } -\def\tkzDefApolloniusRadius{\pgfutil@ifnextchar[{% - \tkz@DefApolloniusRadius}{\tkz@DefApolloniusRadius[]}} -\def\tkz@DefApolloniusRadius[#1](#2,#3){% -\begingroup - \pgfqkeys{/tkzapor}{#1} - \tkz@VecK[\tkz@koeff/(1+\tkz@koeff)](#2,#3) \pgfnodealias{apo@pta}{tkzPointResult} - \tkz@VecK[\tkz@koeff/(\tkz@koeff-1)](#2,#3) + \tkz@VecK[\tkz@koeff/(\tkz@koeff-1)](#1,#2) \pgfnodealias{apo@ptb}{tkzPointResult} \tkzDefMidPoint(apo@pta,apo@ptb) - \tkz@@CalcLengthcm(tkzPointResult,apo@pta){tkzLengthResult} -\endgroup -} -%<--------------------------------------------------------------------------–> -% Apollonius point -%<--------------------------------------------------------------------------–> - -\pgfkeys{/tkzapop/.cd, - K/.code = \def\tkz@koeff{#1},% apollonius - K = 1 - } -\def\tkzDefApolloniusPoint{\pgfutil@ifnextchar[{\tkz@DefApolloniusPoint}{\tkz@DefApolloniusPoint[]}} -\def\tkz@DefApolloniusPoint[#1](#2,#3){% -\begingroup - \pgfqkeys{/tkzapop}{#1} - \tkzDefBarycentricPoint(#2=1,#3=\tkz@koeff) + \pgfnodealias{tkzFirstPointResult}{tkzPointResult} + \tkz@@CalcLengthcm(tkzFirstPointResult,apo@pta){tkzLengthResult} + \tkzDefBarycentricPoint(#1=1,#2=\tkz@koeff) + \pgfnodealias{tkzSecondPointResult}{tkzPointResult} \endgroup -} -%<--------------------------------------------------------------------------–> -% Apollonius center -%<--------------------------------------------------------------------------–> -\pgfkeys{/tkzapoc/.cd, - K/.code = \def\tkz@koeff{#1},% apollonius - K = 1 - } -\def\tkzApolloniusCenter{\pgfutil@ifnextchar[{\tkz@ApolloniusCenter}{\tkz@ApolloniusCenter[]}} -\def\tkz@ApolloniusCenter[#1](#2,#3){% -\begingroup - \pgfqkeys{/tkzapoc}{#1} - \tkz@VecK[\tkz@koeff/(1+\tkz@koeff)](#2,#3) - \pgfnodealias{tkzFirstPointResult}{tkzPointResult} - \tkz@VecK[\tkz@koeff/(\tkz@koeff-1)](#2,#3) - \pgfnodealias{tkzSecondPointResult}{tkzPointResult} - \tkzDefMidPoint(tkzFirstPointResult,tkzSecondPointResult) -\endgroup -} +} %<--------------------------------------------------------------------------–> \def\tkzDefOrthogonalCircle(#1,#2,#3){% \begingroup @@ -248,6 +208,8 @@ \pgfnodealias{tkz@PointResult}{tkzPointResult} \tkzCircumCenter(tkz@PointResult,#3,#4) \tkz@@CalcLengthcm(tkzPointResult,#3){tkzLengthResult} + \pgfnodealias{tkzFirstPointResult}{tkzPointResult} + \pgfnodealias{tkzSecondPointResult}{#3} \endgroup } %<--------------------------------------------------------------------------–> @@ -256,34 +218,14 @@ \def\tkzDefSpiekerCircle(#1,#2,#3){% \begingroup \tkzSpiekerCenter(#1,#2,#3) - \pgfnodealias{tkz@spka}{tkzPointResult} - \tkzDefMidPoint(#1,#2) - \tkzUProjection(#1,#2)(tkzPointResult) - \tkz@@CalcLength(tkz@spka,tkzPointResult){tkzLengthResult} -\endgroup -} -%<--------------------------------------------------------------------------–> -\def\tkzDefInversionCircle(#1,#2,#3,#4){% -\begingroup - \tkzInterLC(#3,#1)(#1,#2) \tkzGetPoints{tkz@p1}{tkz@p2} - \tkzUInversePoint(#3,#4)(tkz@p1) - \pgfnodealias{tkzFirstPointResult}{tkzPointResult} - \tkzUInversePoint(#3,#4)(tkz@p2) + \pgfnodealias{tkzFirstPointResult}{tkzPointResult} + \tkzUProjection(tkz@m1,tkz@m2)(tkzPointResult) \pgfnodealias{tkzSecondPointResult}{tkzPointResult} + \tkz@@CalcLength(tkzSecondPointResult,tkzFirstPointResult){tkzLengthResult} \endgroup } %<--------------------------------------------------------------------------–> -\def\tkzDefInversionNegativeCircle(#1,#2,#3,#4){% -\begingroup - \tkzInterLC(#3,#1)(#1,#2) \tkzGetPoints{tkz@p1}{tkz@p2} - \tkzUInversePoint(\tkzcenter,\tkzpoint)(tkz@p1) - \tkzUCSym(\tkzcenter)(tkzPointResult) - \pgfnodealias{tkzFirstPointResult}{tkzPointResult} - \tkzUInversePoint(\tkzcenter,\tkzpoint)(tkz@p2) - \tkzUCSym(\tkzcenter)(tkzPointResult) - \pgfnodealias{tkzSecondPointResult}{tkzPointResult} -\endgroup -} + %<--------------------------------------------------------------------------–> % End Def Circle %<--------------------------------------------------------------------------–> |