summaryrefslogtreecommitdiff
path: root/Master/texmf-dist/tex/latex/tkz-euclide/tkz-obj-eu-points-by.tex
diff options
context:
space:
mode:
authorKarl Berry <karl@freefriends.org>2022-01-04 22:31:15 +0000
committerKarl Berry <karl@freefriends.org>2022-01-04 22:31:15 +0000
commitb5a4f9e9c7a4017d4329cf01cba4254906b499d3 (patch)
treed0ff318d6e88ecdb5ff78ae0fd33f6f27d5a3154 /Master/texmf-dist/tex/latex/tkz-euclide/tkz-obj-eu-points-by.tex
parent2826ceba9c796e6ec935ff71098328b0042b3ff3 (diff)
tkz-euclide (4jan22)
git-svn-id: svn://tug.org/texlive/trunk@61496 c570f23f-e606-0410-a88d-b1316a301751
Diffstat (limited to 'Master/texmf-dist/tex/latex/tkz-euclide/tkz-obj-eu-points-by.tex')
-rw-r--r--Master/texmf-dist/tex/latex/tkz-euclide/tkz-obj-eu-points-by.tex132
1 files changed, 81 insertions, 51 deletions
diff --git a/Master/texmf-dist/tex/latex/tkz-euclide/tkz-obj-eu-points-by.tex b/Master/texmf-dist/tex/latex/tkz-euclide/tkz-obj-eu-points-by.tex
index 9075bff11a3..d255a1713bd 100644
--- a/Master/texmf-dist/tex/latex/tkz-euclide/tkz-obj-eu-points-by.tex
+++ b/Master/texmf-dist/tex/latex/tkz-euclide/tkz-obj-eu-points-by.tex
@@ -1,5 +1,5 @@
% tkz-tools-eu-points-by.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,51 +7,45 @@
% 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-tools-eu-points-by.tex}
+
+\def\fileversion{4.00}
+\def\filedate{2022/01/04}
+\typeout{2022/01/04 4.00 tkz-tools-el-points-by.tex}
\makeatletter
%<--------------------------------------------------------------------------–>
% Transformations Géométriques
%<--------------------------------------------------------------------------–>
\def\tkz@numtrsf{0}
\pgfkeys{/tkzDefPointBy/.cd,
-translation/.code args={from #1 to #2}{%
- \def\tkzfrom{#1}%
- \def\tkzto{#2}%
- \def\tkz@numtrsf{0}},
- homothety/.code args={center #1 ratio #2}{%
- \def\tkzcenter{#1}%
- \def\tkzratio{#2}%
- \def\tkz@numtrsf{1}},
- reflection/.code args={over #1--#2}{%
- \def\tkzdeb{#1}%
- \def\tkzfin{#2}%
- \def\tkz@numtrsf{2}},
- symmetry/.code args={center #1}{%
- \def\tkzcenter{#1}%
- \def\tkz@numtrsf{3}},
- projection/.code args={onto #1--#2}{%
- \def\tkzdeb{#1}%
- \def\tkzfin{#2}%
- \def\tkz@numtrsf{4}},
- rotation/.code args={center #1 angle #2}{%
- \def\tkzcenter{#1}%
- \def\tkzangle{#2}%
- \def\tkz@numtrsf{5}},
- rotation in rad/.code args={center #1 angle #2}{%
- \def\tkzcenter{#1}%
- \def\tkzangle{#2}%
- \def\tkz@numtrsf{6}},
-inversion/.code args={center #1 through #2}{%
- \def\tkzcenter{#1}%
- \def\tkzpoint{#2}%
- \def\tkz@numtrsf{7}}
+ translation/.code args={from #1 to #2}{ \def\tkzfrom{#1}%
+ \def\tkzto{#2}%
+ \def\tkz@numtrsf{0}},
+ homothety/.code args={center #1 ratio #2}{ \def\tkzcenter{#1}%
+ \def\tkzratio{#2}%
+ \def\tkz@numtrsf{1}},
+ reflection/.code args={over #1--#2}{ \def\tkzdeb{#1}%
+ \def\tkzfin{#2}%
+ \def\tkz@numtrsf{2}},
+ symmetry/.code args={center #1}{ \def\tkzcenter{#1}%
+ \def\tkz@numtrsf{3}},
+ projection/.code args={onto #1--#2}{ \def\tkzdeb{#1}%
+ \def\tkzfin{#2}%
+ \def\tkz@numtrsf{4}},
+ rotation/.code args={center #1 angle #2}{ \def\tkzcenter{#1}%
+ \def\tkzangle{#2}%
+ \def\tkz@numtrsf{5}},
+ rotation in rad/.code args={center #1 angle #2}{ \def\tkzcenter{#1}%
+ \def\tkzangle{#2}%
+ \def\tkz@numtrsf{6}},
+ inversion/.code args={center #1 through #2}{ \def\tkzcenter{#1}%
+ \def\tkzpoint{#2}%
+ \def\tkz@numtrsf{7}},
+ inversion negative/.code args={center #1 through #2}{ \def\tkzcenter{#1}%
+ \def\tkzpoint{#2}%
+ \def\tkz@numtrsf{8}}
+% inversion négative ?
}
%<--------------------------------------------------------------------------–>
\def\tkzDefPointBy{\pgfutil@ifnextchar[{\tkz@DefPointBy}{\tkz@DefPointBy[]}}
@@ -75,6 +69,8 @@ inversion/.code args={center #1 through #2}{%
\tkzURotateInRad(\tkzcenter,\tkzangle)(#2)
\or% 7
\tkzUInversePoint(\tkzcenter,\tkzpoint)(#2)
+\or% 8
+ \tkzUInverseNegativePoint(\tkzcenter,\tkzpoint)(#2)
\fi
\endgroup
}
@@ -93,13 +89,15 @@ inversion/.code args={center #1 through #2}{%
\or% 3
\tkzCSym(\tkzcenter)(#2){#3}
\or% 4
- \tkzProjection(\tkzdeb,\tkzfin)(#2){#3}
+ \tkzProjection(\tkzdeb,\tkzfin)(#2){#3}
\or% 5
\tkzRotateAngle(\tkzcenter,\tkzangle)(#2){#3}
\or% 6
\tkzRotateInRad(\tkzcenter,\tkzangle)(#2){#3}
\or% 7
\tkzInversePoint(\tkzcenter,\tkzpoint)(#2){#3}
+ \or% 8
+ \tkzInverseNegativePoint(\tkzcenter,\tkzpoint)(#2){#3}
\fi
\endgroup
}
@@ -235,7 +233,7 @@ inversion/.code args={center #1 through #2}{%
\pgfinterruptboundingbox
\path[coordinate](#3)--++(-\tkz@ax,\tkz@ay) coordinate (tkz@point);
\tkzInterLL(#1,#2)(#3,tkz@point)% définit tkzPointResult
- \endpgfinterruptboundingbox
+ \endpgfinterruptboundingbox
\endgroup
}
%<--------------------------------------------------------------------------–>
@@ -334,9 +332,9 @@ inversion/.code args={center #1 through #2}{%
{#2}
\tkz@bx\pgf@x%
\tkz@by\pgf@y%
- \pgfinterruptboundingbox
- \path (\tkz@bx,\tkz@by) coordinate (tkzPointResult);%
- \endpgfinterruptboundingbox
+ \pgfinterruptboundingbox
+ \path (\tkz@bx,\tkz@by) coordinate (tkzPointResult);%
+ \endpgfinterruptboundingbox
\endgroup
}
%<--------------------------------------------------------------------------–>
@@ -405,19 +403,51 @@ inversion/.code args={center #1 through #2}{%
\else
\xdef\tkz@pointtsf{\tkz@FirstPoint}
\fi
- \tkzCalcLength[cm](#1,#2)\tkzGetLength{tkz@lna}
- \tkzCalcLength[cm](#1,\PointIP)\tkzGetLength{tkz@lnb}
- \edef\tkz@lnc{\tkz@lna/\tkz@lnb*\tkz@lna}
- \tkzVecKNorm[\tkz@lnb](#1,\PointIP)
- }
+ \tkz@@CalcLengthcm(#1,#2){tkz@lna}
+ \tkz@@CalcLengthcm(#1,\PointIP){tkz@lnb}
+ \edef\tkz@lnc{\fpeval{\tkz@lna/\tkz@lnb*\tkz@lna}}
+ \tkzVecKNorm[\tkz@lnc](#1,\PointIP)
+ \pgfnodealias{\tkz@pointtsf}{tkzPointResult}
+ }
\endgroup
}
\def\tkzUInversePoint(#1,#2)(#3){%
\begingroup
- \tkzCalcLength[cm](#1,#2)\tkzGetLength{tkz@lna}%
- \tkzCalcLength[cm](#1,#3)\tkzGetLength{tkz@lnb}%
- \edef\tkz@lnc{\fpeval{\tkz@lna/\tkz@lnb*\tkz@lna}}
+ \tkz@@CalcLengthcm(#1,#2){tkz@lna}%
+ \tkz@@CalcLengthcm(#1,#3){tkz@lnb}%
+ \edef\tkz@lnc{\fpeval{\tkz@lna/\tkz@lnb*\tkz@lna}}
+ \tkzVecKNorm[\tkz@lnc](#1,#3)
+\endgroup
+}
+%<--------------------------------------------------------------------------–>
+% Inverse negative of a point
+%<--------------------------------------------------------------------------–>
+\def\tkzInverseNegativePoint(#1,#2)(#3)#4{%
+\begingroup
+\gdef\tkz@LastList{#4}
+ \foreach\PointIP in {#3}{%
+ \FirstPointInList\tkz@LastList
+ \ifx\tkz@FirstPoint\tkzutil@empty
+ \xdef\tkz@pointtsf{\PointIP '}
+ \else
+ \xdef\tkz@pointtsf{\tkz@FirstPoint}
+ \fi
+ \tkz@@CalcLengthcm(#1,#2){tkz@lna}
+ \tkz@@CalcLengthcm(#1,\PointIP){tkz@lnb}
+ \edef\tkz@lnc{\fpeval{\tkz@lna/\tkz@lnb*\tkz@lna}}
+ \tkzVecKNorm[\tkz@lnc](#1,\PointIP)
+ \tkzUCSym(#1)(tkzPointResult)
+ \pgfnodealias{\tkz@pointtsf}{tkzPointResult}
+ }
+\endgroup
+}
+\def\tkzUInverseNegativePoint(#1,#2)(#3){%
+\begingroup
+ \tkz@@CalcLengthcm(#1,#2){tkz@lna}%
+ \tkz@@CalcLengthcm(#1,#3){tkz@lnb}%
+ \edef\tkz@lnc{\fpeval{\tkz@lna/\tkz@lnb*\tkz@lna}}
\tkzVecKNorm[\tkz@lnc](#1,#3)
+ \tkzUCSym(#1)(tkzPointResult)
\endgroup
}
%<--------------------------------------------------------------------------–>