diff options
author | Karl Berry <karl@freefriends.org> | 2022-07-15 21:46:25 +0000 |
---|---|---|
committer | Karl Berry <karl@freefriends.org> | 2022-07-15 21:46:25 +0000 |
commit | a37835eecfb8c04bd99ca2420cc72418dec4198b (patch) | |
tree | a1c9effe63509d07db09207df1153ef0ed5ba255 /Master/texmf-dist/tex/latex/tkz-euclide | |
parent | 0c65eda87a3a65cdb4bcf42a2912bd9721816bd7 (diff) |
tkz-euclide (15jul22)
git-svn-id: svn://tug.org/texlive/trunk@63907 c570f23f-e606-0410-a88d-b1316a301751
Diffstat (limited to 'Master/texmf-dist/tex/latex/tkz-euclide')
35 files changed, 1232 insertions, 1088 deletions
diff --git a/Master/texmf-dist/tex/latex/tkz-euclide/tkz-euclide.cfg b/Master/texmf-dist/tex/latex/tkz-euclide/tkz-euclide.cfg index 7516b752a3c..97a5b3c4e64 100644 --- a/Master/texmf-dist/tex/latex/tkz-euclide/tkz-euclide.cfg +++ b/Master/texmf-dist/tex/latex/tkz-euclide/tkz-euclide.cfg @@ -16,9 +16,9 @@ % and save the file in a directory part of your TEXINPUTS environment % variable. -\def\fileversion{4.051b} -\def\filedate{2022/02/25} -\typeout{2022/02/25 4.051b tkz-euclide.cfg} +\def\fileversion{4.2c} +\def\filedate{2022/07/14} +\typeout{2022/07/14 4.2c tkz-euclide.cfg} %<------ colors ---------------------------------------–> \def\tkz@backgroundcolor{white} \def\tkz@textcolor{black} @@ -26,35 +26,75 @@ \def\tkz@fillcolor{\tkz@backgroundcolor} \def\tkz@mainlinecolor{\tkz@textcolor} \def\tkz@otherlinecolor{\tkz@mainlinecolor!50} -%<------------------------- Cartesian system -----------------------------–> -% Default unity cm -% Geometry Euclidean with unity for x and y = 1cm ---> step = 1 -% 0 ≤ x ≤ 10 -% 0 ≤ y ≤ 10 -\def\tkz@init@xorigine{0} -\def\tkz@init@yorigine{0} -\def\tkz@init@xstep{1} -\def\tkz@init@ystep{1} -\def\tkz@init@xmin{0} -\def\tkz@init@ymin{0} -\def\tkz@init@xmax{10} -\def\tkz@init@ymax{10} -\def\tkz@init@xdec{1} -\def\tkz@init@ydec{1} %<-------------------------- points -----------------------------------–> \def\tkz@euc@pointshape{circle} \def\tkz@euc@pointcolor{\tkz@mainlinecolor} \def\tkz@euc@labelcolor{\tkz@mainlinecolor} -\def\tkz@euc@pointsize{3} +\def\tkz@euc@pointsize{2} \def\tkz@euc@pointpos{below right} \def\tkz@euc@segmentcolor{\tkz@mainlinecolor} \def\tkz@euc@circlecolor{\tkz@mainlinecolor} +\tikzset{point style/.style = {draw = \tkz@euc@pointcolor, + inner sep = 0pt, + shape = \tkz@euc@pointshape, + minimum size = \tkz@euc@pointsize, + fill = \tkz@euc@pointcolor + } + } +% label for the point +\tikzset{label style/.style={ below, \tkz@euc@labelcolor, + font = \normalsize} + } +\tikzset{label angle style/.style={ \tkz@euc@labelcolor, + font = \normalsize} + } %<-------------------------- line ---------------------------------------–> \def\tkz@euc@linecolor{\tkz@mainlinecolor} -\def\tkz@euc@linewidth{0.6pt} +\def\tkz@euc@linewidth{0.2pt} \def\tkz@euc@linestyle{solid} \def\tkz@euc@lineleft{.2} \def\tkz@euc@lineright{.2} +\tikzset{% +line style/.style = {% + line width = \tkz@euc@linewidth, + color = \tkz@euc@linecolor, + style = \tkz@euc@linestyle, + add = {\tkz@euc@lineleft} and {\tkz@euc@lineright}, + line cap = round + } +} +%<------------------------- circle -----------------------------------–> +\def\tkz@euc@circlelw{\tkz@euc@linewidth} +\def\tkz@euc@circlecolor{\tkz@otherlinecolor} +\def\tkz@euc@circlestyle{solid} +\tikzset{% +circle style/.style = {% + color = \tkz@euc@circlecolor, + line width = \tkz@euc@circlelw, + style = \tkz@euc@circlestyle} +} +\tikzset{label circle style/.style = {% + color = \tkz@mainlinecolor} +} +%<------------------------- compass -----------------------------------–> +\def\tkz@euc@compasscolor{\tkz@otherlinecolor} +\def\tkz@euc@compasswidth{\tkz@euc@linewidth} +\def\tkz@euc@compassstyle{solid} +\tikzset{% +compass style/.style = {% + color = \tkz@euc@compasscolor, + line width = \tkz@euc@compasswidth, + style = \tkz@euc@compassstyle} +} +%<------------------------- arc -----------------------------------–> +\def\tkz@euc@arclw{\tkz@euc@linewidth} +\def\tkz@euc@arccolor{\tkz@mainlinecolor} +\def\tkz@euc@arcstyle{solid} +\tikzset{% +arc style/.style={% + color = \tkz@euc@arccolor, + line width = \tkz@euc@linewidth} +} %<------ axes cartesian system ---------------------------------------–> \def\tkz@init@color{\tkz@textcolor} \def\tkz@init@lw{0.4 pt} @@ -86,14 +126,7 @@ \def\tkz@init@gradsize{\textstyle} \def\tkzRatioLineGrid{0.75} \def\tkz@gd@sublw{0.4 pt}% size line sub grid -%<------------------------- compass -----------------------------------–> -\def\tkz@euc@compasscolor{\tkz@otherlinecolor} -\def\tkz@euc@compasswidth{0.4pt} -\def\tkz@euc@compassstyle{solid} -%<------------------------- arc -----------------------------------–> -\def\tkz@arc@lw{0.4pt} -\def\tkz@arc@color{\tkz@mainlinecolor} -\def\tkz@arc@style{solid} + %<---------------------------- mark -----------------------------------–> \def\tkz@mk@color{\tkz@mainlinecolor} \def\tkz@mk@mark{*} @@ -114,41 +147,11 @@ } \tikzset{yaxe style/.style = {> = latex, ->} } - -\tikzset{point style/.style = {draw = \tkz@euc@pointcolor, - inner sep = 0pt, - shape = \tkz@euc@pointshape, - minimum size = \tkz@euc@pointsize, - fill = \tkz@euc@pointcolor - } - } -% label for the point -\tikzset{label style/.style={ \tkz@euc@pointpos, - \tkz@euc@labelcolor, - font = \normalsize} - } -\tikzset{label angle style/.style={ \tkz@euc@labelcolor, - font = \normalsize} - } -\tikzset{line style/.style = {line width = \tkz@euc@linewidth, - color = \tkz@euc@linecolor, - style = \tkz@euc@linestyle, - add = {\tkz@euc@lineleft} and {\tkz@euc@lineright}, - line cap = round - } - } -\tikzset{label seg style/.style = {color = \tkz@mainlinecolor, - auto - } - } \tikzset{rep style/.style = { ->, >=latex} } -\tikzset{compass style/.style = {color = \tkz@euc@compasscolor, - line width = \tkz@euc@compasswidth, - style = \tkz@euc@compassstyle} - } + \tikzset{mark style/.style = {mark = \tkz@mk@mark, mark size = \tkz@mk@size, mark options = {color= \tkz@mk@color, @@ -156,7 +159,22 @@ } } } -\tikzset{arc style/.style={gray,thin}} + +%<------------------------- Cartesian system -----------------------------–> +% Default unity cm +% Geometry Euclidean with unity for x and y = 1cm ---> step = 1 +% 0 ≤ x ≤ 10 +% 0 ≤ y ≤ 10 +\def\tkz@init@xorigine{0} +\def\tkz@init@yorigine{0} +\def\tkz@init@xstep{1} +\def\tkz@init@ystep{1} +\def\tkz@init@xmin{0} +\def\tkz@init@ymin{0} +\def\tkz@init@xmax{10} +\def\tkz@init@ymax{10} +\def\tkz@init@xdec{1} +\def\tkz@init@ydec{1} %<---------------------- show coord -----------------------------------–> \tikzset{arrow coord style/.style = {dashed, \tkz@euc@linecolor, @@ -180,6 +198,7 @@ left = 3pt} } % +\tikzset{help lines/.style=teal!30,ultra thin} %<--------------------------- arrow --------------------------------------–> % Syntax: % @@ -264,6 +283,7 @@ tkz arrow/.default=Latex, --(current bounding box.north east) -- (current bounding box.south east) -- cycle} }} + \def\tkzPhi{1.618034} \def\tkzInvPhi{0.618034} \def\tkzSqrtPhi{1.27202} @@ -273,4 +293,5 @@ tkz arrow/.default=Latex, \def\tkzSqrTwobyTwo{0.7071065} \def\tkzPi{3.1415926} \def\tkzEuler{2.71828182} + \endinput
\ No newline at end of file diff --git a/Master/texmf-dist/tex/latex/tkz-euclide/tkz-euclide.sty b/Master/texmf-dist/tex/latex/tkz-euclide/tkz-euclide.sty index 6671d81a0e4..2708f4e7300 100644 --- a/Master/texmf-dist/tex/latex/tkz-euclide/tkz-euclide.sty +++ b/Master/texmf-dist/tex/latex/tkz-euclide/tkz-euclide.sty @@ -1,21 +1,20 @@ -% tkz-euclide.sty +% tkz-euclide.sty % 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. % The latest version of this license is in % 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. +% 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. - -%<------------------------------------------------------------> -\def\fileversion{4.051b} -\def\filedate{2022/02/25} -\typeout{2022/02/25 4.051b tkz-euclide.sty} +%------------------------------------------------------------------------------- +\def\fileversion{4.2c} +\def\filedate{2022/07/14} +\typeout{2022/07/14 4.2c tkz-euclide.sty} \NeedsTeXFormat{LaTeX2e} -\ProvidesPackage{tkz-euclide}[ 2022/02/25 4.051b for pure Euclidean Geometry ] - +\ProvidesPackage{tkz-euclide}[ 2022/07/14 4.2c for pure Euclidean Geometry ] \@ifpackageloaded{tkz-base}{ \newdimen\tkzRadius \newdimen\tkzLength @@ -24,6 +23,7 @@ \newif\ifnormtkzcode@execute% german ? right angle %---------------------- semi circle \newif\iftkz@swap@sc +\newif\iftkz@line@normed %--------------------- circles \newif\iftkzClipOutCircle %--------------------- polygons @@ -34,11 +34,16 @@ %--------------------- intersections \newif\iftkzFlagLC\tkzFlagLCfalse \newif\iftkzFlagCC\tkzFlagCCfalse +\newif\iftkz@near\tkz@nearfalse +%--------------------- +\newif\iftkzLinear\tkzLinearfalse +\newif\iftkzOrtho\tkzOrthofalse }{ \RequirePackage{tikz} \usetikzlibrary{angles, arrows, arrows.meta, + backgrounds, calc, decorations, decorations.markings, @@ -47,16 +52,25 @@ decorations.text, decorations.pathmorphing, intersections, + math, plotmarks, + positioning, quotes, - shapes.misc + shapes.misc, + through } \RequirePackage{xfp} -%--------------------- +\usepackage{xpatch} +\xpatchcmd\pgfmathreciprocal@@ {\pgfmath@y.1\pgfmath@y\pgfmath@y.1\pgfmath@y\pgfmath@y.1\pgfmath@y\pgfmath@y.1\pgfmath@y} + {\pgfmath@y\dimexpr\pgfmath@y/10000\relax} + {}{\PatchFailed} + +%------------------------------------------------------------------------------- \newdimen\tkzRadius \newdimen\tkzLength \newdimen\tkz@radi -%--------------------- tkz registres +%------------------------------------------------------------------------------- +% tkz registres \newdimen\tkz@ax \newdimen\tkz@ay \newdimen\tkz@bx @@ -85,6 +99,10 @@ %--------------------- intersections \newif\iftkzFlagLC\tkzFlagLCfalse \newif\iftkzFlagCC\tkzFlagCCfalse +\newif\iftkz@near\tkz@nearfalse +%--------------------- utilities +\newif\iftkzLinear\tkzLinearfalse +\newif\iftkzOrtho\tkzOrthofalse %--------------------- tkz axis \newif\iftkz@X@noticks \newif\iftkz@Y@noticks @@ -113,7 +131,8 @@ \newcount\tkz@cntmk \newif\iftkz@RappReturn % protractor \newif\iftkz@RappFull -%--------------------- Init +%------------------------------------------------------------------------------- +% Init \def\tkz@xa{0} \def\tkz@xb{10} \def\tkz@ya{0} @@ -123,13 +142,12 @@ \typeout{Local configuration file tkz-euclide.cfg found and used}}{% \typeout{tkz-euclide.cfg not found}} } -%--------------------- Init +%------------------------------------------------------------------------------- \def\tkz@tmp@xa{-5} \def\tkz@tmp@xb{+5} \def\tkz@tmp@ya{-5} \def\tkz@tmp@yb{+5} -%<----------------------------------------------------------> - +%------------------------------------------------------------------------------- \DeclareOption*{} \ProcessOptions %<----------------------------------------------------------> @@ -147,11 +165,12 @@ \input{tkz-obj-eu-axesmin.tex} \input{tkz-tools-eu-colors.tex} \input{tkz-obj-eu-points.tex} +\input{tkz-obj-eu-draw-points.tex} } % next from euclide -\input{tkz-tools-eu-math.tex} -\input{tkz-tools-eu-intersections} \input{tkz-tools-eu-angles} +\input{tkz-tools-eu-intersections} +\input{tkz-tools-eu-math.tex} \input{tkz-obj-eu-compass.tex} \input{tkz-obj-eu-circles.tex} \input{tkz-obj-eu-circles-by.tex} @@ -170,4 +189,5 @@ \input{tkz-obj-eu-sectors.tex} \input{tkz-obj-eu-show.tex} \input{tkz-obj-eu-triangles} -\endinput + +\endinput
\ No newline at end of file diff --git a/Master/texmf-dist/tex/latex/tkz-euclide/tkz-lib-eu-marks.tex b/Master/texmf-dist/tex/latex/tkz-euclide/tkz-lib-eu-marks.tex index cc4cc0bd09a..e6192198cfc 100644 --- a/Master/texmf-dist/tex/latex/tkz-euclide/tkz-lib-eu-marks.tex +++ b/Master/texmf-dist/tex/latex/tkz-euclide/tkz-lib-eu-marks.tex @@ -10,16 +10,16 @@ % 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-lib-eu-marks.tex} +\def\fileversion{4.2c} +\def\filedate{2022/07/14} +\typeout{2022/07/14 4.2c tkz-lib-eu-marks.tex} \makeatletter %<--------------------------------------------------------------------------–> % Création des symboles %<--------------------------------------------------------------------------–> \def\tkz@undefined{none} % double bar -\pgfdeclareplotmark{||} +\pgfdeclareplotmark{ } {% \pgfpathmoveto{\pgfqpoint{2\pgflinewidth}{\pgfplotmarksize}} \pgfpathlineto{\pgfqpoint{2\pgflinewidth}{-\pgfplotmarksize}} @@ -28,7 +28,7 @@ \pgfusepathqstroke } %triple bar -\pgfdeclareplotmark{|||} +\pgfdeclareplotmark{ } {% \pgfpathmoveto{\pgfqpoint{0 pt}{\pgfplotmarksize}} \pgfpathlineto{\pgfqpoint{0 pt}{-\pgfplotmarksize}} @@ -40,7 +40,7 @@ } % An bar slant -\pgfdeclareplotmark{s|} +\pgfdeclareplotmark{s } {% \pgfpathmoveto{\pgfqpoint{-.70710678\pgfplotmarksize}% {-.70710678\pgfplotmarksize}} @@ -51,7 +51,7 @@ % An double bar slant -\pgfdeclareplotmark{s||} +\pgfdeclareplotmark{s } {% \pgfpathmoveto{\pgfqpoint{-0.75\pgfplotmarksize}{-\pgfplotmarksize}} \pgfpathlineto{\pgfqpoint{0.25\pgfplotmarksize}{\pgfplotmarksize}} @@ -59,7 +59,7 @@ \pgfpathlineto{\pgfqpoint{1\pgfplotmarksize}{\pgfplotmarksize}} \pgfusepathqstroke } -\pgfdeclareplotmark{s|||} +\pgfdeclareplotmark{s } {% \pgfpathmoveto{\pgfqpoint{-0.75\pgfplotmarksize}{-\pgfplotmarksize}} \pgfpathlineto{\pgfqpoint{0.25\pgfplotmarksize}{\pgfplotmarksize}} diff --git a/Master/texmf-dist/tex/latex/tkz-euclide/tkz-lib-eu-shape.tex b/Master/texmf-dist/tex/latex/tkz-euclide/tkz-lib-eu-shape.tex index 98fbfce2414..f0e53e24825 100644 --- a/Master/texmf-dist/tex/latex/tkz-euclide/tkz-lib-eu-shape.tex +++ b/Master/texmf-dist/tex/latex/tkz-euclide/tkz-lib-eu-shape.tex @@ -1,4 +1,4 @@ -% tkz-lib-eu-shape.tex + % tkz-lib-eu-shape.tex % 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 @@ -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-lib-eu-shape.tex} +\def\fileversion{4.2c} +\def\filedate{2022/07/14} +\typeout{2022/07/14 4.2c tkz-lib-eu-shape.tex} \makeatletter %<--------------------------------------------------------------------------–> % Création des symboles diff --git a/Master/texmf-dist/tex/latex/tkz-euclide/tkz-obj-eu-axesmin.tex b/Master/texmf-dist/tex/latex/tkz-euclide/tkz-obj-eu-axesmin.tex index 5ee8ab60a28..883928a5a8a 100644 --- a/Master/texmf-dist/tex/latex/tkz-euclide/tkz-obj-eu-axesmin.tex +++ b/Master/texmf-dist/tex/latex/tkz-euclide/tkz-obj-eu-axesmin.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-eu-axesmin} +\def\fileversion{4.2c} +\def\filedate{2022/07/14} +\typeout{2022/07/14 4.2c tkz-obj-eu-axesmin} \makeatletter \def\removedot#1.{#1} @@ -107,7 +107,8 @@ \edef\tkz@posnext{\fpeval{\tkz@posnext/\tkz@init@xstep+\tkz@posmin}} \foreach \pos in {\tkz@posmin,...,\tkz@posmax}{% \edef\tkz@pos{\fpeval{\pos*1}}% ??? - \draw[ color = \tkz@X@color, line width = \tkz@X@tickwd, + \draw[ color = \tkz@X@color, + line width = \tkz@X@tickwd, shift = {(\tkz@pos,0)}]% (0pt,\tkz@X@tickup)--(0pt,-\tkz@X@tickdn); } diff --git a/Master/texmf-dist/tex/latex/tkz-euclide/tkz-obj-eu-circles-by.tex b/Master/texmf-dist/tex/latex/tkz-euclide/tkz-obj-eu-circles-by.tex index a3bcf65ec39..d0caf96a373 100644 --- a/Master/texmf-dist/tex/latex/tkz-euclide/tkz-obj-eu-circles-by.tex +++ b/Master/texmf-dist/tex/latex/tkz-euclide/tkz-obj-eu-circles-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.051b} -\def\filedate{2022/02/25} -\typeout{2022/02/25 4.051b tkz-obj-eu-circles.tex} +\def\fileversion{4.2c} +\def\filedate{2022/07/14} +\typeout{2022/07/14 4.2c tkz-obj-eu-circles.tex} \makeatletter %<--------------------------------------------------------------------------–> % tkzCircle center and one point @@ -37,15 +37,10 @@ rotation/.code args = {center #1 angle #2}{ \def\tkz@numcby{4} \def\tkzcenter{#1} \def\tkzangle{#2}}, - orthogonal from/.code args = {#1}{ \def\tkz@numcby{5} - \def\tkz@ptfrom{#1}}, - orthogonal through/.code args = {#1 and #2}{ \def\tkz@numcby{6} - \def\tkz@ptone{#1} - \def\tkz@pttwo{#2}}, - inversion/.code args={center #1 through #2}{ \def\tkz@numcby{7} + inversion/.code args={center #1 through #2}{ \def\tkz@numcby{5} \def\tkzcenter{#1} \def\tkzpoint{#2}}, - inversion negative/.code args = {center #1 through #2}{\def\tkz@numcby{8} + inversion negative/.code args = {center #1 through #2}{\def\tkz@numcby{6} \def\tkzcenter{#1} \def\tkzpoint{#2}} } @@ -64,14 +59,10 @@ \or% 4 \tkzDefCircleRotation(#2) \or% 5 - \tkzDefOrthogonalCircle(#2,\tkz@ptfrom) - \or% 6 - \tkzDefOrthoThroughCircle(#2,\tkz@ptone,\tkz@pttwo) - \or% 7 \tkzDefInversionCircle(#2,\tkzcenter,\tkzpoint) - \or% 8 - \tkzDefInversionNegativeCircle(#2,\tkzcenter,\tkzpoint) - \fi + \or% 6 + \tkzDefInversionNegativeCircle(#2,\tkzcenter,\tkzpoint) +\fi \endgroup } %<--------------------------------------------------------------------------–> @@ -120,24 +111,43 @@ \endgroup } %<--------------------------------------------------------------------------–> +% #3,#4 cercle d'inversion centre #3. through #4 +% Si le cercle passe par le pôle l'image est une droite \def\tkzDefInversionCircle(#1,#2,#3,#4){% \begingroup - \tkzInterLC(#3,#1)(#1,#2) \tkzGetPoints{tkz@p1}{tkz@p2} - \tkzUInversePoint(#3,#4)(tkz@p1) + \tkz@@CalcLengthcm(#1,#2){tkz@lna}% + \tkz@@CalcLengthcm(#1,#3){tkz@lnb}% + \gdef\tkzMathResult{\fpeval{round(abs(\tkz@lnb - \tkz@lna),6)}} + \ifdim\tkzMathResult pt < 1 pt\relax% + \tkzURotateAngle(#1,-90)(#2) + \pgfnodealias{tkz@a}{tkzPointResult} + + \tkzUInversePoint(#3,#4)(tkz@a) \pgfnodealias{tkzFirstPointResult}{tkzPointResult} - \tkzUInversePoint(#3,#4)(tkz@p2) + \tkzUInversePoint(#3,#4)(#2) \pgfnodealias{tkzSecondPointResult}{tkzPointResult} + \else + \tkzURotateAngle(#1,90)(#2) + \pgfnodealias{tkz@a}{tkzPointResult} + \tkzURotateAngle(#1,-90)(#2) + \pgfnodealias{tkz@b}{tkzPointResult} + \tkzUInversePoint(#3,#4)(tkz@a) + \pgfnodealias{tkz@p1}{tkzPointResult} + \tkzUInversePoint(#3,#4)(tkz@b) + \pgfnodealias{tkz@p2}{tkzPointResult} + \tkzUInversePoint(#3,#4)(#2) + \pgfnodealias{tkz@p3}{tkzPointResult} + \tkzDefCircle[circum](tkz@p3,tkz@p1,tkz@p2) + \fi \endgroup } %<--------------------------------------------------------------------------–> \def\tkzDefInversionNegativeCircle(#1,#2,#3,#4){% \begingroup - \tkzInterLC(#3,#1)(#1,#2) \tkzGetPoints{tkz@p1}{tkz@p2} - \tkzUInversePoint(\tkzcenter,\tkzpoint)(tkz@p1) - \tkzUCSym(\tkzcenter)(tkzPointResult) + \tkzDefInversionCircle(#1,#2,#3,#4) + \tkzUCSym(\tkzcenter)(tkzFirstPointResult) \pgfnodealias{tkzFirstPointResult}{tkzPointResult} - \tkzUInversePoint(\tkzcenter,\tkzpoint)(tkz@p2) - \tkzUCSym(\tkzcenter)(tkzPointResult) + \tkzUCSym(\tkzcenter)(tkzSecondPointResult) \pgfnodealias{tkzSecondPointResult}{tkzPointResult} \endgroup } diff --git a/Master/texmf-dist/tex/latex/tkz-euclide/tkz-obj-eu-circles.tex b/Master/texmf-dist/tex/latex/tkz-euclide/tkz-obj-eu-circles.tex index 8eb9ce62cf9..3b309afa48f 100644 --- a/Master/texmf-dist/tex/latex/tkz-euclide/tkz-obj-eu-circles.tex +++ b/Master/texmf-dist/tex/latex/tkz-euclide/tkz-obj-eu-circles.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-eu-circles.tex} +\def\fileversion{4.2c} +\def\filedate{2022/07/14} +\typeout{2022/07/14 4.2c tkz-obj-eu-circles.tex} \makeatletter %<--------------------------------------------------------------------------–> % tkzCircle center and one point @@ -23,31 +23,30 @@ % through instead of radius \def\tkz@numc{0} \pgfkeys{/tkzcircle/.cd, - through/.code = \def\tkz@numc{0}, - radius/.code = \def\tkz@numc{0}, - diameter/.code = \def\tkz@numc{1}, - circum/.code = \def\tkz@numc{2}, - in/.code = \def\tkz@numc{3}, - ex/.code = \def\tkz@numc{4}, - euler/.code = \def\tkz@numc{5}, - nine/.code = \def\tkz@numc{5}, - apollonius/.code = \def\tkz@numc{6}, - orthogonal from/.code args = {#1}{\def\tkz@ptfrom{#1} - \def\tkz@numc{7}}, - orthogonal through/.code args = {#1 and #2}{\def\tkz@ptone{#1} - \def\tkz@pttwo{#2} - \def\tkz@numc{8}}, - spieker/.code = \def\tkz@numc{9}, - K/.code = \def\tkz@koeff{#1}, - K = 1, - through + R/.code = \def\tkz@numc{0}, + diameter/.code = \def\tkz@numc{1}, + circum/.code = \def\tkz@numc{2}, + in/.code = \def\tkz@numc{3}, + ex/.code = \def\tkz@numc{4}, + euler/.code = \def\tkz@numc{5}, + nine/.code = \def\tkz@numc{5}, + apollonius/.code = \def\tkz@numc{6}, + spieker/.code = \def\tkz@numc{7}, + orthogonal from/.code args = {#1}{\gdef\tkz@numc{8} + \def\tkz@ptfrom{#1}}, + orthogonal through/.code args = {#1 and #2}{\gdef\tkz@numc{9} + \def\tkz@ptone{#1} + \def\tkz@pttwo{#2}}, + K/.code = \def\tkz@koeff{#1}, + K = 1, + circum } \def\tkzDefCircle{\pgfutil@ifnextchar[{\tkz@DefCircle}{\tkz@DefCircle[]}} \def\tkz@DefCircle[#1](#2){% \begingroup \pgfqkeys{/tkzcircle}{#1} \ifcase\tkz@numc% - \tkzDefCircleThrough(#2)% + \tkzDefCircleR(#2) \or% 1 \tkzDefCircleD(#2) \or% 2 @@ -61,21 +60,24 @@ \or% 6 \tkzDefApolloniusCircle(#2) \or% 7 - \tkzDefOrthogonalCircle(#2,\tkz@ptfrom) - \or% 8 - \tkzDefOrthoThroughCircle(#2,\tkz@ptone,\tkz@pttwo) - \or% 9 \tkzDefSpiekerCircle(#2) + \or% 8 + \tkzDefOrthogonalCircle(#2,\tkz@ptfrom) + \or% 9 + \tkzDefOrthoThroughCircle(#2,\tkz@ptone,\tkz@pttwo) \fi \endgroup } %for compatibility %<--------------------------------------------------------------------------–> +% R +%<--------------------------------------------------------------------------–> \def\tkzDefCircleR(#1,#2){% \begingroup \edef\tkzLengthResult{\fpeval{round(#2,5)}} \global\let\tkzLengthResult\tkzLengthResult - \tkzRenamePoint(#1){tkzPointResult} + \path (#1)--++(\tkzLengthResult,0) coordinate (tkzSecondPointResult); + \tkzRenamePoint(tkzSecondPointResult){tkzPointResult} \endgroup } %<--------------------------------------------------------------------------–> @@ -83,16 +85,20 @@ %<--------------------------------------------------------------------------–> \def\tkzDefCircleThrough(#1,#2){% \begingroup - \tkz@@CalcLengthcm(#1,#2){tkzLengthResult} - \tkzRenamePoint(#1){tkzPointResult} + \tkz@@CalcLengthcm(#1,#2){tkzLengthResult} + \node [draw,circle through=(#2)] at (#1) {}; + \tkzRenamePoint(#1){tkzPointResult} \endgroup } + %<--------------------------------------------------------------------------–> % Diameter Circle %<--------------------------------------------------------------------------–> \def\tkzDefCircleD(#1,#2){% \begingroup \tkzDefMidPoint(#1,#2) + \pgfnodealias{tkzFirstPointResult}{tkzPointResult} + \pgfnodealias{tkzSecondPointResult}{#2} \tkz@@CalcLengthcm(#1,tkzPointResult){tkzLengthResult} \endgroup } @@ -101,8 +107,10 @@ %<--------------------------------------------------------------------------–> \def\tkzDefCircumCircle(#1,#2,#3){% \begingroup - \tkzCircumCenter(#1,#2,#3) - \tkz@@CalcLengthcm(#1,tkzPointResult){tkzLengthResult}%3.06 add [cm] + \tkzCircumCenter(#1,#2,#3) + \tkzRenamePoint(tkzPointResult){tkzFirstPointResult} + \tkzRenamePoint(#1){tkzSecondPointResult} + \tkz@@CalcLengthcm(#1,tkzPointResult){tkzLengthResult}%3.06 add [cm] \endgroup } %<--------------------------------------------------------------------------–> @@ -152,6 +160,8 @@ \tkzDefMidPoint(#2,#3) \pgfnodealias{tkz@e2}{tkzPointResult} \tkzDefMidPoint(#1,#3) \pgfnodealias{tkz@e3}{tkzPointResult} \tkzCircumCenter(tkz@e1,tkz@e2,tkz@e3) + \pgfnodealias{tkzFirstPointResult}{tkzPointResult} + \tkzRenamePoint(tkz@e1){tkzSecondPointResult} \tkz@@CalcLengthcm(tkzPointResult,tkz@e1){tkzLengthResult} \endgroup } @@ -163,7 +173,7 @@ \tkzEulerCenter(#1,#2,#3) \pgfnodealias{eur@pta}{tkzPointResult} \tkzDefMidPoint(#1,#2) - \tkz@@CalcLengthcm(eur@pta,tkzPointResult){tkzLengthResult} + \tkz@@CalcLengthcm(eur@pta,tkzPointResult){tkzLengthResult} \endgroup } %<--------------------------------------------------------------------------–> @@ -172,66 +182,16 @@ \def\tkzDefApolloniusCircle(#1,#2){% \begingroup \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@@CalcLengthcm(tkzPointResult,tkzFirstPointResult){tkzLengthResult} -\endgroup -} -%<--------------------------------------------------------------------------–> -% Apollonius radius -%<--------------------------------------------------------------------------–> -\pgfkeys{/tkzapor/.cd, - K/.code = \def\tkz@koeff{#1},% apollonius - K = 1 - } -\def\tkzDefApolloniusRadius{\pgfutil@ifnextchar[{% - \tkz@DefApolloniusRadius}{\tkz@DefApolloniusRadius[]}} -\def\tkz@DefApolloniusRadius[#1](#2,#3){% -\begingroup - \pgfqkeys{/tkzapor}{#1} - \tkz@VecK[\tkz@koeff/(1+\tkz@koeff)](#2,#3) \pgfnodealias{apo@pta}{tkzPointResult} - \tkz@VecK[\tkz@koeff/(\tkz@koeff-1)](#2,#3) + \tkz@VecK[\tkz@koeff/(\tkz@koeff-1)](#1,#2) \pgfnodealias{apo@ptb}{tkzPointResult} \tkzDefMidPoint(apo@pta,apo@ptb) - \tkz@@CalcLengthcm(tkzPointResult,apo@pta){tkzLengthResult} -\endgroup -} -%<--------------------------------------------------------------------------–> -% Apollonius point -%<--------------------------------------------------------------------------–> - -\pgfkeys{/tkzapop/.cd, - K/.code = \def\tkz@koeff{#1},% apollonius - K = 1 - } -\def\tkzDefApolloniusPoint{\pgfutil@ifnextchar[{\tkz@DefApolloniusPoint}{\tkz@DefApolloniusPoint[]}} -\def\tkz@DefApolloniusPoint[#1](#2,#3){% -\begingroup - \pgfqkeys{/tkzapop}{#1} - \tkzDefBarycentricPoint(#2=1,#3=\tkz@koeff) + \pgfnodealias{tkzFirstPointResult}{tkzPointResult} + \tkz@@CalcLengthcm(tkzFirstPointResult,apo@pta){tkzLengthResult} + \tkzDefBarycentricPoint(#1=1,#2=\tkz@koeff) + \pgfnodealias{tkzSecondPointResult}{tkzPointResult} \endgroup -} -%<--------------------------------------------------------------------------–> -% Apollonius center -%<--------------------------------------------------------------------------–> -\pgfkeys{/tkzapoc/.cd, - K/.code = \def\tkz@koeff{#1},% apollonius - K = 1 - } -\def\tkzApolloniusCenter{\pgfutil@ifnextchar[{\tkz@ApolloniusCenter}{\tkz@ApolloniusCenter[]}} -\def\tkz@ApolloniusCenter[#1](#2,#3){% -\begingroup - \pgfqkeys{/tkzapoc}{#1} - \tkz@VecK[\tkz@koeff/(1+\tkz@koeff)](#2,#3) - \pgfnodealias{tkzFirstPointResult}{tkzPointResult} - \tkz@VecK[\tkz@koeff/(\tkz@koeff-1)](#2,#3) - \pgfnodealias{tkzSecondPointResult}{tkzPointResult} - \tkzDefMidPoint(tkzFirstPointResult,tkzSecondPointResult) -\endgroup -} +} %<--------------------------------------------------------------------------–> \def\tkzDefOrthogonalCircle(#1,#2,#3){% \begingroup @@ -248,6 +208,8 @@ \pgfnodealias{tkz@PointResult}{tkzPointResult} \tkzCircumCenter(tkz@PointResult,#3,#4) \tkz@@CalcLengthcm(tkzPointResult,#3){tkzLengthResult} + \pgfnodealias{tkzFirstPointResult}{tkzPointResult} + \pgfnodealias{tkzSecondPointResult}{#3} \endgroup } %<--------------------------------------------------------------------------–> @@ -256,34 +218,14 @@ \def\tkzDefSpiekerCircle(#1,#2,#3){% \begingroup \tkzSpiekerCenter(#1,#2,#3) - \pgfnodealias{tkz@spka}{tkzPointResult} - \tkzDefMidPoint(#1,#2) - \tkzUProjection(#1,#2)(tkzPointResult) - \tkz@@CalcLength(tkz@spka,tkzPointResult){tkzLengthResult} -\endgroup -} -%<--------------------------------------------------------------------------–> -\def\tkzDefInversionCircle(#1,#2,#3,#4){% -\begingroup - \tkzInterLC(#3,#1)(#1,#2) \tkzGetPoints{tkz@p1}{tkz@p2} - \tkzUInversePoint(#3,#4)(tkz@p1) - \pgfnodealias{tkzFirstPointResult}{tkzPointResult} - \tkzUInversePoint(#3,#4)(tkz@p2) + \pgfnodealias{tkzFirstPointResult}{tkzPointResult} + \tkzUProjection(tkz@m1,tkz@m2)(tkzPointResult) \pgfnodealias{tkzSecondPointResult}{tkzPointResult} + \tkz@@CalcLength(tkzSecondPointResult,tkzFirstPointResult){tkzLengthResult} \endgroup } %<--------------------------------------------------------------------------–> -\def\tkzDefInversionNegativeCircle(#1,#2,#3,#4){% -\begingroup - \tkzInterLC(#3,#1)(#1,#2) \tkzGetPoints{tkz@p1}{tkz@p2} - \tkzUInversePoint(\tkzcenter,\tkzpoint)(tkz@p1) - \tkzUCSym(\tkzcenter)(tkzPointResult) - \pgfnodealias{tkzFirstPointResult}{tkzPointResult} - \tkzUInversePoint(\tkzcenter,\tkzpoint)(tkz@p2) - \tkzUCSym(\tkzcenter)(tkzPointResult) - \pgfnodealias{tkzSecondPointResult}{tkzPointResult} -\endgroup -} + %<--------------------------------------------------------------------------–> % End Def Circle %<--------------------------------------------------------------------------–> diff --git a/Master/texmf-dist/tex/latex/tkz-euclide/tkz-obj-eu-compass.tex b/Master/texmf-dist/tex/latex/tkz-euclide/tkz-obj-eu-compass.tex index 37ab27d8e74..17c1be69b52 100644 --- a/Master/texmf-dist/tex/latex/tkz-euclide/tkz-obj-eu-compass.tex +++ b/Master/texmf-dist/tex/latex/tkz-euclide/tkz-obj-eu-compass.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-eu-compass.tex} +\def\fileversion{4.2c} +\def\filedate{2022/07/14} +\typeout{2022/07/14 4.2c tkz-obj-eu-compass.tex} \makeatletter %<--------------------------------------------------------------------------–> % Author Alain Matthes @@ -24,22 +24,23 @@ % Setup Compass %<--------------------------------------------------------------------------–> \pgfkeys{tkzsucompass/.cd, - line width/.store in = \tkz@compass@lw, - color/.store in = \tkz@compass@color, - style/.store in = \tkz@compass@style, - line width = \tkz@euc@compasswidth, - color = \tkz@euc@compasscolor, - style = \tkz@euc@compassstyle, - /tkzsucompass/.search also = {/tikz,/tkzcompass} + line width/.store in = \tkz@compass@lw, + color/.store in = \tkz@compass@color, + style/.store in = \tkz@compass@style, + line width = \tkz@euc@compasswidth, + color = \tkz@euc@compasscolor, + style = \tkz@euc@compassstyle, + /tkzsucompass/.search also = {/tikz,/tkzcompass} } %<--------------------------------------------------------------------------–> \def\tkzSetUpCompass{\pgfutil@ifnextchar[{\tkz@SetUpCompass}{\tkz@SetUpCompass[]}} %<--------------------------------------------------------------------------–> \def\tkz@SetUpCompass[#1]{% \pgfqkeys{/tkzsucompass}{#1} -\tikzset{compass style/.style={color = \tkz@compass@color, - line width = \tkz@compass@lw, - style = \tkz@compass@style +\tikzset{compass style/.style={% + color = \tkz@compass@color, + line width = \tkz@compass@lw, + style = \tkz@compass@style }} } %<--------------------------------------------------------------------------–> diff --git a/Master/texmf-dist/tex/latex/tkz-euclide/tkz-obj-eu-draw-angles.tex b/Master/texmf-dist/tex/latex/tkz-euclide/tkz-obj-eu-draw-angles.tex index a0fb399aeee..6234a361b37 100644 --- a/Master/texmf-dist/tex/latex/tkz-euclide/tkz-obj-eu-draw-angles.tex +++ b/Master/texmf-dist/tex/latex/tkz-euclide/tkz-obj-eu-draw-angles.tex @@ -10,20 +10,20 @@ % 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-tool-eu-angles.tex} +\def\fileversion{4.2c} +\def\filedate{2022/07/14} +\typeout{2022/07/14 4.2c tkz-tool-eu-angles.tex} \makeatletter %<--------------------------------------------------------------------------–> % tkzSetUpArc %<--------------------------------------------------------------------------–> \pgfkeys{/tkzsetuparc/.cd, - color/.store in = \tkz@arc@color, - line width/.store in = \tkz@arc@lw, - style/.store in = \tkz@arc@style, - line width = \tkz@euc@linewidth, - color = \tkz@euc@linecolor, - style = \tkz@euc@linestyle, + color/.store in = \tkz@arc@color, + line width/.store in = \tkz@arc@lw, + style/.store in = \tkz@arc@style, + line width = \tkz@euc@linewidth, + color = \tkz@euc@linecolor, + style = \tkz@euc@linestyle, /tkzsetuparc/.search also = {/tikz,/tkzcompass}, } \def\tkzSetUpArc{\pgfutil@ifnextchar[{\tkz@SetUpArc}{\tkz@SetUpArc[]}} @@ -34,16 +34,12 @@ style = \tkz@arc@style }} }% end setup -%<---------------------------------------------------------------------------> -\newdimen\tkz@arcsize% from julian julian@d-and-j.net -\newdimen\tkz@fillsize -%<--------------------------------------------------------------------------> - %<------------------------------ Arcs -------------------------------------– % options : delta % \def\tkz@delta{0} % \tikzset{arc style/.style={#1}} % \pgfkeys{/tikz/.cd,delta/.code={\def\tkz@delta{#1}}} +\newif\iftkz@reverse \gdef\tkz@numa{0} \pgfkeys{/tkzdrawarc/.cd, type/.is choice, @@ -67,6 +63,9 @@ type/.default = towards, delta/.store in = \tkz@delta, delta = 0, + reverse/.is if = tkz@reverse, + reverse/.default = true, + reverse = false, /tkzdrawarc/.search also = {/tikz} } \def\tkzDrawArc{\pgfutil@ifnextchar[{\tkz@DrawArc}{\tkz@DrawArc[]}} @@ -81,7 +80,7 @@ \tkzDrawArcAngles[#1](#2,#3)(#4) \or% 3 \tkzDrawArcRAngles[#1](#2,#3)(#4) - \or% 4 +\or% 4 \tkzDrawArcR[#1](#2,#3)(#4) \fi \endgroup @@ -167,29 +166,19 @@ \def\tkzDrawArcRAngles{\pgfutil@ifnextchar[{\tkz@DrawArcRAngles}{% \tkz@DrawArcRAngles[]}} \def\tkz@DrawArcRAngles[#1](#2,#3)(#4,#5){% - \begingroup - \pgfmathparse{#4}\edef\tkz@FirstAngle{\pgfmathresult}% - \pgfmathparse{#5}\edef\tkz@SecondAngle{\pgfmathresult}% - \pgfmathgreaterthan{\tkz@FirstAngle}{0} - \ifdim\pgfmathresult pt=1 pt\relax% - \pgfmathgreaterthan{\tkz@FirstAngle}{\tkz@SecondAngle} - \ifdim\pgfmathresult pt=1 pt\relax% - \pgfmathsubtract{\tkz@FirstAngle}{360} - \edef\tkz@FirstAngle{\pgfmathresult}% - \fi - \else - \pgfmathgreaterthan{\tkz@FirstAngle}{\tkz@SecondAngle} - \ifdim\pgfmathresult pt=1 pt\relax% - \pgfmathadd{\tkz@SecondAngle}{360} - \edef\tkz@SecondAngle{\pgfmathresult}% - \fi - \fi + \begingroup + \tkzNormalizeAngle(#4,#5) \pgfmathsubtract{\tkz@FirstAngle}{\tkz@delta} \edef\tkz@FirstAngle{\pgfmathresult}% \pgfmathadd{\tkz@SecondAngle}{\tkz@delta} \edef\tkz@SecondAngle{\pgfmathresult} - \draw[shift = {(#2)},arc style,/tkzdrawarc/.cd,#1]% - (\tkz@FirstAngle:#3) arc (\tkz@FirstAngle:\tkz@SecondAngle:#3); + \iftkz@reverse + \let\tkztemp\tkz@FirstAngle + \let\tkz@FirstAngle\tkz@SecondAngle + \let\tkz@SecondAngle\tkztemp + \fi + \draw[shift = {(#2)},arc style,/tkzdrawarc/.cd,#1]% + (\tkz@FirstAngle:#3) arc (\tkz@FirstAngle:\tkz@SecondAngle:#3); \endgroup } %<--------------------------------------------------------------------------–> @@ -212,22 +201,7 @@ \tkz@@CalcLength(#2,#3){tkz@radius} \tkzFindSlopeAngle(#2,#3)\tkzGetAngle{tkz@FirstAngle} \tkzFindSlopeAngle(#2,#4)\tkzGetAngle{tkz@SecondAngle} -\pgfmathparse{\tkz@FirstAngle}\edef\tkz@FirstAngle{\pgfmathresult}% -\pgfmathparse{\tkz@SecondAngle}\edef\tkz@SecondAngle{\pgfmathresult}% -\pgfmathgreaterthan{\tkz@FirstAngle}{0} -\ifdim\pgfmathresult pt=1 pt\relax% - \pgfmathgreaterthan{\tkz@FirstAngle}{\tkz@SecondAngle} - \ifdim\pgfmathresult pt=1 pt\relax% - \pgfmathsubtract{\tkz@FirstAngle}{360} - \edef\tkz@FirstAngle{\pgfmathresult}% -\fi - \else - \pgfmathgreaterthan{\tkz@FirstAngle}{\tkz@SecondAngle} - \ifdim\pgfmathresult pt=1 pt\relax% - \pgfmathadd{\tkz@SecondAngle}{360} - \edef\tkz@SecondAngle{\pgfmathresult}% - \fi - \fi +\tkzNormalizeAngle(\tkz@FirstAngle,\tkz@SecondAngle) \pgfmathsubtract{\tkz@FirstAngle}{\tkz@delta} \edef\tkz@FirstAngle{\pgfmathresult}% \pgfmathadd{\tkz@SecondAngle}{\tkz@delta} @@ -246,22 +220,7 @@ \tkz@@CalcLength(#2,#3){tkz@radius} \tkzFindSlopeAngle(#2,#3)\tkzGetAngle{tkz@FirstAngle} \tkzFindSlopeAngle(#2,#4)\tkzGetAngle{tkz@SecondAngle} -\pgfmathparse{\tkz@FirstAngle}\edef\tkz@FirstAngle{\pgfmathresult}% -\pgfmathparse{\tkz@SecondAngle}\edef\tkz@SecondAngle{\pgfmathresult}% -\pgfmathgreaterthan{\tkz@FirstAngle}{0} -\ifdim\pgfmathresult pt=1 pt\relax% -\pgfmathgreaterthan{\tkz@FirstAngle}{\tkz@SecondAngle} - \ifdim\pgfmathresult pt=1 pt\relax% - \pgfmathsubtract{\tkz@FirstAngle}{360} - \edef\tkz@FirstAngle{\pgfmathresult}% - \fi -\else -\pgfmathgreaterthan{\tkz@FirstAngle}{\tkz@SecondAngle} - \ifdim\pgfmathresult pt=1 pt\relax% - \pgfmathadd{\tkz@SecondAngle}{360} - \edef\tkz@SecondAngle{\pgfmathresult}% - \fi -\fi +\tkzNormalizeAngle(\tkz@FirstAngle,\tkz@SecondAngle) \pgfmathsubtract{\tkz@FirstAngle}{\tkz@delta} \edef\tkz@FirstAngle{\pgfmathresult}% \pgfmathadd{\tkz@SecondAngle}{\tkz@delta} @@ -307,7 +266,7 @@ % dist ? % style : type de traits % position: 0.5 -% mark : none , |, ||,|||, z, s, x, o, oo mais tous les +% mark : none , , , , z, s, x, o, oo mais tous les % % symboles de tikz sont permis %<------------------------- Label on angle --------------------------------> \def\tkz@arcsimple{l} @@ -395,7 +354,21 @@ \endgroup } % fin de \tkzMarkAngle - +%<---------------------------------------------------------------------------> +% Pic Angle +%<---------------------------------------------------------------------------> +\def\tkzPicAngle{\pgfutil@ifnextchar[{\tkz@PicAngle}{\tkz@PicAngle[]}} +\def\tkz@PicAngle[#1](#2,#3,#4){% +\begingroup +\draw pic [#1]{angle=#2--#3--#4}; +\endgroup +} +\def\tkzPicRightAngle{\pgfutil@ifnextchar[{\tkz@PicRightAngle}{\tkz@PicRightAngle[]}} +\def\tkz@PicRightAngle[#1](#2,#3,#4){% +\begingroup +\draw pic [#1]{right angle=#2--#3--#4}; +\endgroup +} %<---------------------------------------------------------------------------> % FillAngle %<---------------------------------------------------------------------------> @@ -451,11 +424,12 @@ \pgfqkeys{/tkzlabelangle}{#1} \ifx\tkzutil@empty\tkzlabelangle% no value so calc angle of bisector \tkzFindSlopeAngle(#3,#2)\tkzGetAngle{tkz@dirOne} - \tkzFindSlopeAngle(#3,#4)\tkzGetAngle{tkz@dirTwo} - \tkzNormalizeAngle(\tkz@dirOne,\tkz@dirTwo) - \edef\tkzlabelAngle{\fpeval{(\tkz@SecondAngle+\tkz@FirstAngle)/2}} + \tkzFindSlopeAngle(#3,#4)\tkzGetAngle{tkz@dirTwo} + \tkzNormalizeAngle(\tkz@dirOne,\tkz@dirTwo) + \edef\tkzlabelAngle{\fpeval{(\tkz@SecondAngle+\tkz@FirstAngle)/2}} \fi - \path (#3) --+(\tkzlabelAngle:\tkzlabeldist) node[label angle style,/tkzlabelangle/.cd,#1] {#5}; + \path (#3) --+(\tkzlabelAngle:\tkzlabeldist) node[label angle style,% + /tkzlabelangle/.cd,#1] {#5}; \endgroup } %<---------------------------------------------------------------------------> @@ -546,6 +520,18 @@ \next#2 \@nil % \endgroup } - +%<---------------------------------------------------------------------------> +% tkzdefMidArc center and two points +\def\tkzDefMidArc(#1,#2,#3){% +\begingroup +\tkz@@CalcLength(#1,#2){tkz@radius} +\tkzFindSlopeAngle(#1,#2)\tkzGetAngle{tkz@FirstAngle} +\tkzFindSlopeAngle(#1,#3)\tkzGetAngle{tkz@SecondAngle} +\tkzNormalizeAngle(\tkz@FirstAngle,\tkz@SecondAngle) + \path[shift = {(#1)}](\tkz@FirstAngle:\tkz@radius pt) arc + (\tkz@FirstAngle:\tkz@SecondAngle:\tkz@radius pt) coordinate[midway] (tkzPointResult); +\endgroup +} + \makeatother \endinput
\ No newline at end of file diff --git a/Master/texmf-dist/tex/latex/tkz-euclide/tkz-obj-eu-draw-circles.tex b/Master/texmf-dist/tex/latex/tkz-euclide/tkz-obj-eu-draw-circles.tex index fcc2a6fa9bc..5fd3356bc46 100644 --- a/Master/texmf-dist/tex/latex/tkz-euclide/tkz-obj-eu-draw-circles.tex +++ b/Master/texmf-dist/tex/latex/tkz-euclide/tkz-obj-eu-draw-circles.tex @@ -10,67 +10,48 @@ % 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-eu-draw-circles.tex} +\def\fileversion{4.2c} +\def\filedate{2022/07/14} +\typeout{2022/07/14 4.2c tkz-obj-eu-draw-circles.tex} \makeatletter - - -\def\tkz@numdc{0} -\pgfkeys{/tkzdrawc/.cd, - through/.code = \def\tkz@numdc{0}, - R/.code = \def\tkz@numdc{1}, - diameter/.code = \def\tkz@numdc{2}, - circum/.code = \def\tkz@numdc{3}, - in/.code = \def\tkz@numdc{4}, - ex/.code = \def\tkz@numdc{5}, - euler/.code = \def\tkz@numdc{6}, - nine/.code = \def\tkz@numdc{6}, - apollonius/.code = \def\tkz@numdc{7}, - orthogonal from/.code args = {#1}{\def\tkz@ptfrom{#1}, - \def\tkz@numdc{8}}, - orthogonal through/.code args = {#1 and #2}{\def\tkz@ptone{#1} - \def\tkz@pttwo{#2} - \def\tkz@numdc{9}}, - K/.store in = \tkz@koeff,% apollonius - through, - K = 1, - /tkzdrawc/.search also={/tikz} -} %<--------------------------------------------------------------------------–> +% tkzSetUpCircle %<--------------------------------------------------------------------------–> -% Drawing a circle > -%<--------------------------------------------------------------------------–> +\pgfkeys{% + /tkzsetupcirc/.cd, + color/.code = \def\tkz@circle@color{#1}, + line width/.code = \def\tkz@circle@linewidth{#1}, + style/.code = \def\tkz@circle@style{#1}, + /tkzsetupcirc/.search also = {/tikz} + } + %<--------------------------------------------------------------------------–> + +\def\tkzSetUpCircle{\pgfutil@ifnextchar[{\tkz@SetUpCircle}{\tkz@SetUpCircle[]}} +\def\tkz@SetUpCircle[#1]{% +\pgfkeys{% + tkzsetupcirc/.cd, + line width = \tkz@euc@circlelw, + color = \tkz@euc@circlecolor, + style = \tkz@euc@circlestyle +} +\pgfqkeys{/tkzsetupcirc}{#1} +\tikzset{% + circle style/.append style = { % + color = \tkz@circle@color, + line width = \tkz@circle@linewidth, + style = \tkz@circle@style, + #1} + } +}% end setup + %<--------------------------------------------------------------------------–> + \def\tkzDrawCircle{\pgfutil@ifnextchar[{\tkz@DrawCircle}{\tkz@DrawCircle[]}} -\def\tkz@DrawCircle[#1](#2){% +\def\tkz@DrawCircle[#1](#2,#3){% \begingroup -\pgfqkeys{/tkzdrawc}{#1} -\ifcase\tkz@numdc% - \tkzDefCircleThrough(#2) - \or% 1 - \tkzDefCircleR(#2) - \or% 2 - \tkzDefCircleD(#2) - \or% 3 - \tkzDefCircumCircle(#2) - \or% 4 - \tkzDefInCircle(#2) - \or% 4 - \tkzDefExCircle(#2) - \or% 5 - \tkzDefEulerCircle(#2) - \or% 6 - \tkzDefApolloniusCircle(#2) - \or% 7 - \tkzDefOrthogonalCircle(#2,\tkz@ptfrom) - \or% 8 - \tkzDefOrthoThroughCircle(#2,\tkz@ptone,\tkz@pttwo) - \fi - \draw[line style,/tkzdrawc/.cd,#1] (tkzPointResult) circle (\tkzLengthResult); +\node [draw,circle through=(#3), circle style,#1] at (#2) {}; \endgroup } - -%<--------------------------------------------------------------------------–> +%<--------------------------------------------------------------------------–> \def\tkz@multicircles#1 #2\@nil{% \protected@edef\tkz@temp{ \noexpand \tkzDrawCircle[\tkz@optcircle](#1)}\tkz@temp% @@ -79,7 +60,7 @@ \let\next\@gobble \fi \next#2\@nil -} +}% %<--------------------------------------------------------------------------–> \def\tkzDrawCircles{\pgfutil@ifnextchar[{\tkz@DrawCircles}{\tkz@DrawCircles[]}} \def\tkz@DrawCircles[#1](#2){% @@ -90,58 +71,31 @@ \endgroup }% %<--------------------------------------------------------------------------–> -%<--------------------------------------------------------------------------–> % #2 #3 rayon -\def\tkz@numdsc{0} \pgfkeys{/tkzdrawsc/.cd, - through/.code = \def\tkz@numdsc{0}, - diameter/.code = \def\tkz@numdsc{1}, swap/.is if = tkz@swap@sc, swap/.default = true, swap = false, - through, - /tkzdrawsc/.search also={/tikz} - } +/tkzdrawsc/.search also={/tikz} +} \def\tkzDrawSemiCircle{\pgfutil@ifnextchar[{\tkz@DrawSemiCircle}{% - \tkz@DrawSemiCircle[]}} -\def\tkz@DrawSemiCircle[#1](#2){% + \tkz@DrawSemiCircle[]}} +\def\tkz@DrawSemiCircle[#1](#2,#3){% \begingroup -\pgfqkeys{/tkzdrawsc}{#1} -\ifcase\tkz@numdsc% - \tkzDrawSemiCircleThrough(#2) -\or% - \tkzDrawSemiCircleDiameter(#2) +\pgfqkeys{/tkzdrawsc}{#1} + \tkzDefPointBy[symmetry=center #2](#3) + \pgfnodealias{tkz@pt}{tkzPointResult} + \iftkz@swap@sc + \gdef\tkz@FirstPoint{tkz@pt} + \gdef\tkz@SecondPoint{#3} + \else + \gdef\tkz@FirstPoint{#3} + \gdef\tkz@SecondPoint{tkz@pt} \fi - \tkzDrawArc[#1,delta=0](\tkz@Center,\tkz@FirstPoint)(\tkz@SecondPoint) + \tkzDrawArc[#1,delta=0](#2,\tkz@FirstPoint)(\tkz@SecondPoint) \endgroup -} +}% %<--------------------------------------------------------------------------–> -\def\tkzDrawSemiCircleThrough(#1,#2){% - \tkzDefPointBy[symmetry=center #1](#2) - \pgfnodealias{tkz@pt}{tkzPointResult} - \def\tkz@Center{#1} - \iftkz@swap@sc - \gdef\tkz@FirstPoint{tkz@pt} - \gdef\tkz@SecondPoint{#2} - \else - \gdef\tkz@FirstPoint{#2} - \gdef\tkz@SecondPoint{tkz@pt} - \fi -} -%<--------------------------------------------------------------------------–> -\def\tkzDrawSemiCircleDiameter(#1,#2){% - \tkzDefMidPoint(#1,#2) - \pgfnodealias{tkz@Center}{tkzPointResult} - \def\tkz@Center{tkz@Center} - \iftkz@swap@sc - \def\tkz@FirstPoint{#1} - \def\tkz@SecondPoint{#2} - \else - \def\tkz@FirstPoint{#2} - \def\tkz@SecondPoint{#1} - \fi -} -%<--------------------------------------------------------------------------–> \def\tkz@multisemicircles#1 #2\@nil{% \protected@edef\tkz@temp{ \noexpand \tkzDrawSemiCircle[\tkz@optsemicircle](#1)}\tkz@temp% @@ -150,11 +104,10 @@ \let\next\@gobble \fi \next#2\@nil -} -%<--------------------------------------------------------------------------–> +}% %<--------------------------------------------------------------------------–> \def\tkzDrawSemiCircles{\pgfutil@ifnextchar[{\tkz@DrawSemiCircles}{% - \tkz@DrawSemiCircles[]}} +\tkz@DrawSemiCircles[]}} \def\tkz@DrawSemiCircles[#1](#2){% \xdef\tkz@optsemicircle{#1} \begingroup @@ -162,84 +115,57 @@ \next#2 \@nil % \endgroup }% -%<--------------------------------------------------------------------------–> -%<--------------------------------------------------------------------------–> %<---------------------------- Fill Circle --------------------------------–> -\def\tkz@numfc{0} -\pgfkeys{/fillcircle/.cd, radius/.code = \def\tkz@numfc{0}, - R/.code = \def\tkz@numfc{1}, - radius, - /fillcircle/.search also={/tikz} -} \def\tkzFillCircle{\pgfutil@ifnextchar[{\tkz@FillCircle}{\tkz@FillCircle[]}} \def\tkz@FillCircle[#1](#2,#3){% \begingroup -\pgfqkeys{/fillcircle}{#1} -\ifcase\tkz@numfc% - % first case 0 - \tkz@@CalcLength(#2,#3){tkzLengthResult} - \fill[/fillcircle/.cd,#1] (#2) circle (\tkzLengthResult pt);% - \or% 1 - \fill[/fillcircle/.cd,#1] (#2) circle (#3);% - \fi + \node [fill,circle through=(#3),#1] at (#2) {}; \endgroup -} +}% +\def\tkz@multifillcircles#1 #2\@nil{% +\protected@edef\tkz@temp{ +\noexpand \tkzFillCircle[\tkz@optfillcircle](#1)}\tkz@temp% +\def\tkz@nextArg{#2}% +\ifx\tkzutil@empty\tkz@nextArg + \let\next\@gobble +\fi +\next#2\@nil +}% +\def\tkzFillCircles{\pgfutil@ifnextchar[{\tkz@FillCircles}{% +\tkz@FillCircles[]}} +\def\tkz@FillCircles[#1](#2){% +\xdef\tkz@optfillcircle{#1} +\begingroup + \let\next\tkz@multifillcircles + \next#2 \@nil % +\endgroup +}% %<--------------------------- Clip Circle ---------------------------------–> -\def\tkz@numcc{0} \pgfkeys{/tkzclipc/.cd, - through/.code = \def\tkz@numcoc{0}, - R/.code = \def\tkz@numcoc{1}, out code/.is if = tkzClipOutCircle, - out/.code = \tkzClipOutCirclefalse, - through} + out/.code = \tkzClipOutCirclefalse +}% %<--------------------------------------------------------------------------–> \def\tkzClipCircle{\pgfutil@ifnextchar[{\tkz@ClipCircle}{\tkz@ClipCircle[]}} - \def\tkz@ClipCircle[#1](#2,#3){% \tkzClipOutCircletrue \pgfqkeys{/tkzclipc}{#1} -\ifcase\tkz@numcoc \tkz@@CalcLength(#2,#3){tkzLengthResult} \iftkzClipOutCircle - \clip (#2) circle (\tkzLengthResult pt); + \clip (#2) circle (\tkzLengthResult pt); \else - \clip (#2) circle (\tkzLengthResult pt) [tkzreverseclip] ; + \clip (#2) circle (\tkzLengthResult pt) [tkzreverseclip] ; \fi - \or% 1 - \iftkzClipOutCircle - \clip (#2) circle (#3); - \else - \clip (#2) circle (#3) [tkzreverseclip] ; - \fi - \fi } %<--------------------------- Label Circle --------------------------------–> -% attention radius circle is defined by center and a point on the circle -% R defined by center and the value of the radius -\def\tkz@numlc{0} -\pgfkeys{/tkzlabelc/.cd, - through/.code = \def\tkz@numlc{0}, - R/.code = \def\tkz@numlc{1}, - through, - /tkzlabelc/.search also={/tikz} -} - \def\tkzLabelCircle{\pgfutil@ifnextchar[{\tkz@LabelCircle}{% \tkz@LabelCircle[]}} -% [option] (#2,#3) #2 center #3 soit un point du cercle soit le radius -% #4 angle #5 the label +% [option] (#2,#3) #2 center #3 un point du cercle #4 angle #5 the label \def\tkz@LabelCircle[#1](#2,#3)(#4)#5{% \begingroup -\pgfqkeys{/tkzlabelc}{#1} -\ifcase\tkz@numlc \tkzURotateAngle(#2,#4)(#3) - \node[/tkzlabelc/.cd,#1] at (tkzPointResult) {#5}; -\or% 1 - \path (#2)--++(#3,0) coordinate (tkzPointResult); - \tkzURotateAngle(#2,#4)(tkzPointResult) - \node[/tkzlabelc/.cd,#1] at (tkzPointResult) {#5}; -\fi + \node[label style,#1] at (tkzPointResult) {#5}; \endgroup } \makeatother diff --git a/Master/texmf-dist/tex/latex/tkz-euclide/tkz-obj-eu-draw-lines.tex b/Master/texmf-dist/tex/latex/tkz-euclide/tkz-obj-eu-draw-lines.tex index 77dbe4f889d..a415218816e 100644 --- a/Master/texmf-dist/tex/latex/tkz-euclide/tkz-obj-eu-draw-lines.tex +++ b/Master/texmf-dist/tex/latex/tkz-euclide/tkz-obj-eu-draw-lines.tex @@ -10,22 +10,54 @@ % 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-eu-draw-lines.tex} +\def\fileversion{4.2c} +\def\filedate{2022/07/14} +\typeout{2022/07/14 4.2c tkz-obj-eu-draw-lines.tex} \makeatletter -\def\tkz@numdl{0} -\pgfkeys{/tkzdrawl/.cd, - /tkzdrawl/.search also={/tikz} +%<--------------------------------------------------------------------------–> +% Setup Line +%<--------------------------------------------------------------------------–> +\pgfkeys{% + tkzsuline/.cd, + line width/.code = \def\tkz@line@width{#1}, + color/.code = \def\tkz@line@color{#1}, + style/.code = \def\tkz@line@style{#1}, + add/.code args = {#1 and #2} {\def\tkz@line@left{#1} + \def\tkz@line@right{#2}}, + /tkzsuline/.search also = {/tikz} } %<--------------------------------------------------------------------------–> +\def\tkzSetUpLine{\pgfutil@ifnextchar[{\tkz@SetUpLine}{\tkz@SetUpLine[]}} +\def\tkz@SetUpLine[#1]{% +\pgfkeys{% + tkzsuline/.cd, + line width = \tkz@euc@linewidth, + color = \tkz@euc@linecolor, + style = \tkz@euc@linestyle, + add = {\tkz@euc@lineleft} and {\tkz@euc@lineright}} +\pgfqkeys{/tkzsuline}{#1} +\tikzset{% + line style/.append style ={% + line width = \tkz@line@width, + color = \tkz@line@color, + style = \tkz@line@style, + add = {\tkz@line@left} and {\tkz@line@right}, + line cap = round, + #1} + } +}% end setup +%<--------------------------------------------------------------------------–> % Drawing a line %<--------------------------------------------------------------------------–> +%<--------------------------------------------------------------------------–> +% \pgfkeys{/tkzdrawl/.cd, +% /tkzdrawl/.search also={/tikz} +% } \def\tkzDrawLine{\pgfutil@ifnextchar[{\tkz@DrawLine}{\tkz@DrawLine[]}} \def\tkz@DrawLine[#1](#2,#3){% \begingroup -\pgfqkeys{/tkzdrawl}{#1} + % \pgfqkeys{/tkzdrawl}{#1} \draw[line style,#1] (#2) to (#3); \endgroup } @@ -56,39 +88,7 @@ \def\tkzLabelLine{\pgfutil@ifnextchar[{\tkz@AddLabelLine}{\tkz@AddLabelLine[]}} \def\tkz@AddLabelLine[#1](#2,#3)#4{\path (#2) to node[#1]{#4}(#3);} -%<--------------------------------------------------------------------------–> -% Setup Line -%<--------------------------------------------------------------------------–> -\pgfkeys{% - tkzsuline/.cd, - line width/.code = \def\tkz@line@lw{#1}, - color/.code = \def\tkz@line@color{#1}, - style/.code = \def\tkz@line@style{#1}, - add/.code args = {#1 and #2} {\def\tkz@line@left{#1} - \def\tkz@line@right{#2}}, - /tkzsuline/.search also={/tikz}% -} -%<--------------------------------------------------------------------------–> -\def\tkzSetUpLine{\pgfutil@ifnextchar[{\tkz@SetUpLine}{% remove tkzActivOff 3.03 - \tkz@SetUpLine[]}} -\def\tkz@SetUpLine[#1]{% -\pgfkeys{% - tkzsuline/.cd, - line width = \tkz@euc@linewidth, - color = \tkz@euc@linecolor, - style = \tkz@euc@linestyle, - add = {\tkz@euc@lineleft} and {\tkz@euc@lineright}} -\pgfqkeys{/tkzsuline}{#1} -%<--------------------------------------------------------------------------–> -% Line style -%<--------------------------------------------------------------------------–> -\tikzset{% - line style/.style ={% - color = \tkz@line@color, - line width = \tkz@line@lw, - style = \tkz@line@style, - add = {\tkz@line@left} and {\tkz@line@right} -}}}% end setup + %<--------------------------------------------------------------------------–> % draw segment (s) %<--------------------------------------------------------------------------–> @@ -134,7 +134,7 @@ size = 4pt, color = \tkz@mk@color, pos = .5, - mark = |, + mark = , /@tkzmarkoptions/.search also={/tikz}, } \def\tkzMarkSegment{\pgfutil@ifnextchar[{\tkz@MarkSegment}{\tkz@MarkSegment[]}} @@ -175,7 +175,7 @@ {\tkz@LabelSegment[]}} \def\tkz@LabelSegment[#1](#2,#3)#4{% \begingroup - \path (#2) to node[label seg style,#1]{#4} (#3) ; + \path (#2) to node[label style,#1]{#4} (#3) ; \endgroup } %<--------------------------------------------------------------------------–> diff --git a/Master/texmf-dist/tex/latex/tkz-euclide/tkz-obj-eu-draw-points.tex b/Master/texmf-dist/tex/latex/tkz-euclide/tkz-obj-eu-draw-points.tex new file mode 100644 index 00000000000..ee9d5bbbc76 --- /dev/null +++ b/Master/texmf-dist/tex/latex/tkz-euclide/tkz-obj-eu-draw-points.tex @@ -0,0 +1,172 @@ + % tkz-obj-eu-points.tex +% 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. +% The latest version of this license is in +% 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. + +\def\fileversion{4.2c} +\def\filedate{2022/07/14} +\typeout{2022/07/14 4.2c tkz-obj-eu-points.tex} +\makeatletter +%<---------------------------------------------------------------------------> +% tkzSetUpPoint définit la forme d'un point +%<---------------------------------------------------------------------------> +\pgfkeys{/tkzsetuppt/.cd, + size/.store in = \tkz@pt@size, + color/.store in = \tkz@pt@color, + fill/.store in = \tkz@pt@fill, + shape/.store in = \tkz@pt@shape, + size = \tkz@euc@pointsize, + color = \tkz@euc@pointcolor, + fill = \tkz@euc@pointcolor, + shape = \tkz@euc@pointshape, + /tkzsetuppt/.search also = {/tikz}, + } +\def\tkzSetUpPoint{\pgfutil@ifnextchar[{\tkz@SetUpPoint}{% + \tkz@SetUpPoint[]}} +\def\tkz@SetUpPoint[#1]{% +\pgfqkeys{/tkzsetuppt}{#1} +% redefine point style with new values +\tikzset{point style/.style={draw = \tkz@pt@color, + inner sep = 0pt, + shape = \tkz@pt@shape, + minimum size = \tkz@pt@size, + fill = \tkz@pt@fill}} +}% end setup +%<---------------------------------------------------------------------------> +% Draw Point +%<---------------------------------------------------------------------------> +\pgfkeys{/tkzdrawpt/.cd, + size/.code = {\tikzset{point style/.append style={minimum size = #1}}}, + size = \tkz@euc@pointsize, + /tkzdrawpt/.search also = {/tikz}, +} +%<-------------------------------------------------------------------------- +\def\tkzDrawPoint{\pgfutil@ifnextchar[{\tkz@DrawPoint}{\tkz@DrawPoint[]}} +\def\tkz@DrawPoint[#1](#2){% +\begingroup + \pgfqkeys{/tkzdrawpt}{#1} + \node[point style,/tkzdrawpt/.cd,#1] at (#2) {};%2016 +\endgroup +} +%<---------------------------------------------------------------------------> +\def\tkzDrawPoints{\pgfutil@ifnextchar[{\tkz@drawpts}{\tkz@drawpts[]}} +%<---------------------------------------------------------------------------> +\def\tkz@drawpts[#1](#2){% +\begingroup + \pgfqkeys{/tkzdrawpt}{#1} + \foreach \point in {#2}{\node[point style,/tkzdrawpt/.cd,#1] at (\point) {};} %2016 +\endgroup +} +%<--------------------------------------------------------------------------> +% tkzLabelPoint Affichage des LABELS pour un point +%<--------------------------------------------------------------------------> +\def\tkzLabelPoint{\pgfutil@ifnextchar[{\tkz@LabelPoint}{\tkz@LabelPoint[]}} +\def\tkz@LabelPoint[#1](#2)#3{% + \node[label style,#1] at (#2) {#3};}% +%<---------------------------------------------------------------------------> + +\def\tkzLabelPoints{\pgfutil@ifnextchar[{\tkz@LabelPoints}{\tkz@LabelPoints[]}}% +\def\tkz@LabelPoints[#1](#2){% + \foreach \point in {#2}{ + \node[label style,#1] at (\point) {$\point$};} +}% +%<---------------------------------------------------------------------------> +\pgfkeys{/tkzsetuppt/.cd, + size/.store in = \tkz@pt@size, + color/.store in = \tkz@pt@color, + fill/.store in = \tkz@pt@fill, + shape/.store in = \tkz@pt@shape, + size = \tkz@euc@pointsize, + color = \tkz@euc@pointcolor, + fill = \tkz@euc@pointcolor, + shape = \tkz@euc@pointshape, + /tkzsetuppt/.search also = {/tikz}, + } +\def\tkzSetUpPoint{\pgfutil@ifnextchar[{\tkz@SetUpPoint}{% + \tkz@SetUpPoint[]}} +\def\tkz@SetUpPoint[#1]{% +\pgfqkeys{/tkzsetuppt}{#1} +% redefine point style with new values +\tikzset{point style/.style={draw = \tkz@pt@color, + inner sep = 0pt, + shape = \tkz@pt@shape, + minimum size = \tkz@pt@size, + fill = \tkz@pt@fill}} +}% end setup +%<---------------------------------------------------------------------------> +% +%<---------------------------------------------------------------------------> +\def\tkzSetUpLabel{\pgfutil@ifnextchar[{\tkz@SetUpLabel}{% + \tkz@SetUpLabel[]}} +\def\tkz@SetUpLabel[#1]{% +\tikzset{label style/.style={#1}} +}% end setup +%<---------------------------------------------------------------------------> + +\pgfkeys{/tkzautolab/.cd, + center/.store in = \tkz@center, + dist/.store in = \tkz@dist, + dist = 0.15, + /tkzautolab/.search also = {/tikz}, +} +\def\tkzAutoLabelPoints{\pgfutil@ifnextchar[{\tkz@AutoLabelPoints}{\tkz@AutoLabelPoints[]}}% +\def\tkz@AutoLabelPoints[#1](#2){% +\begingroup +\pgfqkeys{/tkzautolab}{#1} + \foreach \point in {#2}{ + \path (\tkz@center) -- ($ (\point) + \tkz@dist*($(\point)-(\tkz@center)$) $) node[/tkzautolab/.cd,label style,#1]{$\point$};} +\endgroup +}% +%<---------------------------------------------------------------------------> +% PointShowCoord +%<---------------------------------------------------------------------------> +\pgfkeys{/tkzprcoord/.cd, + xlabel/.store in = \tkz@xlabel, + ylabel/.store in = \tkz@ylabel, + xstyle/.code = {\tikzset{xcoord style/.append style={#1}}}, + ystyle/.code = {\tikzset{ycoord style/.append style={#1}}}, + noxdraw/.is if = tkz@coord@noxdraw, + noxdraw/.default = true, + noydraw/.is if = tkz@coord@noydraw, + noydraw/.default = true, + xlabel = {}, + ylabel = {}, + xstyle = {}, + ystyle = {}, + noxdraw = false, + noydraw = false, + /tkzprcoord/.search also = {/tikz}, +} +\def\tkzPointShowCoord{\pgfutil@ifnextchar[{\tkz@PointShowCoord}{\tkz@PointShowCoord[]}} +\def\tkz@PointShowCoord[#1](#2){% +\begingroup +\pgfqkeys{/tkzprcoord}{#1} +% 2019 for showcoord + \iftkznodedefined{tkz@xline}{}{% + \path (0,0) --(1,0) node(tkz@xline){}; + \path (0,0) --(0,1) node(tkz@yline){}; + } +\iftkz@coord@noxdraw\else\draw[arrow coord style,/tkzprcoord/.cd,#1] (#2)--(#2 - tkz@xline);\fi +\iftkz@coord@noydraw\else\draw[arrow coord style,/tkzprcoord/.cd,#1] (#2)--(#2 - tkz@yline);\fi +\ifx\tkzutil@empty\tkz@xlabel +\else +\path (#2)--(#2 - tkz@xline) + node[xcoord style] {\tkz@xlabel}; +\fi +\ifx\tkzutil@empty\tkz@ylabel +\else + \path (#2)--(#2 - tkz@yline) + node[ycoord style] {\tkz@ylabel}; +\fi +\endgroup +} +\let\tkzShowPointCoord\tkzPointShowCoord +\makeatother +\endinput
\ No newline at end of file diff --git a/Master/texmf-dist/tex/latex/tkz-euclide/tkz-obj-eu-draw-polygons.tex b/Master/texmf-dist/tex/latex/tkz-euclide/tkz-obj-eu-draw-polygons.tex index ebf53e42f16..b7e1b1faa03 100644 --- a/Master/texmf-dist/tex/latex/tkz-euclide/tkz-obj-eu-draw-polygons.tex +++ b/Master/texmf-dist/tex/latex/tkz-euclide/tkz-obj-eu-draw-polygons.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-eu-polygons.tex} +\def\fileversion{4.2c} +\def\filedate{2022/07/14} +\typeout{2022/07/14 4.2c tkz-obj-eu-polygons.tex} \makeatletter %<--------------------------------------------------------------------------–> % Polygon @@ -61,33 +61,33 @@ \endgroup } %<--------------------------------------------------------------------------–> -\def\tkzDrawSquare{\pgfutil@ifnextchar[{\tkz@DrawSquare}{\tkz@DrawSquare[]}} -\def\tkz@DrawSquare[#1](#2,#3){% -\begingroup - \tkzDefSquare(#2,#3) - \tkzDrawPolygon[#1](#2,#3,tkzFirstPointResult,tkzSecondPointResult) -\endgroup -} -%<--------------------------------------------------------------------------–> -\def\tkzDrawRectangle{\pgfutil@ifnextchar[{\tkz@DrawRectangle}% - {\tkz@DrawRectangle[]}} -\def\tkz@DrawRectangle[#1](#2,#3){% -\begingroup - \draw[line join=round,#1](#2) -| (#3) -| (#2); -\endgroup -} + % \def\tkzDrawSquare{\pgfutil@ifnextchar[{\tkz@DrawSquare}{\tkz@DrawSquare[]}} + % \def\tkz@DrawSquare[#1](#2,#3){% + % \begingroup + % \tkzDefSquare(#2,#3) + % \tkzDrawPolygon[#1](#2,#3,tkzFirstPointResult,tkzSecondPointResult) + % \endgroup + % } + %<--------------------------------------------------------------------------–> + % \def\tkzDrawRectangle{\pgfutil@ifnextchar[{\tkz@DrawRectangle}% + % {\tkz@DrawRectangle[]}} + % \def\tkz@DrawRectangle[#1](#2,#3){% + % \begingroup + % \draw[line join=round,#1](#2) - (#3) - (#2); + % \endgroup + % } %<-------------------------- gold rectangle -------------------------------–> % %<--------------------------------------------------------------------------–> -\def\tkzDrawGoldRectangle{\pgfutil@ifnextchar[{\tkz@DrawGoldRectangle}{% - \tkz@DrawGoldRectangle[]}} -\def\tkz@DrawGoldRectangle[#1](#2,#3){ -\begingroup - \tkzDefGoldRectangle(#2,#3) - \tkzDrawPolygon[#1](#2,#3,tkzFirstPointResult,tkzSecondPointResult) -\endgroup -} -\let\tkzDrawGoldenRectangle\tkzDrawGoldRectangle + % \def\tkzDrawGoldRectangle{\pgfutil@ifnextchar[{\tkz@DrawGoldRectangle}{% + % \tkz@DrawGoldRectangle[]}} + % \def\tkz@DrawGoldRectangle[#1](#2,#3){ + % \begingroup + % \tkzDefGoldRectangle(#2,#3) + % \tkzDrawPolygon[#1](#2,#3,tkzFirstPointResult,tkzSecondPointResult) + % \endgroup + % } + % \let\tkzDrawGoldenRectangle\tkzDrawGoldRectangle %<-------------- Labels for Regular Polygon -------------------------–> % %<--------------------------------------------------------------------------–> diff --git a/Master/texmf-dist/tex/latex/tkz-euclide/tkz-obj-eu-draw-triangles.tex b/Master/texmf-dist/tex/latex/tkz-euclide/tkz-obj-eu-draw-triangles.tex index 113326de891..7e9cf513c8d 100644 --- a/Master/texmf-dist/tex/latex/tkz-euclide/tkz-obj-eu-draw-triangles.tex +++ b/Master/texmf-dist/tex/latex/tkz-euclide/tkz-obj-eu-draw-triangles.tex @@ -10,68 +10,46 @@ % 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-eu-draw-triangles.tex} +\def\fileversion{4.2c} +\def\filedate{2022/07/14} +\typeout{2022/07/14 4.2c tkz-obj-eu-draw-triangles.tex} \makeatletter %<--------------------------------------------------------------------------–> % Draw Triangles %<--------------------------------------------------------------------------–> -\def\tkz@numdtr{0} -\pgfkeys{/drawtriangle/.cd, - equilateral/.code = {\def\tkz@numdtr{0}}, - half/.code = {\def\tkz@numdtr{1}}, - pythagore/.code = {\def\tkz@numdtr{2}}, - pythagoras/.code = {\def\tkz@numdtr{2}}, - egyptian/.code = {\def\tkz@numdtr{2}}, - school/.code = {\def\tkz@numdtr{3}}, - golden/.code = {\def\tkz@numdtr{4}}, - sublime/.code = {\def\tkz@numdtr{4}}, - euclid/.code = {\def\tkz@numdtr{5}}, - gold/.code = {\def\tkz@numdtr{6}}, - cheops/.code = {\def\tkz@numdtr{7}}, - two angles/.code args = {#1 and #2}{\def\tkz@numdtr{8}% - \def\tkz@alpha{#1}% - \def\tkz@beta{#2}}, - isosceles right/.code = {\def\tkz@numdtr{9}}, - equilateral, - /drawtriangle/.search also={/tikz} -} +% \def\tkz@numdtr{0} +% \pgfkeys{/drawtriangle/.cd, +% equilateral/.code = {\def\tkz@numdtr{0}}, +% half/.code = {\def\tkz@numdtr{1}}, +% pythagore/.code = {\def\tkz@numdtr{2}}, +% pythagoras/.code = {\def\tkz@numdtr{2}}, +% egyptian/.code = {\def\tkz@numdtr{2}}, +% school/.code = {\def\tkz@numdtr{3}}, +% golden/.code = {\def\tkz@numdtr{4}}, +% sublime/.code = {\def\tkz@numdtr{4}}, +% euclid/.code = {\def\tkz@numdtr{5}}, +% gold/.code = {\def\tkz@numdtr{6}}, +% cheops/.code = {\def\tkz@numdtr{7}}, +% two angles/.code args = {#1 and #2}{\def\tkz@numdtr{8}% +% \def\tkz@alpha{#1}% +% \def\tkz@beta{#2}}, +% isosceles right/.code = {\def\tkz@numdtr{9}}, +% equilateral, +% /drawtriangle/.search also={/tikz} +% } \def\tkzDrawTriangle{\pgfutil@ifnextchar[{\tkz@DrawTriangle}{% \tkz@DrawTriangle[]}} -\def\tkz@DrawTriangle[#1](#2,#3){% +\def\tkz@DrawTriangle[#1](#2,#3,#4){% \begingroup -\pgfkeys{/drawtriangle/.cd,equilateral} -\pgfqkeys{/drawtriangle}{#1} -\ifcase\tkz@numdtr% - \tkzDefEquilateral(#2,#3) -\or% 1 - \tkzDefTwoOne(#2,#3) -\or% 2 - \tkzDefPythagore(#2,#3) -\or% 3 - \tkzDefSchoolTriangle(#2,#3) -\or% 4 - \tkzDefGoldenTriangle(#2,#3) -\or% 5 - \tkzDefEuclideTriangle(#2,#3) -\or% 6 - \tkzDefGoldTriangle(#2,#3) -\or% 7 - \tkzDefCheopsTriangle(#2,#3) -\or% 8 - \tkzDefTwoAnglesTriangle(#2,#3) - \or% 9 - \tkzDefIsoscelesRightTriangle(#2,#3) -\fi - \draw[/drawtriangle/.cd,line style,line join=round,#1] (#2)--(#3)--(tkzPointResult)--cycle; +\draw[line style,line join=round,#1] (#2)--(#3)--(#4)--cycle; \endgroup } %<--------------------------------------------------------------------------–> \def\tkz@multitriangles#1 #2\@nil{% \protected@edef\tkz@temp{ +%\noexpand \tkzDrawTriangle[\tkz@opttrianle](#1)}\tkz@temp% \noexpand \tkzDrawPolygon[\tkz@opttrianle](#1)}\tkz@temp% \def\tkz@nextArg{#2}% \ifx\tkzutil@empty\tkz@nextArg diff --git a/Master/texmf-dist/tex/latex/tkz-euclide/tkz-obj-eu-grids.tex b/Master/texmf-dist/tex/latex/tkz-euclide/tkz-obj-eu-grids.tex index 4e9fecae252..44f898faca8 100644 --- a/Master/texmf-dist/tex/latex/tkz-euclide/tkz-obj-eu-grids.tex +++ b/Master/texmf-dist/tex/latex/tkz-euclide/tkz-obj-eu-grids.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-eu-grids.tex} +\def\fileversion{4.2c} +\def\filedate{2022/07/14} +\typeout{2022/07/14 4.2c tkz-obj-eu-grids.tex} \makeatletter %<--------------------------------------------------------------------------–> % Setup Grid diff --git a/Master/texmf-dist/tex/latex/tkz-euclide/tkz-obj-eu-lines.tex b/Master/texmf-dist/tex/latex/tkz-euclide/tkz-obj-eu-lines.tex index 9dce18f48e7..b07f40bc101 100644 --- a/Master/texmf-dist/tex/latex/tkz-euclide/tkz-obj-eu-lines.tex +++ b/Master/texmf-dist/tex/latex/tkz-euclide/tkz-obj-eu-lines.tex @@ -10,29 +10,29 @@ % 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-eu-lines.tex} +\def\fileversion{4.2c} +\def\filedate{2022/07/14} +\typeout{2022/07/14 4.2c tkz-obj-eu-lines.tex} \makeatletter %<--------------------------------------------------------------------------–> % les lignes %<--------------------------------------------------------------------------–> -\def\tkz@numl{0} -\pgfkeys{/tkzDefLine/.cd, - mediator/.code = \def\tkz@numl{0}, - perpendicular/.code args = {through #1} {\def\tkz@numl{1}% +\def\tkz@numline{0} +\pgfkeys{/tkzdefline/.cd, + mediator/.code = \def\tkz@numline{0}, + perpendicular/.code args = {through #1} {\def\tkz@numline{1}% \def\tkz@through{#1}}, - orthogonal/.code args = {through #1} {\def\tkz@numl{1}% + orthogonal/.code args = {through #1} {\def\tkz@numline{1}% \def\tkz@through{#1}}, - parallel/.code args = {through #1}{\def\tkz@numl{2}% + parallel/.code args = {through #1}{\def\tkz@numline{2}% \def\tkz@through{#1}}, - bisector/.code = \def\tkz@numl{3}, - bisector out/.code = \def\tkz@numl{4}, - symmedian/.code = \def\tkz@numl{5}, - tangent at/.code = {#1}{\def\tkz@numl{6} \def\tkz@ptat{#1}}, - tangent from/.code = {#1}{\def\tkz@numl{7} \def\tkz@ptfrom{#1}}, - median/.code = \def\tkz@numl{8}, - altitude/.code = \def\tkz@numl{9}, + bisector/.code = \def\tkz@numline{3}, + bisector out/.code = \def\tkz@numline{4}, + symmedian/.code = \def\tkz@numline{5}, + altitude/.code = \def\tkz@numline{6}, + euler/.code = \def\tkz@numline{7}, + tangent from/.code = \def\tkz@numline{8} \def\tkz@ptfrom{#1}, + tangent at/.code = \def\tkz@numline{9} \def\tkz@ptat{#1}, K/.code = \def\tkz@koeff{#1}, K = 1, normed/.is if = tkz@line@normed, @@ -43,9 +43,9 @@ \def\tkzDefLine{\pgfutil@ifnextchar[{\tkz@DefLine}{\tkz@DefLine[]}} \def\tkz@DefLine[#1](#2){% \begingroup -\pgfkeys{/tkzDefLine/.cd,K=1} -\pgfqkeys{/tkzDefLine}{#1} -\ifcase\tkz@numl% +%\pgfkeys{/tkzdefline/.cd,K=1} +\pgfqkeys{/tkzdefline}{#1} +\ifcase\tkz@numline% % first case 0 \tkzDefMediatorLine(#2) \or% 1 @@ -58,10 +58,14 @@ \tkzDefBisectorOutLine(#2) \or% 5 \tkzDefSymmedianLine(#2) - \or% 6 - \tkzTgtAt(#1)(#2) + \or% 6 + \tkzDefAltitudeLine(#2) \or% 7 - \tkzTgtFromP(#1)(#2) + \tkzDefEulerLine(#2) + \or% 8 + \tkzTgtFromP(#2)(\tkz@ptfrom) + \or% 9 + \tkzTgtAt(#2)(\tkz@ptat) \fi \endgroup } @@ -194,6 +198,32 @@ \endgroup } %<--------------------------------------------------------------------------–> +% Altitude Line +%<--------------------------------------------------------------------------–> +\def\tkzDefAltitudeLine(#1,#2,#3){% +\begingroup + \pgfinterruptboundingbox + \tkzUProjection(#1,#3)(#2) + \pgfnodealias{ort@pta}{tkzPointResult} + \endpgfinterruptboundingbox +\endgroup +} +%<--------------------------------------------------------------------------–> +% Euler Line +%<--------------------------------------------------------------------------–> +\def\tkzDefEulerLine(#1,#2,#3){% +\begingroup + \pgfinterruptboundingbox + \tkzOrthoCenter(#1,#2,#3) + \pgfnodealias{euler@pt1}{tkzPointResult} + \tkzEulerCenter(#1,#2,#3) + \pgfnodealias{euler@pt2}{tkzPointResult} + \pgfnodealias{tkzSecondPointResult}{euler@pt2} + \pgfnodealias{tkzFirstPointResult}{euler@pt1} + \endpgfinterruptboundingbox +\endgroup +} +%<--------------------------------------------------------------------------–> % tangente à cercle passant par un point donné %<--------------------------------------------------------------------------–> 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 596ee3a0bcf..699bd8bc37b 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.051b} -\def\filedate{2022/02/25} -\typeout{2022/02/25 4.051b tkz-tools-el-points-by.tex} +\def\fileversion{4.2c} +\def\filedate{2022/07/14} +\typeout{2022/07/14 4.2c tkz-tools-eu-points-by.tex} \makeatletter %<--------------------------------------------------------------------------–> % Transformations Géométriques @@ -426,6 +426,10 @@ \tkzVecKNorm[\tkz@lnc](#1,#3) \endgroup } +% possible +% \tkzDefLine[tangent from =#3](#1,#2) +% \tkzTgtFromP(#1,#2)(#3) +% \tkzInterLL(tkzFirstPointResult,tkzSecondPointResult)(#1,#2) %<--------------------------------------------------------------------------–> % Inverse negative of a point %<--------------------------------------------------------------------------–> diff --git a/Master/texmf-dist/tex/latex/tkz-euclide/tkz-obj-eu-points-rnd.tex b/Master/texmf-dist/tex/latex/tkz-euclide/tkz-obj-eu-points-rnd.tex index 06e792f6fdc..b837215d48a 100644 --- a/Master/texmf-dist/tex/latex/tkz-euclide/tkz-obj-eu-points-rnd.tex +++ b/Master/texmf-dist/tex/latex/tkz-euclide/tkz-obj-eu-points-rnd.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-rnd.tex} +\def\fileversion{4.2c} +\def\filedate{2022/07/14} +\typeout{2022/07/14 4.2c tkz-obj-eu-points-rnd.tex} %<--------------------------------------------------------------------------–> \makeatletter %<-------------------------------------------------------------------------–> 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 diff --git a/Master/texmf-dist/tex/latex/tkz-euclide/tkz-obj-eu-points-with.tex b/Master/texmf-dist/tex/latex/tkz-euclide/tkz-obj-eu-points-with.tex index f8c67708122..728f7ab4df3 100644 --- a/Master/texmf-dist/tex/latex/tkz-euclide/tkz-obj-eu-points-with.tex +++ b/Master/texmf-dist/tex/latex/tkz-euclide/tkz-obj-eu-points-with.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-with.tex} +\def\fileversion{4.2c} +\def\filedate{2022/07/14} +\typeout{2022/07/14 4.2c tkz-obj-eu-points-with.tex} \makeatletter %<--------------------------------------------------------------------------–> % Vectors @@ -22,7 +22,7 @@ % utile pour la compatibilité avec pgf 2 %<--------------------------------------------------------------------------–> % Duplicate Length à revoir pas de pt pas de global -% ||v(CN)||= ||v(AB)|| et v(CN) colineaire à v(CD) +% v(CN) = v(AB) et v(CN) colineaire à v(CD) % A-->#1 B-->#2 C-->#3 D-->#4 N-->#5 ????? %<--------------------------------------------------------------------------–> %<--------------------------------------------------------------------------–> @@ -130,7 +130,7 @@ %<--------------------------------------------------------------------------–> % tkzVector K Orth coeff dans #1 % v(AN) perp v(AB) (v(AB) , v(AN) ) sens direct cercle trigo -% ||v(AN)||=||v(AB)|| +% v(AN) = v(AB) %<--------------------------------------------------------------------------–> % tkz@numv 1 \def\tkzVecKOrth{\pgfutil@ifnextchar[{\tkz@VecKOrth}{\tkz@VecKOrth[1]}} @@ -175,7 +175,7 @@ %<--------------------------------------------------------------------------–> % tkzVecKOrthNorm coeff dans #1 % v(AN) perp v(AB) v(AB) v(AN) sens direct cercle trigo -% ||v(AN||=1 si #1 est vide ou =1 sinon ||v(AN||=K +% v(AN =1 si #1 est vide ou =1 sinon v(AN =K %<--------------------------------------------------------------------------–> % tkz@numv 3 \def\tkzVecKOrthNorm{\pgfutil@ifnextchar[{\tkz@VecKOrthNorm}% @@ -195,8 +195,8 @@ }% %<--------------------------------------------------------------------------–> % VectorNormalised ou K*VectorNormalised -% A-->#2 B-->#3 N-->#4 v(AB) devient v(AN) tq ||v(AN)||=1 si #1=1 -% sinon ||v(AN)||=#1 +% A-->#2 B-->#3 N-->#4 v(AB) devient v(AN) tq v(AN) =1 si #1=1 +% sinon v(AN) =#1 %<--------------------------------------------------------------------------–> % tkz@numv 4 \def\tkzVecKNorm{\pgfutil@ifnextchar[{\tkz@VecKNorm}{\tkz@VecKNorm[1]}} diff --git a/Master/texmf-dist/tex/latex/tkz-euclide/tkz-obj-eu-points.tex b/Master/texmf-dist/tex/latex/tkz-euclide/tkz-obj-eu-points.tex index 7f8088b225b..5bb4f41e880 100644 --- a/Master/texmf-dist/tex/latex/tkz-euclide/tkz-obj-eu-points.tex +++ b/Master/texmf-dist/tex/latex/tkz-euclide/tkz-obj-eu-points.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-eu-points.tex} +\def\fileversion{4.2c} +\def\filedate{2022/07/14} +\typeout{2022/07/14 4.2c tkz-obj-eu-points.tex} \makeatletter %<---------------------------------------------------------------------------> % init def point @@ -115,57 +115,6 @@ % \def\tkz@drawnode#1{\path[coordinate](\tkzpt@xa,\tkzpt@ya) coordinate(#1); % \tkz@DrawPt{#1} % } -%<---------------------------------------------------------------------------> -% tkzSetUpPoint définit la forme d'un point -%<---------------------------------------------------------------------------> -\pgfkeys{/tkzsetuppt/.cd, - size/.store in = \tkz@pt@size, - color/.store in = \tkz@pt@color, - fill/.store in = \tkz@pt@fill, - shape/.store in = \tkz@pt@shape, - size = \tkz@euc@pointsize, - color = \tkz@euc@pointcolor, - fill = \tkz@euc@pointcolor, - shape = \tkz@euc@pointshape, - /tkzsetuppt/.search also = {/tikz}, - } -\def\tkzSetUpPoint{\pgfutil@ifnextchar[{\tkz@SetUpPoint}{% - \tkz@SetUpPoint[]}} -\def\tkz@SetUpPoint[#1]{% -\pgfqkeys{/tkzsetuppt}{#1} -% redefine point style with new values -\tikzset{point style/.style={draw = \tkz@pt@color, - inner sep = 0pt, - shape = \tkz@pt@shape, - minimum size = \tkz@pt@size, - fill = \tkz@pt@fill}} -}% end setup -%<---------------------------------------------------------------------------> -% Draw Point -%<---------------------------------------------------------------------------> -\pgfkeys{/tkzdrawpt/.cd, - size/.code = {\tikzset{point style/.append style={minimum size = #1}}}, - size = \tkz@euc@pointsize, - /tkzdrawpt/.search also = {/tikz}, -} -%<-------------------------------------------------------------------------- -\def\tkzDrawPoint{\pgfutil@ifnextchar[{\tkz@DrawPoint}{\tkz@DrawPoint[]}} -\def\tkz@DrawPoint[#1](#2){% -\begingroup - \pgfqkeys{/tkzdrawpt}{#1} - \node[point style,/tkzdrawpt/.cd,#1] at (#2) {};%2016 -\endgroup -} -%<---------------------------------------------------------------------------> -\def\tkzDrawPoints{\pgfutil@ifnextchar[{\tkz@drawpts}{\tkz@drawpts[]}} -%<---------------------------------------------------------------------------> -\def\tkz@drawpts[#1](#2){% -\begingroup - \pgfqkeys{/tkzdrawpt}{#1} - \foreach \point in {#2}{\node[point style,/tkzdrawpt/.cd,#1] at (\point) {};} %2016 -\endgroup -} -%<---------------------------------------------------------------------------> % %<---------------------------------------------------------------------------> \def\tkzRenamePoint(#1)#2{\coordinate (#2) at (#1);} @@ -191,110 +140,6 @@ \coordinate (#3) at (#2); \end{scope} } -%<--------------------------------------------------------------------------> -% tkzLabelPoint Affichage des LABELS pour un point -%<--------------------------------------------------------------------------> -\def\tkzLabelPoint{\pgfutil@ifnextchar[{\tkz@LabelPoint}{\tkz@LabelPoint[]}} -\def\tkz@LabelPoint[#1](#2)#3{% - \node[label style,#1] at (#2) {#3};}% -%<---------------------------------------------------------------------------> - -\def\tkzLabelPoints{\pgfutil@ifnextchar[{\tkz@LabelPoints}{\tkz@LabelPoints[]}}% -\def\tkz@LabelPoints[#1](#2){% - \foreach \point in {#2}{ - \node[label style,#1] at (\point) {$\point$};} -}% -%<---------------------------------------------------------------------------> -\pgfkeys{/tkzsetuppt/.cd, - size/.store in = \tkz@pt@size, - color/.store in = \tkz@pt@color, - fill/.store in = \tkz@pt@fill, - shape/.store in = \tkz@pt@shape, - size = \tkz@euc@pointsize, - color = \tkz@euc@pointcolor, - fill = \tkz@euc@pointcolor, - shape = \tkz@euc@pointshape, - /tkzsetuppt/.search also = {/tikz}, - } -\def\tkzSetUpPoint{\pgfutil@ifnextchar[{\tkz@SetUpPoint}{% - \tkz@SetUpPoint[]}} -\def\tkz@SetUpPoint[#1]{% -\pgfqkeys{/tkzsetuppt}{#1} -% redefine point style with new values -\tikzset{point style/.style={draw = \tkz@pt@color, - inner sep = 0pt, - shape = \tkz@pt@shape, - minimum size = \tkz@pt@size, - fill = \tkz@pt@fill}} -}% end setup -%<---------------------------------------------------------------------------> -% -%<---------------------------------------------------------------------------> -\def\tkzSetUpLabel{\pgfutil@ifnextchar[{\tkz@SetUpLabel}{% - \tkz@SetUpLabel[]}} -\def\tkz@SetUpLabel[#1]{% -\tikzset{label style/.style={#1}} -}% end setup -%<---------------------------------------------------------------------------> - -\pgfkeys{/tkzautolab/.cd, - center/.store in = \tkz@center, - dist/.store in = \tkz@dist, - dist = 0.15, - /tkzautolab/.search also = {/tikz}, -} -\def\tkzAutoLabelPoints{\pgfutil@ifnextchar[{\tkz@AutoLabelPoints}{\tkz@AutoLabelPoints[]}}% -\def\tkz@AutoLabelPoints[#1](#2){% -\begingroup -\pgfqkeys{/tkzautolab}{#1} - \foreach \point in {#2}{ - \path (\tkz@center) -- ($ (\point) + \tkz@dist*($(\point)-(\tkz@center)$) $) node[/tkzautolab/.cd,#1]{$\point$};} -\endgroup -}% -%<---------------------------------------------------------------------------> -% PointShowCoord -%<---------------------------------------------------------------------------> -\pgfkeys{/tkzprcoord/.cd, - xlabel/.store in = \tkz@xlabel, - ylabel/.store in = \tkz@ylabel, - xstyle/.code = {\tikzset{xcoord style/.append style={#1}}}, - ystyle/.code = {\tikzset{ycoord style/.append style={#1}}}, - noxdraw/.is if = tkz@coord@noxdraw, - noxdraw/.default = true, - noydraw/.is if = tkz@coord@noydraw, - noydraw/.default = true, - xlabel = {}, - ylabel = {}, - xstyle = {}, - ystyle = {}, - noxdraw = false, - noydraw = false, - /tkzprcoord/.search also = {/tikz}, -} -\def\tkzPointShowCoord{\pgfutil@ifnextchar[{\tkz@PointShowCoord}{\tkz@PointShowCoord[]}} -\def\tkz@PointShowCoord[#1](#2){% -\begingroup -\pgfqkeys{/tkzprcoord}{#1} -% 2019 for showcoord - \iftkznodedefined{tkz@xline}{}{% - \path (0,0) --(1,0) node(tkz@xline){}; - \path (0,0) --(0,1) node(tkz@yline){}; - } -\iftkz@coord@noxdraw\else\draw[arrow coord style,/tkzprcoord/.cd,#1] (#2)--(#2 |- tkz@xline);\fi -\iftkz@coord@noydraw\else\draw[arrow coord style,/tkzprcoord/.cd,#1] (#2)--(#2 -| tkz@yline);\fi -\ifx\tkzutil@empty\tkz@xlabel -\else -\path (#2)--(#2 |- tkz@xline) - node[xcoord style] {\tkz@xlabel}; -\fi -\ifx\tkzutil@empty\tkz@ylabel -\else - \path (#2)--(#2 -| tkz@yline) - node[ycoord style] {\tkz@ylabel}; -\fi -\endgroup -} -\let\tkzShowPointCoord\tkzPointShowCoord %<---------------------------------------------------------------------------> % Coordonnées d'un point % result in #2x et #2y #1 est le point et on récupère ses coordonnées diff --git a/Master/texmf-dist/tex/latex/tkz-euclide/tkz-obj-eu-polygons.tex b/Master/texmf-dist/tex/latex/tkz-euclide/tkz-obj-eu-polygons.tex index 19aeced0465..d1f3692d05b 100644 --- a/Master/texmf-dist/tex/latex/tkz-euclide/tkz-obj-eu-polygons.tex +++ b/Master/texmf-dist/tex/latex/tkz-euclide/tkz-obj-eu-polygons.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-eu-polygons.tex} +\def\fileversion{4.2c} +\def\filedate{2022/07/14} +\typeout{2022/07/14 4.2c tkz-obj-eu-polygons.tex} % bug in regular polygon side 2020/03/09 \makeatletter %<--------------------------------------------------------------------------–> @@ -40,15 +40,13 @@ %<--------------------- rectangle ---------------------------------–> % %<--------------------------------------------------------------------------–> - \def\tkzDefRectangle{\pgfutil@ifnextchar[{\tkz@DefRectangle}% {\tkz@DefRectangle[]}} \def\tkz@DefRectangle[#1](#2,#3){% \begingroup - \path[#1](#2) -| coordinate (tkzFirstPointResult) (#3) -| coordinate (tkzSecondPointResult) (#2); + \path[#1](#2) - coordinate (tkzFirstPointResult) (#3) - coordinate (tkzSecondPointResult) (#2); \endgroup } - %<-------------------------- gold rectangle -------------------------------–> % %<--------------------------------------------------------------------------–> diff --git a/Master/texmf-dist/tex/latex/tkz-euclide/tkz-obj-eu-protractor.tex b/Master/texmf-dist/tex/latex/tkz-euclide/tkz-obj-eu-protractor.tex index e88b6efd35b..ad0ff406810 100644 --- a/Master/texmf-dist/tex/latex/tkz-euclide/tkz-obj-eu-protractor.tex +++ b/Master/texmf-dist/tex/latex/tkz-euclide/tkz-obj-eu-protractor.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-eu-protractor.tex} +\def\fileversion{4.2c} +\def\filedate{2022/07/14} +\typeout{2022/07/14 4.2c tkz-obj-eu-protractor.tex} \makeatletter %<--------------------------------------------------------------------------–> % !!! idea from Y. Combe !!! @@ -43,14 +43,14 @@ \draw[fill=black] (0,0) circle (.08mm); \node[draw, circle, inner sep=.2mm] (a) at (0,0) {}; \foreach \x in {0, 90, ..., 360}{% - \draw[very thin, gray!40] (a) -- (\x:4cm);} + \draw[very thin, gray!40] (a) -- (\x:4cm);} \foreach \x in {0,...,359} {\draw (\x:3.8cm) -- (\x:4cm);} -\foreach \x in {0,5,...,355} {\draw (\x:3.725cm) -- (\x:4cm);} +\foreach \x in {0,5,...,355} {\draw (\x:3.725cm) -- (\x:4cm);} \foreach \x in {0,10,...,350}{% \node[rotate=(\x-90)] at (\x:3.6cm) {\tiny\x}; -} +} \draw [>=stealth',->, thick,black] (0:2.5) arc(0:32:2.5); - \draw [>=stealth',->, thick,black] (0:2) arc(0:32:2); + \draw [>=stealth',->, thick,black] (0:2) arc(0:32:2); \draw [>=stealth',->, thick,black] (0:1.5) arc(0:32:1.5); } @@ -91,7 +91,7 @@ \def\tkzProtractor{\pgfutil@ifnextchar[{\tkz@Protractor}{\tkz@Protractor[]}} \def\tkz@Protractor[#1](#2,#3){% -\tkz@RappReturntrue +\tkz@RappReturnfalse \pgfqkeys{/protractor}{#1} \tkz@@extractxy{#2} \global\tkz@ax\pgf@x diff --git a/Master/texmf-dist/tex/latex/tkz-euclide/tkz-obj-eu-sectors.tex b/Master/texmf-dist/tex/latex/tkz-euclide/tkz-obj-eu-sectors.tex index da68ae74043..c21ec58fbba 100644 --- a/Master/texmf-dist/tex/latex/tkz-euclide/tkz-obj-eu-sectors.tex +++ b/Master/texmf-dist/tex/latex/tkz-euclide/tkz-obj-eu-sectors.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-eu-sectors.tex} +\def\fileversion{4.2c} +\def\filedate{2022/07/14} +\typeout{2022/07/14 4.2c tkz-obj-eu-sectors.tex} \makeatletter %<----------------------- Sectors ------------------------------–> \gdef\tkz@nums{0} diff --git a/Master/texmf-dist/tex/latex/tkz-euclide/tkz-obj-eu-show.tex b/Master/texmf-dist/tex/latex/tkz-euclide/tkz-obj-eu-show.tex index d10caa8f484..7c4bb47903c 100644 --- a/Master/texmf-dist/tex/latex/tkz-euclide/tkz-obj-eu-show.tex +++ b/Master/texmf-dist/tex/latex/tkz-euclide/tkz-obj-eu-show.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-eu-show.tex} +\def\fileversion{4.2c} +\def\filedate{2022/07/14} +\typeout{2022/07/14 4.2c tkz-obj-eu-show.tex} \makeatletter %<--------------------------------------------------------------------------–> % finding specific points in a triangle diff --git a/Master/texmf-dist/tex/latex/tkz-euclide/tkz-obj-eu-triangles.tex b/Master/texmf-dist/tex/latex/tkz-euclide/tkz-obj-eu-triangles.tex index 98c9ec3f2db..49be3da8660 100644 --- a/Master/texmf-dist/tex/latex/tkz-euclide/tkz-obj-eu-triangles.tex +++ b/Master/texmf-dist/tex/latex/tkz-euclide/tkz-obj-eu-triangles.tex @@ -10,16 +10,16 @@ % 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-eu-triangles.tex} +\def\fileversion{4.2c} +\def\filedate{2022/07/14} +\typeout{2022/07/14 4.2c tkz-obj-eu-triangles.tex} \makeatletter %<--------------------------------------------------------------------------–> % Triangle Equilateral %<--------------------------------------------------------------------------–> \def\tkzDefEquilateral(#1,#2){ \begingroup -\tkzDefMidPoint(#1,#2) + %\tkzDefMidPoint(#1,#2) \tkzURotateAngle(#1,60)(#2) \endgroup } @@ -34,22 +34,16 @@ \endgroup } %<--------------------------------------------------------------------------–> -\def\tkzDefIsoscelesRightTriangle{\pgfutil@ifnextchar[{\tkz@DefIsoscelesRightTriangle}{% - \tkz@DefIsoscelesRightTriangle[]}} - -\def\tkz@DefIsoscelesRightTriangle[#1](#2,#3){% +\def\tkzDefIsoscelesRightTriangle(#1,#2){% \begingroup - \tkzURotateAngle(#2,45)(#3) + \tkzURotateAngle(#1,45)(#2) \pgfnodealias{tkz@a}{tkzPointResult} - \tkzUHomo(#2,\tkzSqrTwobyTwo)(tkz@a) - \tkzDrawPolygon[#1](#2,#3,tkzPointResult) + \tkzUHomo(#1,\tkzSqrTwobyTwo)(tkz@a) \endgroup } %<--------------------------------------------------------------------------–> % Triangle OneTwo %<--------------------------------------------------------------------------–> - - \def\tkzDefTwoOne(#1,#2){ \begingroup \iftkz@swap@tr @@ -59,6 +53,9 @@ \fi \endgroup } +%<--------------------------------------------------------------------------– +% Pythagore +%<--------------------------------------------------------------------------– \def\tkzDefPythagore(#1,#2){ \begingroup \iftkz@swap@tr @@ -68,6 +65,9 @@ \fi \endgroup } +%<--------------------------------------------------------------------------– +% School +%<--------------------------------------------------------------------------– \def\tkzDefSchoolTriangle(#1,#2){ \begingroup \iftkz@swap@tr @@ -83,44 +83,58 @@ \fi \endgroup } +%<--------------------------------------------------------------------------– +% Gold +%<--------------------------------------------------------------------------– \def\tkzDefGoldTriangle(#1,#2){ \begingroup - \iftkz@swap@tr - \tkzURotateAngle(#1,36)(#2) + \tkzDefPointWith[K=-\tkzInvPhi](#2,#1) \else - \tkzURotateAngle(#1,-36)(#2) + \tkzDefPointWith[K=\tkzInvPhi](#2,#1) \fi \endgroup } +%<--------------------------------------------------------------------------– +% +%<--------------------------------------------------------------------------– \def\tkzDefEuclideTriangle(#1,#2){ \begingroup - \tkzURotateAngle(#1,72)(#2) - \tkzUHomo(#1,\tkzPhi)(tkzPointResult) + \iftkz@swap@tr + \tkzURotateAngle(#1,36)(#2) + \else + \tkzURotateAngle(#1,-36)(#2) + \fi \endgroup } +%<--------------------------------------------------------------------------– +% +%<--------------------------------------------------------------------------– \def\tkzDefGoldenTriangle(#1,#2){ \begingroup - \iftkz@swap@tr - \tkzDefPointWith[K=-\tkzInvPhi](#2,#1) - \else - \tkzDefPointWith[K=\tkzInvPhi](#2,#1) - \fi + \tkzURotateAngle(#1,72)(#2) + \tkzUHomo(#1,\tkzPhi)(tkzPointResult) \endgroup } +%<--------------------------------------------------------------------------– +% +%<--------------------------------------------------------------------------– \def\tkzDefCheopsTriangle(#1,#2){ \begingroup \tkzDefMidPoint(#1,#2) \tkzDefPointWith[K=-\tkzSqrtPhi](tkzPointResult,#1) \endgroup } +%<--------------------------------------------------------------------------– +% +%<--------------------------------------------------------------------------– \def\tkzDefTwoAnglesTriangle(#1,#2){ \begingroup \tkzURotateAngle(#1,\tkz@alpha)(#2) - \pgfnodealias{tkz@pta}{tkzPointResult} + \pgfnodealias{tkz@a}{tkzPointResult} \tkzURotateAngle(#2,-\tkz@beta)(#1) - \pgfnodealias{tkz@ptb}{tkzPointResult} - \tkzInterLL(#1,tkz@pta)(#2,tkz@ptb) + \pgfnodealias{tkz@b}{tkzPointResult} + \tkzInterLL(#1,tkz@a)(#2,tkz@b) \endgroup } %<--------------------------------------------------------------------------–> @@ -128,13 +142,13 @@ %<--------------------------------------------------------------------------–> \def\tkz@numtr{0} -\pgfkeys{% - /deftriangle/.cd, +\pgfkeys{/deftriangle/.cd, equilateral/.code = \def\tkz@numtr{0}, half/.code = \def\tkz@numtr{1}, two one/.code = \def\tkz@numtr{1}, pythagore/.code = \def\tkz@numtr{2}, pythagoras/.code = \def\tkz@numtr{2}, + right/.code = \def\tkz@numtr{2}, egyptian/.code = \def\tkz@numtr{2}, school/.code = \def\tkz@numtr{3}, golden/.code = \def\tkz@numtr{4}, @@ -145,18 +159,17 @@ cheops/.code = \def\tkz@numtr{7}, two angles/.code args = {#1 and #2} { \def\tkz@numtr{8}% \def\tkz@alpha{#1}% - \def\tkz@beta{#2}}, + \def\tkz@beta{#2}}, isosceles right/.code = \def\tkz@numtr{9}, swap/.is if = tkz@swap@tr, swap/.default = true, swap = false, - equilateral + equilateral } \def\tkzDefTriangle{\pgfutil@ifnextchar[{\tkz@DefTriangle}{\tkz@DefTriangle[]}} \def\tkz@DefTriangle[#1](#2,#3){% -\begingroup -\pgfkeys{/deftriangle/.cd,equilateral} +\begingroup \pgfqkeys{/deftriangle}{#1} \ifcase\tkz@numtr% \tkzDefEquilateral(#2,#3) @@ -353,17 +366,14 @@ \foreach \name [count=\i] in {#5} {% \global\expandafter\edef\csname tkz@point\i\endcsname{\name} } - \tkzDefExCircle(#2,#3,#4) - \pgfnodealias{tkz@b}{tkzPointResult} \tkzGetLength{tkz@rb} - \tkzDefExCircle(#3,#4,#2) - \pgfnodealias{tkz@c}{tkzPointResult} \tkzGetLength{tkz@rc} - \tkzDefExCircle(#4,#2,#3) - \pgfnodealias{tkz@a}{tkzPointResult} \tkzGetLength{tkz@ra} - \tkzInterLC[R](#3,tkz@b)(tkz@b,\tkz@rb) - \tkzGetSecondPoint{\tkz@pttr@name\csname tkz@point2\endcsname} - \tkzInterLC[R](#4,tkz@c)(tkz@c,\tkz@rc) - \tkzGetSecondPoint{\tkz@pttr@name\csname tkz@point3\endcsname} - \tkzInterLC[R](#2,tkz@a)(tkz@a,\tkz@ra) + \tkzDefExCircle(#2,#3,#4) \tkzGetPoints{tkz@b}{tkz@hb} + \tkzDefExCircle(#3,#4,#2) \tkzGetPoints{tkz@c}{tkz@hc} + \tkzDefExCircle(#4,#2,#3) \tkzGetPoints{tkz@a}{tkz@ha} + \tkzInterLC[near](#3,tkz@b)(tkz@b,tkz@hb) + \tkzGetFirstPoint{\tkz@pttr@name\csname tkz@point2\endcsname} + \tkzInterLC[near](#4,tkz@c)(tkz@c,tkz@hc) + \tkzGetFirstPoint{\tkz@pttr@name\csname tkz@point3\endcsname} + \tkzInterLC[near](#2,tkz@a)(tkz@a,tkz@ha) \tkzGetFirstPoint{\tkz@pttr@name\csname tkz@point1\endcsname} \endgroup } diff --git a/Master/texmf-dist/tex/latex/tkz-euclide/tkz-tools-eu-BB.tex b/Master/texmf-dist/tex/latex/tkz-euclide/tkz-tools-eu-BB.tex index a00317d77cd..b6ac1c328d1 100644 --- a/Master/texmf-dist/tex/latex/tkz-euclide/tkz-tools-eu-BB.tex +++ b/Master/texmf-dist/tex/latex/tkz-euclide/tkz-tools-eu-BB.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-eu-BB.tex} +\def\fileversion{4.2c} +\def\filedate{2022/07/14} +\typeout{2022/07/14 4.2c tkz-obj-eu-BB.tex} \makeatletter %<--------------------------------------------------------------------------–> \def\tkzShowBB{\pgfutil@ifnextchar[{\tkz@ShowBB}{\tkz@ShowBB[]}} diff --git a/Master/texmf-dist/tex/latex/tkz-euclide/tkz-tools-eu-angles.tex b/Master/texmf-dist/tex/latex/tkz-euclide/tkz-tools-eu-angles.tex index 61b33defe1b..b46cee19572 100644 --- a/Master/texmf-dist/tex/latex/tkz-euclide/tkz-tools-eu-angles.tex +++ b/Master/texmf-dist/tex/latex/tkz-euclide/tkz-tools-eu-angles.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-tools-angles.tex} +\def\fileversion{4.2c} +\def\filedate{2022/07/14} +\typeout{2022/07/14 4.2c tkz-tools-eu-angles.tex} \makeatletter %<--------------------------------------------------------------------------–> %<--------------------------------------------------------------------------–> diff --git a/Master/texmf-dist/tex/latex/tkz-euclide/tkz-tools-eu-base.tex b/Master/texmf-dist/tex/latex/tkz-euclide/tkz-tools-eu-base.tex index a5a1bc3ed10..639a5ef21ad 100644 --- a/Master/texmf-dist/tex/latex/tkz-euclide/tkz-tools-eu-base.tex +++ b/Master/texmf-dist/tex/latex/tkz-euclide/tkz-tools-eu-base.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-tools-eu-base.tex} +\def\fileversion{4.2c} +\def\filedate{2022/07/14} +\typeout{2022/07/14 4.2c tkz-tools-eu-base.tex} \makeatletter %<--------------------------------------------------------------------------–> \global\let\tkz@tmp@xa\tkz@init@xmin% modif 2016 diff --git a/Master/texmf-dist/tex/latex/tkz-euclide/tkz-tools-eu-colors.tex b/Master/texmf-dist/tex/latex/tkz-euclide/tkz-tools-eu-colors.tex index 0b0b7fc9109..b5ba3e673d9 100644 --- a/Master/texmf-dist/tex/latex/tkz-euclide/tkz-tools-eu-colors.tex +++ b/Master/texmf-dist/tex/latex/tkz-euclide/tkz-tools-eu-colors.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-tools-eu-colors} +\def\fileversion{4.2c} +\def\filedate{2022/07/14} +\typeout{2022/07/14 4.2c tkz-tools-eu-colors} \makeatletter %<------ Initialisation of the colors with tkzSetUpColors -----------------> diff --git a/Master/texmf-dist/tex/latex/tkz-euclide/tkz-tools-eu-intersections.tex b/Master/texmf-dist/tex/latex/tkz-euclide/tkz-tools-eu-intersections.tex index 74d351e2e41..1c214a31504 100644 --- a/Master/texmf-dist/tex/latex/tkz-euclide/tkz-tools-eu-intersections.tex +++ b/Master/texmf-dist/tex/latex/tkz-euclide/tkz-tools-eu-intersections.tex @@ -13,9 +13,9 @@ % The Current Maintainer of this work is Alain Matthes. % utf8 encoding -\def\fileversion{4.04} -\def\filedate{2022/01/22} -\typeout{2022/01/22 4.04 tkz-tools-intersections.tex} +\def\fileversion{4.2c} +\def\filedate{2022/07/14} +\typeout{2022/07/14 4.2c tkz-tools-eu-intersections.tex} \makeatletter %<--------------------------------------------------------------------------–> % intersection de deux lignes @@ -25,37 +25,37 @@ } \def\tkz@InterLL(#1,#2)(#3,#4)#5{% -%\path (intersection of #1--#2 and #3--#4) coordinate(#5); +\path (intersection of #1--#2 and #3--#4) coordinate(#5); % méthode with tikz -\pgfextractx{\pgf@x}{\pgfpointanchor{#1}{center}}% -\pgfextracty{\pgf@y}{\pgfpointanchor{#1}{center}}% -\tkz@ax\pgf@x% -\tkz@ay\pgf@y% -\pgfextractx{\pgf@x}{\pgfpointanchor{#2}{center}}% -\pgfextracty{\pgf@y}{\pgfpointanchor{#2}{center}} -\tkz@bx\pgf@x% -\tkz@by\pgf@y% -\pgfextractx{\pgf@x}{\pgfpointanchor{#3}{center}}% -\pgfextracty{\pgf@y}{\pgfpointanchor{#3}{center}}% -\tkz@cx\pgf@x% -\tkz@cy\pgf@y% -\pgfextractx{\pgf@x}{\pgfpointanchor{#4}{center}}% -\pgfextracty{\pgf@y}{\pgfpointanchor{#4}{center}}% -\tkz@dx\pgf@x% -\tkz@dy\pgf@y% - -\edef\tkz@deltax{\fpeval{(\tkz@ax-\tkz@bx)/(28.45274)}} -\edef\tkz@deltaxx{\fpeval{(\tkz@cx-\tkz@dx)/(28.45274)}} -\edef\tkz@deltay{\fpeval{(\tkz@ay-\tkz@by)/(28.45274)}} -\edef\tkz@deltayy{\fpeval{(\tkz@cy-\tkz@dy)/(28.45274)}} -\edef\tkz@deltaxy{\fpeval{((\tkz@ax*\tkz@by)-(\tkz@ay*\tkz@bx))/(28.45274*28.45274)}} -\edef\tkz@deltaxxyy{\fpeval{((\tkz@cx*\tkz@dy)-(\tkz@cy*\tkz@dx))/(28.45274*28.45274)}} -\edef\tkz@div{\fpeval{(\tkz@deltax*\tkz@deltayy)-(\tkz@deltay*\tkz@deltaxx)}} -\edef\tkz@numx{\fpeval{(\tkz@deltaxy*\tkz@deltaxx)-(\tkz@deltax*\tkz@deltaxxyy)}} -\edef\tkz@numy{\fpeval{(\tkz@deltaxy*\tkz@deltayy)-(\tkz@deltay*\tkz@deltaxxyy)}} -\edef\tkz@xs{\fpeval{round(\tkz@numx/\tkz@div,5)}} -\edef\tkz@ys{\fpeval{round(\tkz@numy/\tkz@div,5)}} -\path[coordinate](\tkz@xs,\tkz@ys) coordinate (#5); +% \pgfextractx{\pgf@x}{\pgfpointanchor{#1}{center}}% +% \pgfextracty{\pgf@y}{\pgfpointanchor{#1}{center}}% +% \tkz@ax\pgf@x% +% \tkz@ay\pgf@y% +% \pgfextractx{\pgf@x}{\pgfpointanchor{#2}{center}}% +% \pgfextracty{\pgf@y}{\pgfpointanchor{#2}{center}} +% \tkz@bx\pgf@x% +% \tkz@by\pgf@y% +% \pgfextractx{\pgf@x}{\pgfpointanchor{#3}{center}}% +% \pgfextracty{\pgf@y}{\pgfpointanchor{#3}{center}}% +% \tkz@cx\pgf@x% +% \tkz@cy\pgf@y% +% \pgfextractx{\pgf@x}{\pgfpointanchor{#4}{center}}% +% \pgfextracty{\pgf@y}{\pgfpointanchor{#4}{center}}% +% \tkz@dx\pgf@x% +% \tkz@dy\pgf@y% +% +% \edef\tkz@deltax{\fpeval{(\tkz@ax-\tkz@bx)/(28.45274)}} +% \edef\tkz@deltaxx{\fpeval{(\tkz@cx-\tkz@dx)/(28.45274)}} +% \edef\tkz@deltay{\fpeval{(\tkz@ay-\tkz@by)/(28.45274)}} +% \edef\tkz@deltayy{\fpeval{(\tkz@cy-\tkz@dy)/(28.45274)}} +% \edef\tkz@deltaxy{\fpeval{((\tkz@ax*\tkz@by)-(\tkz@ay*\tkz@bx))/(809.55841)}} +% \edef\tkz@deltaxxyy{\fpeval{((\tkz@cx*\tkz@dy)-(\tkz@cy*\tkz@dx))/(809.55841)}} +% \edef\tkz@div{\fpeval{(\tkz@deltax*\tkz@deltayy)-(\tkz@deltay*\tkz@deltaxx)}} +% \edef\tkz@numx{\fpeval{(\tkz@deltaxy*\tkz@deltaxx)-(\tkz@deltax*\tkz@deltaxxyy)}} +% \edef\tkz@numy{\fpeval{(\tkz@deltaxy*\tkz@deltayy)-(\tkz@deltay*\tkz@deltaxxyy)}} +% \edef\tkz@xs{\fpeval{round(\tkz@numx/\tkz@div,5)}} +% \edef\tkz@ys{\fpeval{round(\tkz@numy/\tkz@div,5)}} +% \path[coordinate](\tkz@xs,\tkz@ys) coordinate (#5); } @@ -74,8 +74,8 @@ \edef\tkz@deltaxx{\fpeval{(\tkz@cx-\tkz@dx)/(28.45274)}} \edef\tkz@deltay{\fpeval{(\tkz@ay-\tkz@by)/(28.45274)}} \edef\tkz@deltayy{\fpeval{(\tkz@cy-\tkz@dy)/(28.45274)}} -\edef\tkz@deltaxy{\fpeval{((\tkz@ax*\tkz@by)-(\tkz@ay*\tkz@bx))/(28.45274*28.45274)}} -\edef\tkz@deltaxxyy{\fpeval{((\tkz@cx*\tkz@dy)-(\tkz@cy*\tkz@dx))/(28.45274*28.45274)}} +\edef\tkz@deltaxy{\fpeval{((\tkz@ax*\tkz@by)-(\tkz@ay*\tkz@bx))/(809.55841)}} +\edef\tkz@deltaxxyy{\fpeval{((\tkz@cx*\tkz@dy)-(\tkz@cy*\tkz@dx))/(809.55841)}} \edef\tkz@div{\fpeval{(\tkz@deltax*\tkz@deltayy)-(\tkz@deltay*\tkz@deltaxx)}} \edef\tkz@numx{\fpeval{(\tkz@deltaxy*\tkz@deltaxx)-(\tkz@deltax*\tkz@deltaxxyy)}} \edef\tkz@numy{\fpeval{(\tkz@deltaxy*\tkz@deltayy)-(\tkz@deltay*\tkz@deltaxxyy)}} @@ -112,7 +112,7 @@ % c -= 2 * (sc.x * p1.x + sc.y * p1.y + sc.z * p1.z); % c -= r * r; % bb4ac = b * b - 4 * a * c; -% if (ABS(a) < EPS || bb4ac < 0) { +% if (ABS(a) < EPS bb4ac < 0) { % *mu1 = 0; % *mu2 = 0; % return(FALSE); @@ -125,14 +125,16 @@ % } %<---------- test ------------------------------------------------------–> \def\tkzTestInterLC(#1,#2)(#3,#4){% +\begingroup \tkz@Projection(#1,#2)(#3){tkz@pth}% distance centre à la ligne \tkz@@CalcLength(#3,tkz@pth){tkz@mathLen}% \tkz@@CalcLength(#3,#4){tkzLengthResult}%calcul du rayon \ifdim\tkz@mathLen pt>\tkzLengthResult pt\relax% -\tkzFlagLCfalse +\global\tkzFlagLCfalse \else -\tkzFlagLCtrue +\global\tkzFlagLCtrue \fi +\endgroup } %<--------------------------------------------------------------------------–> \def\tkz@numlc{0} @@ -141,9 +143,15 @@ R/.code = \def\tkz@numlc{1}, with nodes/.code = \def\tkz@numlc{2}, common/.store in = \tkz@common, - near/.store in = \tkz@near, common = {}, - near = {}, + near/.is if = tkz@near, + near/.default = true, + near = false, + next to/.store in = \tkz@nextto, + next to/.initial = {}, + next/.default = {}, + next to = {}, + next to/.value required, node } %<--------------------------------------------------------------------------–> @@ -164,34 +172,46 @@ \tkzInterLCWithNodes(#2,#3)(#4,#5){tkzFirstPointResult}% {tkzSecondPointResult}% \fi - \ifx\tkz@common\tkzutil@empty - \ifx\tkz@near\tkzutil@empty - \tkzFindAngle(tkzSecondPointResult,tkzFirstPointResult,#4) \tkzGetAngle{tkz@an} - \ifdim\tkz@an pt<180 pt\relax% - \else - \pgfnodealias{tkzPointTmp}{tkzSecondPointResult} - \pgfnodealias{tkzSecondPointResult}{tkzFirstPointResult} - \pgfnodealias{tkzFirstPointResult}{tkzPointTmp} - \fi - \else +\iftkz@near \tkz@@CalcLength(#2,tkzFirstPointResult){tkzLengthFirst} \tkz@@CalcLength(#2,tkzSecondPointResult){tkzLengthSecond} - \ifdim \tkzLengthFirst pt < \tkzLengthSecond pt\relax% - \else - \pgfnodealias{tkzPointTmp}{tkzSecondPointResult} - \pgfnodealias{tkzSecondPointResult}{tkzFirstPointResult} - \pgfnodealias{tkzFirstPointResult}{tkzPointTmp} - \fi - \fi - \else -\tkz@@CalcLength(\tkz@common,tkzSecondPointResult){tkz@mathLen} - \ifdim\tkz@mathLen pt<0.1pt\relax% - \else - \pgfnodealias{tkzPointTmp}{tkzSecondPointResult} - \pgfnodealias{tkzSecondPointResult}{tkzFirstPointResult} - \pgfnodealias{tkzFirstPointResult}{tkzPointTmp} - \fi - \fi + \ifdim \tkzLengthFirst pt < \tkzLengthSecond pt\relax% + \else + \pgfnodealias{tkzPointTmp}{tkzSecondPointResult} + \pgfnodealias{tkzSecondPointResult}{tkzFirstPointResult} + \pgfnodealias{tkzFirstPointResult}{tkzPointTmp} + \fi +\else + \ifx\tkz@common\tkzutil@empty + \ifx\tkz@nextto\tkzutil@empty + \tkzFindAngle(tkzSecondPointResult,tkzFirstPointResult,#4) + \tkzGetAngle{tkz@an} + \ifdim\tkz@an pt<180 pt\relax% + \else + \pgfnodealias{tkzPointTmp}{tkzSecondPointResult} + \pgfnodealias{tkzSecondPointResult}{tkzFirstPointResult} + \pgfnodealias{tkzFirstPointResult}{tkzPointTmp} + \fi + \else + \tkz@@CalcLength(\tkz@nextto,tkzFirstPointResult){tkzLengthFirst} + \tkz@@CalcLength(\tkz@nextto,tkzSecondPointResult){tkzLengthSecond} + \ifdim \tkzLengthFirst pt < \tkzLengthSecond pt\relax% + \else + \pgfnodealias{tkzPointTmp}{tkzSecondPointResult} + \pgfnodealias{tkzSecondPointResult}{tkzFirstPointResult} + \pgfnodealias{tkzFirstPointResult}{tkzPointTmp} + \fi + \fi + \else + \tkz@@CalcLength(\tkz@common,tkzSecondPointResult){tkz@mathLen} + \ifdim\tkz@mathLen pt<1pt\relax% + \else + \pgfnodealias{tkzPointTmp}{tkzSecondPointResult} + \pgfnodealias{tkzSecondPointResult}{tkzFirstPointResult} + \pgfnodealias{tkzFirstPointResult}{tkzPointTmp} + \fi + \fi +\fi%near \endpgfinterruptboundingbox \endgroup } @@ -351,17 +371,30 @@ % Intersection de deux cercles %<--------------------------------------------------------------------------–> %<---------- test ------------------------------------------------------–> -% test avec des nodes +% test avec des nodes R-r <= d <= R+r \def\tkzTestInterCC(#1,#2)(#3,#4){% +\begingroup \tkz@@CalcLength(#1,#3){tkz@mathLen}% distance entre les centres \tkz@@CalcLength(#2,#1){tkz@rA}%calcul du rayon \tkz@@CalcLength(#4,#3){tkz@rB}%calcul du rayon +% test if d <= rA + rB ? \edef\tkz@rS{\fpeval{\tkz@rA+\tkz@rB}} \ifdim\tkz@mathLen pt > \tkz@rS pt\relax% -\tkzFlagCCfalse +\global\tkzFlagCCfalse +\else +% now test if d>= rA - rB or rB-rA + \ifdim \tkz@rA pt > \tkz@rB pt\relax% + \edef\tkz@rD{\fpeval{\tkz@rA-\tkz@rB}} + \else + \edef\tkz@rD{\fpeval{\tkz@rB-\tkz@rA}} + \fi +\ifdim \tkz@rD pt > \tkz@mathLen pt\relax% + \global\tkzFlagCCfalse \else -\tkzFlagCCtrue +\global\tkzFlagCCtrue \fi +\fi +\endgroup } \def\tkz@numcc{0} @@ -433,7 +466,7 @@ \edef\tkz@xx{\fpeval{\tkz@ax+\tkz@aa/\tkz@dd*(\tkz@bx - \tkz@ax)}} \edef\tkz@yy{\fpeval{\tkz@ay+\tkz@aa/\tkz@dd*(\tkz@by - \tkz@ay)}} \path[coordinate](\tkz@xx pt,\tkz@yy pt) coordinate (tkzRadialCenter); -\edef\tkz@hh{\fpeval{sqrt((\tkz@cx+\tkz@aa)*(\tkz@cx-\tkz@aa))}} +\edef\tkz@hh{\fpeval{sqrt(abs((\tkz@cx+\tkz@aa)*(\tkz@cx-\tkz@aa)))}}% abs !2022 \edef\tkz@rx{\fpeval{\tkz@hh / \tkz@dd * (\tkz@ay - \tkz@by)}} \edef\tkz@ry{\fpeval{\tkz@hh / \tkz@dd * (\tkz@bx - \tkz@ax)}} \edef\tkz@xs{\fpeval{\tkz@xx + \tkz@rx}} diff --git a/Master/texmf-dist/tex/latex/tkz-euclide/tkz-tools-eu-math.tex b/Master/texmf-dist/tex/latex/tkz-euclide/tkz-tools-eu-math.tex index 6723a41a359..e3c602abb35 100644 --- a/Master/texmf-dist/tex/latex/tkz-euclide/tkz-tools-eu-math.tex +++ b/Master/texmf-dist/tex/latex/tkz-euclide/tkz-tools-eu-math.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-tools-eu-math.tex} +\def\fileversion{4.2c} +\def\filedate{2022/07/14} +\typeout{2022/07/14 4.2c tkz-tools-eu-math.tex} \makeatletter %<--------------------------------------------------------------------------> % \tkzpointnormalised# @@ -23,7 +23,7 @@ % \tkzFindSlope % option xfp -% \tkzpointnormalised normalise un point A-->A' tq ||v(OA')=1|| +% \tkzpointnormalised normalise un point A-->A' tq v(OA')=1 % équivalent de \pgfpointnormalised avec fp % example % \tkzpointnormalised{% @@ -52,7 +52,7 @@ %<--------------------------------------------------------------------------> % \tkzCalcLength Distance entre deux points en pt ou en cm avec xfp % \veclen mais avec fp -% option cm le résultat est en cm sinon en pt +% option cm le résultat est en cm sinon en pt with cm=false %<--------------------------------------------------------------------------> \pgfkeys{tkzcalclen/.cd, cm/.is if = tkzLengthIncm, @@ -67,7 +67,7 @@ \tkz@@CalcLength(#2,#3){tkzLengthResult} \iftkzLengthIncm \pgfmathparse{\tkzLengthResult pt/1cm} - \edef\tkz@xfpMathLen{\fpeval{round(\pgfmathresult,5)}} + \edef\tkz@xfpMathLen{\fpeval{round(\pgfmathresult,6)}} \global\let\tkzLengthResult\tkz@xfpMathLen \fi \endgroup @@ -76,16 +76,14 @@ \pgfpointdiff{\pgfpointanchor{#1}{center}}% {\pgfpointanchor{#2}{center}}% \edef\tkz@xfpMathLen{\fpeval{sqrt((\pgf@x)^2+(\pgf@y)^2)}} -\edef\tkz@xfpMathLen{\fpeval{round(\tkz@xfpMathLen,5)}} +\edef\tkz@xfpMathLen{\fpeval{round(\tkz@xfpMathLen,6)}} \global\expandafter\edef\csname #3\endcsname{\tkz@xfpMathLen} } \def\tkz@@CalcLengthcm(#1,#2)#3{% \pgfpointdiff{\pgfpointanchor{#1}{center}}% {\pgfpointanchor{#2}{center}}% \edef\tkz@xfpMathLen{\fpeval{sqrt((\pgf@x)^2+(\pgf@y)^2)}} -\edef\tkz@xfpMathLen{\fpeval{round(\tkz@xfpMathLen,5)}} -\pgfmathparse{\tkz@xfpMathLen pt/1cm} -\edef\tkz@xfpMathLen{\fpeval{round(\pgfmathresult,5)}} +\edef\tkz@xfpMathLen{\fpeval{round(\tkz@xfpMathLen/28.45274,6)}} \global\expandafter\edef\csname #3\endcsname{\tkz@xfpMathLen} } %<--------------------------------------------------------------------------> @@ -120,9 +118,98 @@ \begingroup% \pgfmath@x##1pt\relax% \pgfmath@y##2pt\relax% - \edef\tkz@xfpMathLen{\fpeval{sqrt((\pgf@x)^2+(\pgf@y)^2)}} + \edef\tkz@xfpMathLen{\fpeval{sqrt((\pgf@x)^2+(\pgf@y)^2)}} \pgfmath@returnone\tkz@xfpMathLen pt% \endgroup% -}}} +}}}% +%<---------------------------------------------------------–> +\def\tkzSwapPoints(#1,#2){ + \pgfnodealias{tkzPointTmp}{#2} + \pgfnodealias{#2}{#1} + \pgfnodealias{#1}{tkzPointTmp}} +%<---------------------------------------------------------–> +\def\tkzPermute(#1,#2,#3){ +\tkzURotateWithNodes(#1,#3,#2)(#3) \tkzGetPoint{tkzpt} +\tkzURotateWithNodes(#1,#2,#3)(#2) \tkzGetPoint{#2} +\tkzSwapPoints(tkzpt,#3)} +%<---------------------------------------------------------–> +\def\tkzDotProduct(#1,#2,#3){% +\begingroup +\pgfextractx{\pgf@x}{\pgfpointanchor{#1}{center}}% +\pgfextracty{\pgf@y}{\pgfpointanchor{#1}{center}}% +\tkz@ax\pgf@x% +\tkz@ay\pgf@y% +\pgfextractx{\pgf@x}{\pgfpointanchor{#2}{center}}% +\pgfextracty{\pgf@y}{\pgfpointanchor{#2}{center}} +\tkz@bx\pgf@x% +\tkz@by\pgf@y% +\pgfextractx{\pgf@x}{\pgfpointanchor{#3}{center}}% +\pgfextracty{\pgf@y}{\pgfpointanchor{#3}{center}}% +\tkz@cx\pgf@x% +\tkz@cy\pgf@y% +\edef\tkz@@dotprod{\fpeval{round(abs((\tkz@bx-\tkz@ax)*(\tkz@cx-\tkz@ax)+(\tkz@by-\tkz@ay)*(\tkz@cy-\tkz@ay))/(28.45274*28.45274),5)}} +\global\let\tkzMathResult\tkz@@dotprod +\endgroup} +%<---------------------------------------------------------–> + \def\tkzGetResult#1{% + \global\expandafter\edef\csname #1\endcsname{\tkzMathResult}} +%<---------------------------------------------------------–> +% #1,#2 and #3 aligned +\def\tkzIsLinear(#1,#2,#3){% +\begingroup +\tkz@@CalcLengthcm(#1,#2){tkz@la} +\tkz@@CalcLengthcm(#1,#3){tkz@lb} +\tkzDotProduct(#1,#2,#3) +\edef\tkzResult{\fpeval{abs((\tkzMathResult)-(\tkz@la)*(\tkz@lb))}} +\ifdim \tkzResult pt < 0.01 pt\relax% +\global\tkzLineartrue +\else +\global\tkzLinearfalse +\fi +\endgroup +} +%<---------------------------------------------------------–> +% syntax : vec(#2,#1) ortho vec(#3,#1) +\def\tkzIsOrtho(#1,#2,#3){% +\begingroup +\tkzDotProduct(#1,#2,#3) +\edef\tkzResult{\fpeval{abs(\tkzMathResult)}} +\ifdim \tkzResult pt < 1 pt\relax% +\global\tkzOrthotrue +\else +\global\tkzOrthofalse +\fi +\endgroup +} +%<---------------------------------------------------------–> +%<---------------------------------------------------------–> +% \tkzPowerCircle(M)(O,A) --> OM^2-OA^2 +\def\tkzPowerCircle(#1)(#2,#3){% +\begingroup +\tkz@@CalcLengthcm(#2,#3){tkz@ra} +\tkz@@CalcLengthcm(#1,#2){tkz@om} +\gdef\tkzMathResult{\fpeval{round(\tkz@om*\tkz@om -\tkz@ra*\tkz@ra,5)}} +\endgroup +} +%<---------------------------------------------------------–> +\def\tkzDefRadicalAxis(#1,#2)(#3,#4){% +\begingroup +\tkz@@CalcLengthcm(#1,#3){tkz@da} +\tkz@@CalcLengthcm(#1,#2){tkz@ra} +\tkz@@CalcLengthcm(#3,#4){tkz@rb} +\edef\tkzMathResult{\fpeval{(\tkz@ra+\tkz@rb)}} +\ifdim \tkzMathResult pt < \tkz@da pt\relax% + \tkzURotateAngle(#1,60)(#3) \tkzGetPoint{tkz@aux} + \tkzInterCC(#1,#2)(tkz@aux,#1) \tkzGetPoints{tkz@pta}{tkz@ptb} + \tkzInterCC(#3,#4)(tkz@aux,#1) \tkzGetPoints{tkz@ptc}{tkz@ptd} + \tkzInterLL(tkz@pta,tkz@ptb)(tkz@ptc,tkz@ptd) \tkzGetPoint{tkz@pta} + \tkzUProjection(#1,#3)(tkz@pta) \tkzGetPoint{tkz@ptb} + \pgfnodealias{tkzSecondPointResult}{tkz@ptb} + \pgfnodealias{tkzFirstPointResult}{tkz@pta} +\else +\tkzInterCCR(#1,\tkz@ra)(#3,\tkz@rb){tkzFirstPointResult}{tkzSecondPointResult} +\fi +\endgroup +} \makeatother \endinput
\ No newline at end of file diff --git a/Master/texmf-dist/tex/latex/tkz-euclide/tkz-tools-eu-modules.tex b/Master/texmf-dist/tex/latex/tkz-euclide/tkz-tools-eu-modules.tex index c3ba8ab7366..2a3ddbbea32 100644 --- a/Master/texmf-dist/tex/latex/tkz-euclide/tkz-tools-eu-modules.tex +++ b/Master/texmf-dist/tex/latex/tkz-euclide/tkz-tools-eu-modules.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-tools-utilities.tex} +\def\fileversion{4.2c} +\def\filedate{2022/07/14} +\typeout{2022/07/14 4.2c tkz-tools-eu-utilities.tex} \makeatletter %<------------- % chargement des modules ----------------------------------> \def\tkz@obj@all{angles,arcs,compass,defcircles,deflines,defpoints,defpointsby,defpointsrnd,defpointswith,polygons,protractor,sectors,show,triangles}% @@ -29,12 +29,12 @@ \expandafter\ifx\csname tkz@library@\tkz@temp @loaded\endcsname\relax% \expandafter\global\expandafter\let\csname tkz@library@\tkz@temp @loaded\endcsname=\pgfutil@empty% \expandafter\edef\csname tkz@obj@#1@atcode\endcsname{\the\catcode`\@} - \expandafter\edef\csname tkz@obj@#1@barcode\endcsname{\the\catcode`\|} + \expandafter\edef\csname tkz@obj@#1@barcode\endcsname{\the\catcode`\ } \catcode`\@=11 - \catcode`\|=12 + \catcode`\ =12 \input tkz-obj-\tkz@temp.tex \catcode`\@=\csname tkz@obj@#1@atcode\endcsname - \catcode`\|=\csname tkz@obj@#1@barcode\endcsname + \catcode`\ =\csname tkz@obj@#1@barcode\endcsname \fi% }% }% @@ -54,12 +54,12 @@ \expandafter\ifx\csname tkz@library@\tkz@temp @loaded\endcsname\relax% \expandafter\global\expandafter\let\csname tkz@library@\tkz@temp @loaded\endcsname=\pgfutil@empty% \expandafter\edef\csname tkz@tool@#1@atcode\endcsname{\the\catcode`\@} - \expandafter\edef\csname tkz@tool@#1@barcode\endcsname{\the\catcode`\|} + \expandafter\edef\csname tkz@tool@#1@barcode\endcsname{\the\catcode`\ } \catcode`\@=11 - \catcode`\|=12 + \catcode`\ =12 \input tkz-tools-\tkz@temp.tex \catcode`\@=\csname tkz@tool@#1@atcode\endcsname - \catcode`\|=\csname tkz@tool@#1@barcode\endcsname + \catcode`\ =\csname tkz@tool@#1@barcode\endcsname \fi% }% }% diff --git a/Master/texmf-dist/tex/latex/tkz-euclide/tkz-tools-eu-text.tex b/Master/texmf-dist/tex/latex/tkz-euclide/tkz-tools-eu-text.tex index 5bab4312cec..b8ff9c3901c 100644 --- a/Master/texmf-dist/tex/latex/tkz-euclide/tkz-tools-eu-text.tex +++ b/Master/texmf-dist/tex/latex/tkz-euclide/tkz-tools-eu-text.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-tools-eu-text.tex} +\def\fileversion{4.2c} +\def\filedate{2022/07/14} +\typeout{2022/07/14 4.2c tkz-tools-eu-text.tex} \makeatletter %<--------------------------------------------------------------------------–> % tkzText @@ -50,7 +50,7 @@ \pgfkeys{/tkzlegend/.cd, line/.is if = tkz@legend@line, line/.default = true, - line = false, + line = false, /tkzlegend/.search also = {/tikz}, } \def\tkzLegend{\pgfutil@ifnextchar[{\tkz@Legend}{\tkz@Legend[]}} diff --git a/Master/texmf-dist/tex/latex/tkz-euclide/tkz-tools-eu-utilities.tex b/Master/texmf-dist/tex/latex/tkz-euclide/tkz-tools-eu-utilities.tex index 93b14350f92..6a9397171d7 100644 --- a/Master/texmf-dist/tex/latex/tkz-euclide/tkz-tools-eu-utilities.tex +++ b/Master/texmf-dist/tex/latex/tkz-euclide/tkz-tools-eu-utilities.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-tools-eu-utilities.tex} +\def\fileversion{4.2c} +\def\filedate{2022/07/14} +\typeout{2022/07/14 4.2c tkz-tools-eu-utilities.tex} \makeatletter \pgfkeys{/tkzClip/.cd, space/.store in = {\tkz@CLI@space}, @@ -177,5 +177,60 @@ space = {}} \tkzURotateWithNodes(#1,#3,#2)(#3) \tkzGetPoint{tkzpt} \tkzURotateWithNodes(#1,#2,#3)(#2) \tkzGetPoint{#2} \tkzSwapPoints(tkzpt,#3)} +%<---------------------------------------------------------–> +\def\tkzDotProduct(#1,#2,#3){% +\begingroup +\pgfextractx{\pgf@x}{\pgfpointanchor{#1}{center}}% +\pgfextracty{\pgf@y}{\pgfpointanchor{#1}{center}}% +\tkz@ax\pgf@x% +\tkz@ay\pgf@y% +\pgfextractx{\pgf@x}{\pgfpointanchor{#2}{center}}% +\pgfextracty{\pgf@y}{\pgfpointanchor{#2}{center}} +\tkz@bx\pgf@x% +\tkz@by\pgf@y% +\pgfextractx{\pgf@x}{\pgfpointanchor{#3}{center}}% +\pgfextracty{\pgf@y}{\pgfpointanchor{#3}{center}}% +\tkz@cx\pgf@x% +\tkz@cy\pgf@y% +\edef\tkz@dotprod{\fpeval{round(((\tkz@bx-\tkz@ax)*(\tkz@cx-\tkz@ax)+(\tkz@by-\tkz@ay)*(\tkz@cy-\tkz@ay))/(809.55841),5)}} +\global\let\tkzMathResult\tkz@dotprod +\endgroup} +%<---------------------------------------------------------–> + \def\tkzGetResult#1{% + \global\expandafter\edef\csname #1\endcsname{\tkzMathResult}} +%<---------------------------------------------------------–> +% #1,#2 and #3 aligned +\def\tkzIsLinear(#1,#2,#3){% +\begingroup +\tkz@@CalcLengthcm(#1,#2){tkz@la} +\tkz@@CalcLengthcm(#1,#3){tkz@lb} +\tkzDotProduct(#1,#2,#3) +\edef\tkzMathResult{\fpeval{abs(abs(\tkzMathResult)-(\tkz@la)*(\tkz@lb))}} +\ifdim \tkzMathResult pt < 0.0001 pt\relax% +\global\tkzLineartrue +\else +\global\tkzLinearfalse +\fi +\endgroup +} +%<---------------------------------------------------------–> +% syntax : vec(#2,#1) ortho vec(#3,#1) +\def\tkzIsOrtho(#1,#2,#3){% +\begingroup +\tkzDotProduct(#1,#2,#3) +\edef\tkzMathResult{\fpeval{abs(\tkzMathResult)}} +\ifdim \tkzMathResult pt < 0.0001 pt\relax% +\global\tkzOrthotrue +\else +\global\tkzOrthofalse +\fi +\endgroup +} +%<---------------------------------------------------------–> + \def\tkzHelpGrid{% + \draw[help lines] (current bounding box.south west) grid + (current bounding box.north east); + } + \makeatother \endinput
\ No newline at end of file |