diff options
Diffstat (limited to 'Master/texmf-dist/tex/latex/tkz-euclide/tkz-obj-eu-points-spc.tex')
-rw-r--r-- | Master/texmf-dist/tex/latex/tkz-euclide/tkz-obj-eu-points-spc.tex | 285 |
1 files changed, 155 insertions, 130 deletions
diff --git a/Master/texmf-dist/tex/latex/tkz-euclide/tkz-obj-eu-points-spc.tex b/Master/texmf-dist/tex/latex/tkz-euclide/tkz-obj-eu-points-spc.tex index a67b375cd0d..7b4f9966bb5 100644 --- a/Master/texmf-dist/tex/latex/tkz-euclide/tkz-obj-eu-points-spc.tex +++ b/Master/texmf-dist/tex/latex/tkz-euclide/tkz-obj-eu-points-spc.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-el-points.tex} +\def\fileversion{4.2c} +\def\filedate{2022/07/14} +\typeout{2022/07/14 4.2c tkz-obj-eu-points.tex} \makeatletter %add ExCenter %<--------------------------------------------------------------------------–> @@ -121,15 +121,15 @@ \begingroup \pgfqkeys{/tkzSimilitudeCenter}{#1} \ifcase\tkz@numhomo% - \tkzCalcLength(#2,#3) - \tkzGetLength{tkz@rt} - \tkzCalcLength(#4,#5) - \tkzGetLength{tkz@rf} + \tkz@@CalcLengthcm(#2,#3){tkz@rt}% + \tkz@@CalcLengthcm(#4,#5){tkz@rf}% \or% 1 - \def\tkz@rt{#3} - \def\tkz@rf{#5} + \def\tkz@rt{#3}% + \def\tkz@rf{#5}% \fi +\pgfinterruptboundingbox \path[coordinate](barycentric cs:#2=\tkz@rf,#4=\tkz@rt)coordinate (tkzPointResult); + \endpgfinterruptboundingbox \endgroup } \let\tkzDefIntHomotheticCenter\tkzDefIntSimilitudeCenter @@ -142,15 +142,15 @@ \begingroup \pgfqkeys{/tkzSimilitudeCenter}{#1} \ifcase\tkz@numhomo% - \tkzCalcLength(#2,#3) - \tkzGetLength{tkz@rt} - \tkzCalcLength(#4,#5) - \tkzGetLength{tkz@rf} + \tkz@@CalcLengthcm(#2,#3){tkz@rt}% + \tkz@@CalcLengthcm(#4,#5){tkz@rf}% \or% 1 - \def\tkz@rt{#3} - \def\tkz@rf{#5} + \def\tkz@rt{#3}% + \def\tkz@rf{#5}% \fi + \pgfinterruptboundingbox \path[coordinate](barycentric cs:#2=-\tkz@rf,#4=\tkz@rt) coordinate(tkzPointResult); + \endpgfinterruptboundingbox \endgroup } @@ -184,17 +184,25 @@ \def\tkzDefDivHarmonicExt(#1,#2,#3){% \begingroup - \tkz@@CalcLengthcm(#3,#1){tkz@da} - \tkz@@CalcLengthcm(#3,#2){tkz@db} - \path[coordinate] (barycentric cs:#1={-\tkz@db},#2={\tkz@da}) coordinate (tkzPointResult); +\pgfinterruptboundingbox + \tkz@VecKOrth[](#1,#2) \tkzGetPoint{tkz@px} + \tkzDefMidPoint(tkz@px,#2) \tkzGetPoint{tkz@py} + \tkzInterLL(tkz@px,#3)(#1,tkz@py) \tkzGetPoint{tkz@pz} + \tkzInterLL(#2,tkz@pz)(#1,tkz@px) \tkzGetPoint{tkz@px} + \tkzInterLL(tkz@py,tkz@px)(#1,#2) \tkzGetPoint{tkzPointResult} +\endpgfinterruptboundingbox \endgroup } \def\tkzDefDivHarmonicInt(#1,#2,#3){% \begingroup - \tkz@@CalcLengthcm(#3,#1){tkz@da} - \tkz@@CalcLengthcm(#3,#2){tkz@db} - \path[coordinate] (barycentric cs:#1={\tkz@db},#2={\tkz@da}) coordinate (tkzPointResult); +\pgfinterruptboundingbox + \tkz@VecKOrth[1](#1,#2) \tkzGetPoint{tkz@px} + \tkzDefMidPoint(tkz@px,#2) \tkzGetPoint{tkz@py} + \tkzInterLL(tkz@py,#3)(#1,tkz@px) \tkzGetPoint{tkz@pz} + \tkzInterLL(#2,tkz@pz)(#1,tkz@py) \tkzGetPoint{tkz@py} + \tkzInterLL(tkz@py,tkz@px)(#1,#2) \tkzGetPoint{tkzPointResult} +\endpgfinterruptboundingbox \endgroup } @@ -273,7 +281,7 @@ %<--------------------------------------------------------------------------–> % OrthoCenter %<--------------------------------------------------------------------------–> -\def\tkzOrthoCenter(#1,#2,#3){% H orthocentre +\def\tkzOrthoCenter(#1,#2,#3){% \begingroup \pgfinterruptboundingbox \tkzUProjection(#1,#2)(#3) @@ -332,7 +340,7 @@ \pgf@process{\pgfpointanchor{tkzSecondPointResult}{center}}% \tkz@dx\pgf@x% \tkz@dy\pgf@y% - \tkzInterLLxy(\tkz@ax,\tkz@ay,\tkz@bx,\tkz@by)(\tkz@cx,\tkz@cy,\tkz@dx,\tkz@dy)% +\tkzInterLLxy(\tkz@ax,\tkz@ay,\tkz@bx,\tkz@by)(\tkz@cx,\tkz@cy,\tkz@dx,\tkz@dy)% \endpgfinterruptboundingbox \endgroup } @@ -343,23 +351,22 @@ \def\tkzInCenter(#1,#2,#3){% \begingroup \pgfinterruptboundingbox - \tkzDefBisectorLine(#3,#1,#2) - \pgf@process{\pgfpointanchor{tkzPointResult}{center}}% - \tkz@bx\pgf@x% - \tkz@by\pgf@y% - \tkzDefBisectorLine(#3,#2,#1) - \pgf@process{\pgfpointanchor{tkzPointResult}{center}}% - \tkz@dx\pgf@x% - \tkz@dy\pgf@y% - \pgf@process{\pgfpointanchor{#1}{center}}% - \tkz@ax\pgf@x% - \tkz@ay\pgf@y% - \pgf@process{\pgfpointanchor{#2}{center}}% - \tkz@cx\pgf@x% - \tkz@cy\pgf@y% - \tkzInterLLxy(\tkz@ax,\tkz@ay,\tkz@bx,\tkz@by)% - (\tkz@cx,\tkz@cy,\tkz@dx,\tkz@dy)% - \endpgfinterruptboundingbox +\tkzDefBisectorLine(#3,#1,#2) +\pgf@process{\pgfpointanchor{tkzPointResult}{center}}% +\tkz@bx\pgf@x% +\tkz@by\pgf@y% +\tkzDefBisectorLine(#3,#2,#1) +\pgf@process{\pgfpointanchor{tkzPointResult}{center}}% +\tkz@dx\pgf@x% +\tkz@dy\pgf@y% +\pgf@process{\pgfpointanchor{#1}{center}}% +\tkz@ax\pgf@x% +\tkz@ay\pgf@y% +\pgf@process{\pgfpointanchor{#2}{center}}% +\tkz@cx\pgf@x% +\tkz@cy\pgf@y% +\tkzInterLLxy(\tkz@ax,\tkz@ay,\tkz@bx,\tkz@by)(\tkz@cx,\tkz@cy,\tkz@dx,\tkz@dy)% +\endpgfinterruptboundingbox \endgroup } \let\tkzDefInCenter\tkzInCenter @@ -369,23 +376,22 @@ \def\tkzExCenter(#1,#2,#3){% \begingroup \pgfinterruptboundingbox - \tkzDefBisectorOutLine(#2,#1,#3) - \pgf@process{\pgfpointanchor{tkzPointResult}{center}}% - \tkz@bx\pgf@x% - \tkz@by\pgf@y% - \tkzDefBisectorOutLine(#2,#3,#1) - \pgf@process{\pgfpointanchor{tkzPointResult}{center}}% - \tkz@dx\pgf@x% - \tkz@dy\pgf@y% - \pgf@process{\pgfpointanchor{#1}{center}}% - \tkz@ax\pgf@x% - \tkz@ay\pgf@y% - \pgf@process{\pgfpointanchor{#3}{center}}% - \tkz@cx\pgf@x% - \tkz@cy\pgf@y% - \tkzInterLLxy(\tkz@ax,\tkz@ay,\tkz@bx,\tkz@by)% - (\tkz@cx,\tkz@cy,\tkz@dx,\tkz@dy)% - \endpgfinterruptboundingbox +\tkzDefBisectorOutLine(#2,#1,#3) +\pgf@process{\pgfpointanchor{tkzPointResult}{center}}% +\tkz@bx\pgf@x% +\tkz@by\pgf@y% +\tkzDefBisectorOutLine(#2,#3,#1) +\pgf@process{\pgfpointanchor{tkzPointResult}{center}}% +\tkz@dx\pgf@x% +\tkz@dy\pgf@y% +\pgf@process{\pgfpointanchor{#1}{center}}% +\tkz@ax\pgf@x% +\tkz@ay\pgf@y% +\pgf@process{\pgfpointanchor{#3}{center}}% +\tkz@cx\pgf@x% +\tkz@cy\pgf@y% +\tkzInterLLxy(\tkz@ax,\tkz@ay,\tkz@bx,\tkz@by)(\tkz@cx,\tkz@cy,\tkz@dx,\tkz@dy)% +\endpgfinterruptboundingbox \endgroup } \let\tkzDefExCenter\tkzExCenter @@ -397,13 +403,13 @@ % passe par les midpoints par les pieds des hauteurs \begingroup \pgfinterruptboundingbox - \tkzDefMidPoint(#1,#2) - \pgfnodealias{eu@mic}{tkzPointResult} - \tkzDefMidPoint(#1,#3) - \pgfnodealias{eu@mib}{tkzPointResult} - \tkzDefMidPoint(#2,#3) - \pgfnodealias{eu@mia}{tkzPointResult} - \tkzCircumCenter(eu@mia,eu@mib,eu@mic) +\tkzDefMidPoint(#1,#2) +\pgfnodealias{eu@mic}{tkzPointResult} +\tkzDefMidPoint(#1,#3) +\pgfnodealias{eu@mib}{tkzPointResult} +\tkzDefMidPoint(#2,#3) +\pgfnodealias{eu@mia}{tkzPointResult} +\tkzCircumCenter(eu@mia,eu@mib,eu@mic) \endpgfinterruptboundingbox \endgroup } @@ -415,19 +421,19 @@ \def\tkzSymmedianCenter(#1,#2,#3){% \begingroup \pgfinterruptboundingbox - \tkzDefMidPoint(#2,#3) - \pgfnodealias{eu@mic}{tkzPointResult} - \tkzDefMidPoint(#1,#3) - \pgfnodealias{eu@mib}{tkzPointResult} - \tkzUProjection(#2,#3)(#1) - \pgfnodealias{ort@pta}{tkzPointResult} - \tkzDefMidPoint(#1,ort@pta) - \pgfnodealias{eu@mid}{tkzPointResult} - \tkzUProjection(#1,#3)(#2) - \pgfnodealias{ort@ptb}{tkzPointResult} - \tkzDefMidPoint(#2,ort@ptb) - \pgfnodealias{eu@mie}{tkzPointResult} - \tkzInterLL(eu@mic,eu@mid)(eu@mib,eu@mie) +\tkzDefMidPoint(#2,#3) +\pgfnodealias{eu@mic}{tkzPointResult} +\tkzDefMidPoint(#1,#3) +\pgfnodealias{eu@mib}{tkzPointResult} +\tkzUProjection(#2,#3)(#1) +\pgfnodealias{ort@pta}{tkzPointResult} +\tkzDefMidPoint(#1,ort@pta) +\pgfnodealias{eu@mid}{tkzPointResult} +\tkzUProjection(#1,#3)(#2) +\pgfnodealias{ort@ptb}{tkzPointResult} +\tkzDefMidPoint(#2,ort@ptb) +\pgfnodealias{eu@mie}{tkzPointResult} +\tkzInterLL(eu@mic,eu@mid)(eu@mib,eu@mie) \endpgfinterruptboundingbox \endgroup } @@ -441,13 +447,13 @@ \begingroup % we need to get the midpoints \pgfcoordinate{tkz@m3}{% - \pgfpointscale{0.5}{% - \pgfpointadd{\pgfpointanchor{#1}{center}}% - {\pgfpointanchor{#2}{center}}}}% + \pgfpointscale{0.5}{% + \pgfpointadd{\pgfpointanchor{#1}{center}}% + {\pgfpointanchor{#2}{center}}}}% \pgfcoordinate{tkz@m2}{% - \pgfpointscale{0.5}{% - \pgfpointadd{\pgfpointanchor{#1}{center}}% - {\pgfpointanchor{#3}{center}}}}% + \pgfpointscale{0.5}{% + \pgfpointadd{\pgfpointanchor{#1}{center}}% + {\pgfpointanchor{#3}{center}}}}% \pgfcoordinate{tkz@m1}{% \pgfpointscale{0.5}{% \pgfpointadd{\pgfpointanchor{#2}{center}}% @@ -462,13 +468,13 @@ \def\tkzGergonneCenter(#1,#2,#3){% \begingroup \pgfinterruptboundingbox - \tkzInCenter(#1,#2,#3) - \pgfnodealias{tkz@ptin}{tkzPointResult} - \tkzUProjection(#2,#3)(tkz@ptin) - \pgfnodealias{tkz@oca}{tkzPointResult} - \tkzUProjection(#1,#3)(tkz@ptin) - \pgfnodealias{tkz@ocb}{tkzPointResult} - \tkzInterLL(#1,tkz@oca)(#2,tkz@ocb) +\tkzInCenter(#1,#2,#3) +\pgfnodealias{tkz@ptin}{tkzPointResult} +\tkzUProjection(#2,#3)(tkz@ptin) +\pgfnodealias{tkz@oca}{tkzPointResult} +\tkzUProjection(#1,#3)(tkz@ptin) +\pgfnodealias{tkz@ocb}{tkzPointResult} +\tkzInterLL(#1,tkz@oca)(#2,tkz@ocb) \endpgfinterruptboundingbox \endgroup } @@ -480,12 +486,12 @@ \def\tkzNagelCenter(#1,#2,#3){% \begingroup \pgfinterruptboundingbox - \tkzDefExcentralTriangle(#1,#2,#3){tkz@a,tkz@b,tkz@c} - \tkzUProjection(#2,#3)(tkz@a) - \pgfnodealias{tkz@tgta}{tkzPointResult} - \tkzUProjection(#1,#2)(tkz@c) - \pgfnodealias{tkz@tgtc}{tkzPointResult} - \tkzInterLL(#1,tkz@tgta)(#3,tkz@tgtc) +\tkzDefExcentralTriangle(#1,#2,#3){tkz@a,tkz@b,tkz@c} +\tkzUProjection(#2,#3)(tkz@a) +\pgfnodealias{tkz@tgta}{tkzPointResult} +\tkzUProjection(#1,#2)(tkz@c) +\pgfnodealias{tkz@tgtc}{tkzPointResult} +\tkzInterLL(#1,tkz@tgta)(#3,tkz@tgtc) \endpgfinterruptboundingbox \endgroup } @@ -496,18 +502,18 @@ \def\tkzMittenpunktCenter(#1,#2,#3){% \begingroup \pgfinterruptboundingbox - \tkzExCenter(#2,#3,#1) - \pgfnodealias{tkz@a}{tkzPointResult} - \tkzExCenter(#3,#1,#2) - \pgfnodealias{tkz@b}{tkzPointResult} - \pgfcoordinate{tkz@ma}{% - \pgfpointscale{0.5}{% - \pgfpointadd{\pgfpointanchor{#1}{center}}{\pgfpointanchor{#2}{center}}}}% - \pgfcoordinate{tkz@mb}{% - \pgfpointscale{0.5}{% - \pgfpointadd{\pgfpointanchor{#2}{center}}{\pgfpointanchor{#3}{center}}}}% - \tkzInterLL(tkz@a,tkz@ma)(tkz@b,tkz@mb) - \endpgfinterruptboundingbox +\tkzExCenter(#2,#3,#1) +\pgfnodealias{tkz@a}{tkzPointResult} +\tkzExCenter(#3,#1,#2) +\pgfnodealias{tkz@b}{tkzPointResult} +\pgfcoordinate{tkz@ma}{% +\pgfpointscale{0.5}{% +\pgfpointadd{\pgfpointanchor{#1}{center}}{\pgfpointanchor{#2}{center}}}}% +\pgfcoordinate{tkz@mb}{% +\pgfpointscale{0.5}{% +\pgfpointadd{\pgfpointanchor{#2}{center}}{\pgfpointanchor{#3}{center}}}}% +\tkzInterLL(tkz@a,tkz@ma)(tkz@b,tkz@mb) +\endpgfinterruptboundingbox \endgroup } \let\tkzDefMittenpunktCenter\tkzMittenpunktCenter @@ -518,14 +524,14 @@ \def\tkzFeuerbachCenter(#1,#2,#3){% \begingroup \pgfinterruptboundingbox - \tkzEulerCenter(#1,#2,#3) - \pgfnodealias{tkz@euler}{tkzPointResult} - \tkzInCenter(#1,#2,#3) - \pgfnodealias{tkz@in}{tkzPointResult} - \tkzUProjection(#2,#3)(tkzPointResult) - \tkzInterLC(tkz@in,tkz@euler)(tkz@in,tkzPointResult)\tkzGetFirstPoint{tkz@fe} - \tkzRenamePoint(tkz@fe){tkzPointResult} - \endpgfinterruptboundingbox +\tkzEulerCenter(#1,#2,#3) +\pgfnodealias{tkz@euler}{tkzPointResult} +\tkzInCenter(#1,#2,#3) +\pgfnodealias{tkz@in}{tkzPointResult} +\tkzUProjection(#2,#3)(tkzPointResult) +\tkzInterLC(tkz@in,tkz@euler)(tkz@in,tkzPointResult)\tkzGetFirstPoint{tkz@fe} +\tkzRenamePoint(tkz@fe){tkzPointResult} +\endpgfinterruptboundingbox \endgroup } \let\tkzDefFeuerbachCenter\tkzFeuerbachCenter @@ -535,11 +541,11 @@ \def\tkzOrthogonalCenter(#1,#2){% \begingroup \pgfinterruptboundingbox - \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@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) \endpgfinterruptboundingbox \endgroup } @@ -587,21 +593,40 @@ %<--------------------------------------------------------------------------–> \def\tkz@numptcirc{0} \pgfkeys{/tkzptcircle/.cd, - through/.code args = {angle #1 center #2 point #3} {\def\tkz@angle{#1}% - \def\tkz@center{#2}% - \def\tkz@through{#3}% - \def\tkz@numptcirc{0}}, - R/.code args = {angle #1 center #2 radius #3} {\def\tkz@angle{#1}% - \def\tkz@center{#2}% - \def\tkz@radius{#3}% - \def\tkz@numptcirc{1}}, +through/.code args = {center #1 angle #2 point #3} { \def\tkz@center{#1}% + \def\tkz@angle{#2}% + \def\tkz@through{#3}% + \def\tkz@numptcirc{0}}, +R/.code args = {center #1 angle #2 radius #3} { \def\tkz@center{#1}% + \def\tkz@angle{#2}% + \def\tkz@radius{#3}% + \def\tkz@numptcirc{1}}, +through in rad/.code args = {center #1 angle #2 point #3} { \def\tkz@center{#1}% + \def\tkz@angle{#2}% + \def\tkz@through{#3}% + \def\tkz@numptcirc{2}}, +R in rad/.code args = {center #1 angle #2 radius #3} { \def\tkz@center{#1}% + \def\tkz@angle{#2}% + \def\tkz@radius{#3}% + \def\tkz@numptcirc{3}} } -\def\tkzDefPointOnCircle{\pgfutil@ifnextchar[{\tkz@DefPointOnCircle}{\tkz@DefPointOnCircle[]}} + +\def\tkzDefPointOnCircle{\pgfutil@ifnextchar[{\tkz@DefPointOnCircle}{% + \tkz@DefPointOnCircle[]}} \def\tkz@DefPointOnCircle[#1]{% \begingroup \pgfqkeys{/tkzptcircle}{#1} \ifcase\tkz@numptcirc% \tkz@@CalcLengthcm(\tkz@center,\tkz@through){tkz@radius} + \or% 1 + \relax% + \or% 2 + \pgfmathparse{\tkz@angle\space r} + \let\tkz@angle\pgfmathresult + \tkz@@CalcLengthcm(\tkz@center,\tkz@through){tkz@radius} + \or% 3 + \pgfmathparse{\tkz@angle\space r} + \let\tkz@angle\pgfmathresult \fi \path (\tkz@center) --++(\tkz@angle:\tkz@radius) coordinate(tkzPointResult); \endgroup |