diff options
author | Karl Berry <karl@freefriends.org> | 2022-02-08 21:50:43 +0000 |
---|---|---|
committer | Karl Berry <karl@freefriends.org> | 2022-02-08 21:50:43 +0000 |
commit | e2c17c234c6f771a8184b3ed6ca58c92d3fbbdba (patch) | |
tree | c8b543fcf54e3098dc51eeb8da8de1a2f32bc79c /Master/texmf-dist/tex/latex/tkz-euclide/tkz-obj-eu-points-by.tex | |
parent | f2ca214be1bdabc702c43c320fae979a464bd2e6 (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.tex | 77 |
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 %<--------------------------------------------------------------------------–> |