summaryrefslogtreecommitdiff
path: root/macros/latex/contrib/tkz/tkz-euclide/latex/tkz-obj-eu-circles.tex
diff options
context:
space:
mode:
authorNorbert Preining <norbert@preining.info>2022-07-16 03:00:55 +0000
committerNorbert Preining <norbert@preining.info>2022-07-16 03:00:55 +0000
commit24ae0c3844b308d81bc4684e57817d43c0b29a13 (patch)
tree91058aa850845b445f48d52794ce128c9b0d419f /macros/latex/contrib/tkz/tkz-euclide/latex/tkz-obj-eu-circles.tex
parent672664411215c14fc71db763da169731d3c6a361 (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.tex166
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
%<--------------------------------------------------------------------------–>