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-02-08 21:50:43 +0000
committerKarl Berry <karl@freefriends.org>2022-02-08 21:50:43 +0000
commite2c17c234c6f771a8184b3ed6ca58c92d3fbbdba (patch)
treec8b543fcf54e3098dc51eeb8da8de1a2f32bc79c /Master/texmf-dist/tex/latex/tkz-euclide/tkz-obj-eu-points-by.tex
parentf2ca214be1bdabc702c43c320fae979a464bd2e6 (diff)
tkz-euclide (8feb22)
git-svn-id: svn://tug.org/texlive/trunk@61948 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.tex77
1 files changed, 68 insertions, 9 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 b10b308f35d..4def351f354 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
@@ -10,9 +10,9 @@
% This work has the LPPL maintenance status “maintained”.
% The Current Maintainer of this work is Alain Matthes.
-\def\fileversion{4.03}
-\def\filedate{2022/01/19}
-\typeout{2022/01/19 4.03 tkz-tools-el-points-by.tex}
+\def\fileversion{4.05b}
+\def\filedate{2022/02/07}
+\typeout{2022/02/07 4.05b tkz-tools-el-points-by.tex}
\makeatletter
%<--------------------------------------------------------------------------–>
% Transformations Géométriques
@@ -44,9 +44,12 @@
\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\tkz@numtrsf{8}},
+ rotation with nodes/.code args={center #1 from #2 to #3}{ \def\tkzcenter{#1}%
+ \def\tkzfrom{#2}%
+ \def\tkzto{#3}%
+ \def\tkz@numtrsf{9}}
+}
%<--------------------------------------------------------------------------–>
\def\tkzDefPointBy{\pgfutil@ifnextchar[{\tkz@DefPointBy}{\tkz@DefPointBy[]}}
\def\tkz@DefPointBy[#1](#2){%
@@ -71,7 +74,9 @@
\tkzUInversePoint(\tkzcenter,\tkzpoint)(#2)
\or% 8
\tkzUInverseNegativePoint(\tkzcenter,\tkzpoint)(#2)
-\fi
+\or% 9
+ \tkzURotateWithNodes(\tkzcenter,\tkzfrom,\tkzto)(#2)
+\fi
\endgroup
}
%<--------------------------------------------------------------------------–>
@@ -97,7 +102,9 @@
\or% 7
\tkzInversePoint(\tkzcenter,\tkzpoint)(#2){#3}
\or% 8
- \tkzInverseNegativePoint(\tkzcenter,\tkzpoint)(#2){#3}
+ \tkzInverseNegativePoint(\tkzcenter,\tkzpoint)(#2){#3}
+ \or% 9
+ \tkzRotateWithNodes(\tkzcenter,\tkzfrom,\tkzto)(#2){#3}
\fi
\endgroup
}
@@ -441,6 +448,7 @@
}
\endgroup
}
+%<--------------------------------------------------------------------------–>
\def\tkzUInverseNegativePoint(#1,#2)(#3){%
\begingroup
\tkz@@CalcLengthcm(#1,#2){tkz@lna}%
@@ -449,7 +457,58 @@
\tkzVecKNorm[\tkz@lnc](#1,#3)
\tkzUCSym(#1)(tkzPointResult)
\endgroup
-}
+}
+%<--------------------------------------------------------------------------–>
+%<--------------- rotate with nodes ------------------------–>
+%<--------------------------------------------------------------------------–>
+\def\tkzRotateWithNodes(#1,#2,#3)(#4)#5{%
+\begingroup
+\gdef\tkz@LastList{#5}
+ \foreach\PointRotWN in {#4}{%
+ \FirstPointInList\tkz@LastList
+ \ifx\tkz@FirstPoint\tkzutil@empty
+ \def\tkz@pointtsf{\PointRotWN '}
+ \else
+ \def\tkz@pointtsf{\tkz@FirstPoint}
+ \fi
+ \tkzFindAngle(#2,#1,#3)
+ \tkz@@extractxy{\PointRotWN}
+ \tkz@ax\pgf@x%
+ \tkz@ay\pgf@y%
+ \tkz@@extractxy{#1}
+ \tkz@bx\pgf@x%
+ \tkz@by\pgf@y%
+ \pgfmathrotatepointaround{\pgfpoint{\tkz@ax}{\tkz@ay}}%
+ {\pgfpoint{\tkz@bx}{\tkz@by}}%
+ {\tkzAngleResult}
+ \tkz@bx\pgf@x%
+ \tkz@by\pgf@y%
+ \pgfinterruptboundingbox
+ \path[coordinate](\tkz@bx,\tkz@by) coordinate (\tkz@pointtsf);%
+ \endpgfinterruptboundingbox
+}
+\endgroup
+}
+%<--------------------------------------------------------------------------–>
+\def\tkzURotateWithNodes(#1,#2,#3)(#4){%
+\begingroup
+ \tkzFindAngle(#2,#1,#3)
+ \pgf@process{\pgfpointanchor{#4}{center}}%
+ \tkz@ax\pgf@x%
+ \tkz@ay\pgf@y%
+ \pgf@process{\pgfpointanchor{#1}{center}}%
+ \tkz@bx\pgf@x%
+ \tkz@by\pgf@y%
+ \pgfmathrotatepointaround{\pgfpoint{\tkz@ax}{\tkz@ay}}%
+ {\pgfpoint{\tkz@bx}{\tkz@by}}%
+ {\tkzAngleResult}
+ \tkz@bx\pgf@x%
+ \tkz@by\pgf@y%
+ \pgfinterruptboundingbox
+ \path (\tkz@bx,\tkz@by) coordinate (tkzPointResult);%
+ \endpgfinterruptboundingbox
+\endgroup
+}
%<--------------------------------------------------------------------------–>
% Fin des transformations
%<--------------------------------------------------------------------------–>