summaryrefslogtreecommitdiff
path: root/Master/texmf-dist/tex/latex/tkz-euclide/tkz-tools-transformations.tex
diff options
context:
space:
mode:
authorKarl Berry <karl@freefriends.org>2020-01-24 21:43:02 +0000
committerKarl Berry <karl@freefriends.org>2020-01-24 21:43:02 +0000
commit4ce6f5f9c360b21c85e05cf51a20445a33aba4cc (patch)
tree7568e73fee89da48bc1ac9a383219336a4f23160 /Master/texmf-dist/tex/latex/tkz-euclide/tkz-tools-transformations.tex
parentd5adeaeb325c83b945dd89cac45b12a7410fd32d (diff)
tkz-euclide (24jan20)
git-svn-id: svn://tug.org/texlive/trunk@53531 c570f23f-e606-0410-a88d-b1316a301751
Diffstat (limited to 'Master/texmf-dist/tex/latex/tkz-euclide/tkz-tools-transformations.tex')
-rw-r--r--Master/texmf-dist/tex/latex/tkz-euclide/tkz-tools-transformations.tex525
1 files changed, 0 insertions, 525 deletions
diff --git a/Master/texmf-dist/tex/latex/tkz-euclide/tkz-tools-transformations.tex b/Master/texmf-dist/tex/latex/tkz-euclide/tkz-tools-transformations.tex
deleted file mode 100644
index fd7b14f112c..00000000000
--- a/Master/texmf-dist/tex/latex/tkz-euclide/tkz-tools-transformations.tex
+++ /dev/null
@@ -1,525 +0,0 @@
-% Copyright 2011 by Alain Matthes
-%
-% This file may be distributed and/or modified
-%
-% 1. under the LaTeX Project Public License and/or
-% 2. under the GNU Public License.
-
-
-\def\fileversion{1.16 c}
-\def\filedate{2011/06/01}
-
-
-%<--------------------------------------------------------------------------–>
-% Transformations Géométriques
-%<--------------------------------------------------------------------------–>
-\def\tkz@numtrsf{0}
-\pgfkeys{/tkzDefPointBy/.cd,
-translation/.code args={from #1 to #2}{%
- \global\def\tkzfrom{#1}%
- \global\def\tkzto{#2}%
- \global\def\tkz@numtrsf{0}},
- homothety/.code args={center #1 ratio #2}{%
- \global\def\tkzcenter{#1}%
- \global\def\tkzratio{#2}%
- \global\def\tkz@numtrsf{1}},
- reflection/.code args={over #1--#2}{%
- \global\def\tkzdeb{#1}%
- \global\def\tkzfin{#2}%
- \global\def\tkz@numtrsf{2}},
- symmetry/.code args={center #1}{%
- \global\def\tkzcenter{#1}%
- \global\def\tkz@numtrsf{3}},
- projection/.code args={onto #1--#2}{%
- \global\def\tkzdeb{#1}%
- \global\def\tkzfin{#2}%
- \global\def\tkz@numtrsf{4}},
- rotation/.code args={center #1 angle #2}{%
- \global\def\tkzcenter{#1}%
- \global\def\tkzangle{#2}%
- \global\def\tkz@numtrsf{5}},
- rotation in rad/.code args={center #1 angle #2}{%
- \global\def\tkzcenter{#1}%
- \global\def\tkzangle{#2}%
- \global\def\tkz@numtrsf{6}},
-inversion/.code args={center #1 through #2}{%
- \global\def\tkzcenter{#1}%
- \global\def\tkzpoint{#2}%
- \global\def\tkz@numtrsf{7}}
-}
-%<--------------------------------------------------------------------------–>
-\def\tkzDefPointsBy{\pgfutil@ifnextchar[{\tkz@DefPointsBy}{%
- \tkz@DefPointsBy[]}}
-\def\tkz@DefPointsBy[#1](#2)#3{%
-\begingroup
-\pgfqkeys{/tkzDefPointBy}{#1}
-\ifcase\tkz@numtrsf%
- % first case 0
- \tkzTranslation(\tkzfrom,\tkzto)(#2){#3}
- \or% 1
- \tkzHomo(\tkzcenter,\tkzratio)(#2){#3}
- \or% 2
- \tkzSymOrth(\tkzdeb,\tkzfin)(#2){#3}
- \or% 3
- \tkzCSym(\tkzcenter)(#2){#3}
- \or% 4
- \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}
-\fi
-\endgroup
-}
-%<--------------------------------------------------------------------------–>
-%<--------------------------------------------------------------------------–>
-\def\tkzDefPointBy{\pgfutil@ifnextchar[{\tkz@DefPointBy}{%
- \tkz@DefPointBy[]}}
-\def\tkz@DefPointBy[#1](#2){%
-\begingroup
-\pgfqkeys{/tkzDefPointBy}{#1}
- \ifcase\tkz@numtrsf%
-% % first case 0
- \tkzUTranslation(\tkzfrom,\tkzto)(#2)
- \or% 1
- \tkzUHomo(\tkzcenter,\tkzratio)(#2)
-\or% 2
-\tkzUSymOrth(\tkzdeb,\tkzfin)(#2)
-\or% 3
-\tkzUCSym(\tkzcenter)(#2)
-\or% 4
-\tkzUProjection(\tkzdeb,\tkzfin)(#2)
-\or% 5
-\tkzURotateAngle(\tkzcenter,\tkzangle)(#2)
- \or% 6
-\tkzURotateInRad(\tkzcenter,\tkzangle)(#2)
- \or% 7
-\tkzUInversePoint(\tkzcenter,\tkzpoint)(#2)
-\fi
-\endgroup
-}
-%<--------------------------------------------------------------------------–>
-%<--------------------------------------------------------------------------–>
-\def\ExtractPoint#1,#2\@nil{%
-\global\edef\tkz@LastList{#2}
-\global\edef\tkz@FirstPoint{#1}
-}
-\def\FirstPointInList#1{%
-\edef\tkz@templist{#1,}
-\expandafter\ExtractPoint\tkz@templist\@nil
-}
-%<--------------------------------------------------------------------------–>
-% Translation par rapport à un point
-%<--------------------------------------------------------------------------–>
-\def\tkzTranslation(#1,#2)(#3)#4{%
-\begingroup
-\global\def\tkz@LastList{#4}
- \foreach\PointTR in {#3}{%
- \FirstPointInList\tkz@LastList
- \ifx\tkz@FirstPoint\tkzutil@empty
- \global\edef\tkz@pointtsf{\PointTR '}
- \else
- \global\edef\tkz@pointtsf{\tkz@FirstPoint}
- \fi
- \tkzVecKCoLinear(#1,#2,\PointTR){\tkz@pointtsf}%
-}
-\endgroup
-}
-%<--------------------------------------------------------------------------–>
-\def\tkzUTranslation(#1,#2)(#3){%
-\begingroup
- \tkzVecKCoLinear(#1,#2,#3){tkzPointResult}%
-\endgroup
-}
-
-%<--------------------------------------------------------------------------–>
-% Symétrie par rapport à un point Homo with (-1)
-% #2 le centre #3 l'antécédent
-%<--------------------------------------------------------------------------–>
-\def\tkzCSym(#1)(#2)#3{%
-\begingroup
-\global\def\tkz@LastList{#3}
- \foreach\PointCS in {#2}{%
- \FirstPointInList\tkz@LastList
- \ifx\tkz@FirstPoint\tkzutil@empty
- \global\edef\tkz@pointtsf{\PointCS '}
- \else
- \global\edef\tkz@pointtsf{\tkz@FirstPoint}
- \fi
- \pgfpointdiff{\pgfpointanchor{#1}{center}}%
- {\pgfpointanchor{\PointCS}{center}}%
- \tkz@ax=\pgf@x%
- \tkz@ay=\pgf@y%
- \path(#1)--++(-\tkz@ax,-\tkz@ay)coordinate (\tkz@pointtsf);
-}
-\endgroup
-}
-%<--------------------------------------------------------------------------–>
-\def\tkzUCSym(#1)(#2){%
-\begingroup
- \pgfpointdiff{\pgfpointanchor{#1}{center}}%
- {\pgfpointanchor{#2}{center}}%
- \tkz@ax=\pgf@x%
- \tkz@ay=\pgf@y%
- \path(#1)--++(-\tkz@ax,-\tkz@ay)coordinate (tkzPointResult);
-\endgroup
-}
-%<--------------------------------------------------------------------------–>
-% Symétrie orthogonale par rapport à une droite
-%<--------------------------------------------------------------------------–>
-\def\tkzSymOrth(#1,#2)(#3)#4{%
-\begingroup
-\global\def\tkz@LastList{#4}
- \foreach\PointSO in {#3}{%
- \FirstPointInList\tkz@LastList
- \ifx\tkz@FirstPoint\tkzutil@empty
- \global\edef\tkz@pointtsf{\PointSO '}
- \else
- \global\edef\tkz@pointtsf{\tkz@FirstPoint}
- \fi
- \pgfpointdiff{\pgfpointanchor{#1}{center}}%
- {\pgfpointanchor{#2}{center}}%
- \tkz@ax =\pgf@y%
- \tkz@ay =\pgf@x%
- \path[coordinate]%
- (\PointSO)--++(-\tkz@ax,\tkz@ay) coordinate (tkz@point);
- \tkzInterLL(#1,#2)(\PointSO,tkz@point)\tkzGetPoint{tkzPointofSym}
- \tkz@VecK[2](\PointSO,tkzPointofSym){\tkz@pointtsf}
-}
-\endgroup
-}
-%<--------------------------------------------------------------------------–>
-\def\tkzUSymOrth(#1,#2)(#3){%
-\begingroup
- \pgfpointdiff{\pgfpointanchor{#1}{center}}%
- {\pgfpointanchor{#2}{center}}%
- \tkz@ax =\pgf@y%
- \tkz@ay =\pgf@x%
- \path[coordinate]%
- (#3)--++(-\tkz@ax,\tkz@ay) coordinate (tkz@point);
- \tkzInterLL(#1,#2)(#3,tkz@point)\tkzGetPoint{tkzPointofSym}
- \tkz@VecK[2](#3,tkzPointofSym){tkzPointResult}
-\endgroup
-}
-
-%<--------------------------------------------------------------------------–>
-% Projection orthogonale sur une droite
-%<--------------------------------------------------------------------------–>
-\def\tkzProjection(#1,#2)(#3)#4{%
-\begingroup
-\global\def\tkz@LastList{#4}
- \foreach\PointPJ in {#3}{%
- \FirstPointInList\tkz@LastList
- \ifx\tkz@FirstPoint\tkzutil@empty
- \global\edef\tkz@pointtsf{\PointPJ '}
- \else
- \global\edef\tkz@pointtsf{\tkz@FirstPoint}
- \fi
- \tkzUProjection(#1,#2)(\PointPJ)
- \tkzGetPoint{\tkz@pointtsf}
- }
-\endgroup
-}
-%<--------------------------------------------------------------------------–>
-\def\tkzUProjection(#1,#2)(#3){%
-\begingroup
- \pgfpointdiff{\pgfpointanchor{#1}{center}}%
- {\pgfpointanchor{#2}{center}}%
- \tkz@ax =\pgf@y%
- \tkz@ay =\pgf@x%
- \path[coordinate](#3)--++(-\tkz@ax,\tkz@ay) coordinate (tkz@point);
- \tkzInterLL(#1,#2)(#3,tkz@point)% définit tkzPointResult
-\endgroup
-}
-%<--------------------------------------------------------------------------–>
-\def\tkz@Projection(#1,#2)(#3)#4{%
-\begingroup
- \pgfpointdiff{\pgfpointanchor{#1}{center}}%
- {\pgfpointanchor{#2}{center}}%
- \tkz@ax =\pgf@y%
- \tkz@ay =\pgf@x%
- \path[coordinate](#3)--++(-\tkz@ax,\tkz@ay) coordinate (tkz@point);
- \tkz@InterLL(#1,#2)(#3,tkz@point){#4}% définit tkzPointResult
-\endgroup
-}
-%<--------------------------------------------------------------------------–>
-% Homothétie par rapport à un point
-%<--------------------------------------------------------------------------–>
-\def\tkzHomo(#1,#2)(#3)#4{%
-\begingroup
-\global\def\tkz@LastList{#4}
- \foreach\PointHO in {#3}{%
- \FirstPointInList\tkz@LastList
- \ifx\tkz@FirstPoint\tkzutil@empty
- \global\edef\tkz@pointtsf{\PointHO '}
- \else
- \global\edef\tkz@pointtsf{\tkz@FirstPoint}
- \fi
- \pgfpointdiff{\pgfpointanchor{#1}{center}}%
- {\pgfpointanchor{\PointHO}{center}}%
- \pgf@xa=\pgf@x%
- \pgf@ya=\pgf@y%
- \pgfmathparse{#2}\edef\tkz@coeff{\pgfmathresult}%
- \path[coordinate](#1)--++(\tkz@coeff\pgf@xa,\tkz@coeff\pgf@ya)%
- coordinate(\tkz@pointtsf);
- }
-\endgroup
-}
-%<--------------------------------------------------------------------------–>
-\def\tkzUHomo(#1,#2)(#3){%
-\begingroup
- \pgfpointdiff{\pgfpointanchor{#1}{center}}%
- {\pgfpointanchor{#3}{center}}%
- \pgf@xa=\pgf@x%
- \pgf@ya=\pgf@y%
- \pgfmathparse{#2}\edef\tkz@coeff{\pgfmathresult}%
- \path[coordinate](#1)--++(\tkz@coeff\pgf@xa,\tkz@coeff\pgf@ya)%
- coordinate(tkzPointResult);
-\endgroup
-}
-%<--------------------------------------------------------------------------–>
-% rotation en degré
-%<--------------------------------------------------------------------------–>
-\def\tkzRotateAngle(#1,#2)(#3)#4{%
-\begingroup
-\global\def\tkz@LastList{#4}
- \foreach\PointRot in {#3}{%
- \FirstPointInList\tkz@LastList
- \ifx\tkz@FirstPoint\tkzutil@empty
- \global\edef\tkz@pointtsf{\PointRot '}
- \else
- \global\edef\tkz@pointtsf{\tkz@FirstPoint}
- \fi
- \tkz@@extractxy{\PointRot}
- \global\tkz@ax\pgf@x%
- \global\tkz@ay\pgf@y%
- \tkz@@extractxy{#1}
- \global\tkz@bx\pgf@x%
- \global\tkz@by\pgf@y%
- \tkzmathrotatepointaround{\pgfpoint{\tkz@ax}{\tkz@ay}}%
- {\pgfpoint{\tkz@bx}{\tkz@by}}%
- {#2}
- \global\tkz@bx\pgf@x%
- \global\tkz@by\pgf@y%
- \path[coordinate](\tkz@bx,\tkz@by)coordinate(\tkz@pointtsf);%
- }
- \endgroup
-}
-%<--------------------------------------------------------------------------–>
-\def\tkzURotateAngle(#1,#2)(#3){%
-\begingroup
- \tkz@@extractxy{#3}
- \global\tkz@ax\pgf@x%
- \global\tkz@ay\pgf@y%
- \tkz@@extractxy{#1}
- \global\tkz@bx\pgf@x%
- \global\tkz@by\pgf@y%
- \tkzmathrotatepointaround{\pgfpoint{\tkz@ax}{\tkz@ay}}%
- {\pgfpoint{\tkz@bx}{\tkz@by}}%
- {#2}
- \global\tkz@bx\pgf@x%
- \global\tkz@by\pgf@y%
- \path[coordinate](\tkz@bx,\tkz@by)coordinate(tkzPointResult);%
- \endgroup
-}
-%<--------------------------------------------------------------------------–>
-% % rotation en radian
-% %<--------------------------------------------------------------------------–>
-\def\tkzRotateInRad(#1,#2)(#3)#4{%
-\begingroup
-\global\def\tkz@LastList{#4}
- \foreach\PointRot in {#3}{%
- \FirstPointInList\tkz@LastList
- \ifx\tkz@FirstPoint\tkzutil@empty
- \global\edef\tkz@pointtsf{\PointRot '}
- \else
- \global\edef\tkz@pointtsf{\tkz@FirstPoint}
- \fi
- \pgfmathparse{#2 r}
- \let\tkz@Angle\pgfmathresult
- \tkz@@extractxy{\PointRot}
- \tkz@ax\pgf@x%
- \tkz@ay\pgf@y%
- \tkz@@extractxy{#1}
- \tkz@bx\pgf@x%
- \tkz@by\pgf@y%
- \tkzmathrotatepointaround{\pgfpoint{\tkz@ax}{\tkz@ay}}%
- {\pgfpoint{\tkz@bx}{\tkz@by}}%
- {\tkz@Angle}
- \tkz@bx\pgf@x%
- \tkz@by\pgf@y%
- \path[coordinate](\tkz@bx,\tkz@by)coordinate(\tkz@pointtsf);
-}
-\endgroup
-}
-%<--------------------------------------------------------------------------–>
-\def\tkzURotateInRad(#1,#2)(#3){%
-\begingroup
- \pgfmathparse{#2 r}
- \let\tkz@Angle\pgfmathresult
- \tkz@@extractxy{#3}
- \tkz@ax\pgf@x%
- \tkz@ay\pgf@y%
- \tkz@@extractxy{#1}
- \tkz@bx\pgf@x%
- \tkz@by\pgf@y%
- \tkzmathrotatepointaround{\pgfpoint{\tkz@ax}{\tkz@ay}}%
- {\pgfpoint{\tkz@bx}{\tkz@by}}%
- {\tkz@Angle}
- \tkz@bx\pgf@x%
- \tkz@by\pgf@y%
- \path[coordinate](\tkz@bx,\tkz@by)coordinate(tkzPointResult);
-\endgroup
-}
-%<--------------------------------------------------------------------------–>
-% Inverse of a point
-%<--------------------------------------------------------------------------–>
-\def\tkzInversePoint(#1,#2)(#3)#4{%
-\begingroup
-\global\def\tkz@LastList{#4}
- \foreach\PointIP in {#3}{%
- \FirstPointInList\tkz@LastList
- \ifx\tkz@FirstPoint\tkzutil@empty
- \global\edef\tkz@pointtsf{\PointIP '}
- \else
- \global\edef\tkz@pointtsf{\tkz@FirstPoint}
- \fi
- \tkzCalcLength[cm](#1,#2)\tkzGetLength{tkz@lna}%
- \tkzCalcLength[cm](#1,\PointIP)\tkzGetLength{tkz@lnb}%
- \FPeval\tkz@lnc{\tkz@lna/\tkz@lnb*\tkz@lna}
- \tkzVecKNorm[\tkz@lnc](#1,\PointIP){tkzPointResult}
- }
-\endgroup
-} \def\tkzUInversePoint(#1,#2)(#3){%
-\begingroup
- \tkzCalcLength[cm](#1,#2)\tkzGetLength{tkz@lna}%
- \tkzCalcLength[cm](#1,#3)\tkzGetLength{tkz@lnb}%
- \FPeval\tkz@lnc{\tkz@lna/\tkz@lnb*\tkz@lna}
- \tkzVecKNorm[\tkz@lnc](#1,#3){tkzPointResult}
-\endgroup
-}
-%<--------------------------------------------------------------------------–>
-% Fin des transformations
-%<--------------------------------------------------------------------------–>
-%<--------------------------------------------------------------------------–>
-% The SHOW
-%<--------------------------------------------------------------------------–>
-\def\tkz@numst{0}
-\pgfkeys{/showtsf/.cd,
- reflection/.code args={over #1--#2}{%
- \def\tkzdeb{#1}
- \def\tkzfin{#2}
- \def\tkz@numst{0}},
- symmetry/.code args={center #1}{%
- \def\tkzcenter{#1}
- \def\tkz@numst{1}},
- projection/.code args={onto #1--#2}{%
- \def\tkzdeb{#1}
- \def\tkzfin{#2}
- \def\tkz@numst{2}},
-translation/.code args={from #1 to #2}{%
- \def\tkzfrom{#1}%
- \def\tkzto{#2}%
- \def\tkz@numst{3}},
- K/.code = \def\tkz@koeff{#1},
- length/.code = \def\tkz@show@length{#1},
- ratio/.code = \def\tkz@show@ratio{#1},
- gap/.code = \def\tkz@show@gap{#1},
- size/.code = \def\tkz@show@size{#1},
-/showtsf/.unknown/.code = {\let\searchname=\pgfkeyscurrentname
- \pgfkeysalso{\searchname/.try=#1,
- /compass/\searchname/.retry=#1,
- /tikz/\searchname/.retry=#1}}
-}
-%<--------------------------------------------------------------------------–>
-%<--------------------------------------------------------------------------–>
-\def\tkzShowTransformation{\pgfutil@ifnextchar[{\tkz@ShowTransformation}{%
- \tkz@ShowTransformation[]}}
-\def\tkz@ShowTransformation[#1](#2){%
-\begingroup
- \pgfqkeys{/showtsf}{K=1,gap=2,size=1,ratio=.5,length=1}
- \pgfqkeys{/showtsf}{#1}
-\ifcase\tkz@numst%
- % first case 0
- \tkzShowSymOrth[#1](\tkzdeb,\tkzfin)(#2)
- \or% 1
- \tkzShowCSym[#1](\tkzcenter)(#2)
- \or% 2
- \tkzShowProjection[#1](\tkzdeb,\tkzfin)(#2)
- \or% 3
- \tkzShowTranslation[#1](\tkzfrom,\tkzto)(#2)
- \fi
-\endgroup
-}
-%<--------------------------------------------------------------------------–>
-%<--------------------------------------------------------------------------–>
-\def\tkzShowTranslation{\pgfutil@ifnextchar[{\tkz@ShowTranslation}{%
- \tkz@ShowTranslation[]}}
-
-\def\tkz@ShowTranslation[#1](#2,#3)(#4){%
-\begingroup
-\tkz@VecKCoLinear[1](#2,#3,#4){tkz@lltmp}
-\tkzCompass[#1](#4,tkz@lltmp)
-\tkzCompass[#1,length=\tkz@show@ratio*\tkz@show@length](#3,tkz@lltmp)
-\endgroup}
-%<--------------------------------------------------------------------------–>
-%<--------------------------------------------------------------------------–>
-\def\tkzShowSymOrth{\pgfutil@ifnextchar[{\tkz@ShowSymOrth}{%
- \tkz@ShowSymOrth[]}}
-\def\tkz@ShowSymOrth[#1](#2,#3)(#4){%
-\begingroup
- \pgfpointdiff{\pgfpointanchor{#2}{center}}%
- {\pgfpointanchor{#3}{center}}%
- \tkz@ax =\pgf@y%
- \tkz@ay =\pgf@x%
- \path[coordinate](#4)--++(-\tkz@ax,\tkz@ay) coordinate (tkz@point);
- \tkzInterLL(#2,#3)(#4,tkz@point) \tkzGetPoint{tkzPointofSym}
- \tkz@VecK[2](#4,tkzPointofSym){tkz@pointtsf}
- \tkzCompass[#1](#2,#4)
- \tkzCompass[#1,length=\tkz@show@ratio*\tkz@show@length](#3,#4)
- \tkzCompass[#1](#2,tkz@pointtsf)
- \tkzCompass[#1,length=\tkz@show@ratio*\tkz@show@length](#3,tkz@pointtsf)
-\endgroup
-}
-%<--------------------------------------------------------------------------–>
-%<--------------------------------------------------------------------------–>
-\def\tkzShowCSym{\pgfutil@ifnextchar[{\tkz@ShowCSym}{\tkz@ShowCSym[]}}
-
-\def\tkz@ShowCSym[#1](#2)(#3){%
-\begingroup
- \pgfpointdiff{\pgfpointanchor{#2}{center}}%
- {\pgfpointanchor{#3}{center}}%
- \tkz@ax=\pgf@x%
- \tkz@ay=\pgf@y%
-\path[coordinate](#2)--++(-\tkz@ax,-\tkz@ay) coordinate (tkz@pointtsf);
- \tkzCompass[#1](#2,tkz@pointtsf)
- \tkzCompass[#1](#2,#3)
-\endgroup
-}
-%<--------------------------------------------------------------------------–>
-%<--------------------------------------------------------------------------–>
-\def\tkzShowProjection{\pgfutil@ifnextchar[{\tkz@ShowProjection}{%
- \tkz@ShowProjection[]}}
-\def\tkz@ShowProjection[#1](#2,#3)(#4){%
-\begingroup
- \pgfpointdiff{\pgfpointanchor{#2}{center}}%
- {\pgfpointanchor{#3}{center}}%
- \tkz@ax =\pgf@y%
- \tkz@ay =\pgf@x%
- \path[coordinate](#4)--++(-\tkz@ax,\tkz@ay) coordinate (tkz@point);
- \tkzInterLL(#2,#3)(#4,tkz@point)\tkzGetPoint{tkz@pointtsf}
- \tkz@VecKCoLinear[1](#2,#3,tkz@pointtsf){SO@tmp1}
- \tkz@VecKCoLinear[-1](#2,#3,tkz@pointtsf){SO@tmp2}
- \tkz@VecKNorm[\tkz@show@size](tkz@pointtsf,SO@tmp1){SO@1}
- \tkz@VecKNorm[\tkz@show@size](tkz@pointtsf,SO@tmp2){SO@2}
- \tkz@VecKNorm[-\tkz@show@gap](tkz@pointtsf,#4){SO@3}
- \tkzCompass[#1](#4,SO@1)
- \tkzCompass[#1](#4,SO@2)
- \tkzCompass[#1](SO@1,SO@3)
- \tkzCompass[#1,length=\tkz@show@ratio*\tkz@show@length](SO@2,SO@3)
-\endgroup
-}
-
-\endinput \ No newline at end of file