summaryrefslogtreecommitdiff
path: root/macros/latex/contrib/tkz/tkz-euclide/latex
diff options
context:
space:
mode:
Diffstat (limited to 'macros/latex/contrib/tkz/tkz-euclide/latex')
-rw-r--r--macros/latex/contrib/tkz/tkz-euclide/latex/tkz-euclide.cfg141
-rw-r--r--macros/latex/contrib/tkz/tkz-euclide/latex/tkz-euclide.sty58
-rw-r--r--macros/latex/contrib/tkz/tkz-euclide/latex/tkz-lib-eu-marks.tex16
-rw-r--r--macros/latex/contrib/tkz/tkz-euclide/latex/tkz-lib-eu-shape.tex8
-rw-r--r--macros/latex/contrib/tkz/tkz-euclide/latex/tkz-obj-eu-axesmin.tex9
-rw-r--r--macros/latex/contrib/tkz/tkz-euclide/latex/tkz-obj-eu-circles-by.tex60
-rw-r--r--macros/latex/contrib/tkz/tkz-euclide/latex/tkz-obj-eu-circles.tex166
-rw-r--r--macros/latex/contrib/tkz/tkz-euclide/latex/tkz-obj-eu-compass.tex27
-rw-r--r--macros/latex/contrib/tkz/tkz-euclide/latex/tkz-obj-eu-draw-angles.tex132
-rw-r--r--macros/latex/contrib/tkz/tkz-euclide/latex/tkz-obj-eu-draw-circles.tex232
-rw-r--r--macros/latex/contrib/tkz/tkz-euclide/latex/tkz-obj-eu-draw-lines.tex84
-rw-r--r--macros/latex/contrib/tkz/tkz-euclide/latex/tkz-obj-eu-draw-points.tex172
-rw-r--r--macros/latex/contrib/tkz/tkz-euclide/latex/tkz-obj-eu-draw-polygons.tex54
-rw-r--r--macros/latex/contrib/tkz/tkz-euclide/latex/tkz-obj-eu-draw-triangles.tex74
-rw-r--r--macros/latex/contrib/tkz/tkz-euclide/latex/tkz-obj-eu-grids.tex6
-rw-r--r--macros/latex/contrib/tkz/tkz-euclide/latex/tkz-obj-eu-lines.tex74
-rw-r--r--macros/latex/contrib/tkz/tkz-euclide/latex/tkz-obj-eu-points-by.tex10
-rw-r--r--macros/latex/contrib/tkz/tkz-euclide/latex/tkz-obj-eu-points-rnd.tex6
-rw-r--r--macros/latex/contrib/tkz/tkz-euclide/latex/tkz-obj-eu-points-spc.tex285
-rw-r--r--macros/latex/contrib/tkz/tkz-euclide/latex/tkz-obj-eu-points-with.tex16
-rw-r--r--macros/latex/contrib/tkz/tkz-euclide/latex/tkz-obj-eu-points.tex161
-rw-r--r--macros/latex/contrib/tkz/tkz-euclide/latex/tkz-obj-eu-polygons.tex10
-rw-r--r--macros/latex/contrib/tkz/tkz-euclide/latex/tkz-obj-eu-protractor.tex16
-rw-r--r--macros/latex/contrib/tkz/tkz-euclide/latex/tkz-obj-eu-sectors.tex6
-rw-r--r--macros/latex/contrib/tkz/tkz-euclide/latex/tkz-obj-eu-show.tex6
-rw-r--r--macros/latex/contrib/tkz/tkz-euclide/latex/tkz-obj-eu-triangles.tex96
-rw-r--r--macros/latex/contrib/tkz/tkz-euclide/latex/tkz-tools-eu-BB.tex6
-rw-r--r--macros/latex/contrib/tkz/tkz-euclide/latex/tkz-tools-eu-angles.tex6
-rw-r--r--macros/latex/contrib/tkz/tkz-euclide/latex/tkz-tools-eu-base.tex6
-rw-r--r--macros/latex/contrib/tkz/tkz-euclide/latex/tkz-tools-eu-colors.tex6
-rw-r--r--macros/latex/contrib/tkz/tkz-euclide/latex/tkz-tools-eu-intersections.tex173
-rw-r--r--macros/latex/contrib/tkz/tkz-euclide/latex/tkz-tools-eu-math.tex111
-rw-r--r--macros/latex/contrib/tkz/tkz-euclide/latex/tkz-tools-eu-modules.tex18
-rw-r--r--macros/latex/contrib/tkz/tkz-euclide/latex/tkz-tools-eu-text.tex8
-rw-r--r--macros/latex/contrib/tkz/tkz-euclide/latex/tkz-tools-eu-utilities.tex61
35 files changed, 1232 insertions, 1088 deletions
diff --git a/macros/latex/contrib/tkz/tkz-euclide/latex/tkz-euclide.cfg b/macros/latex/contrib/tkz/tkz-euclide/latex/tkz-euclide.cfg
index 7516b752a3..97a5b3c4e6 100644
--- a/macros/latex/contrib/tkz/tkz-euclide/latex/tkz-euclide.cfg
+++ b/macros/latex/contrib/tkz/tkz-euclide/latex/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/macros/latex/contrib/tkz/tkz-euclide/latex/tkz-euclide.sty b/macros/latex/contrib/tkz/tkz-euclide/latex/tkz-euclide.sty
index 6671d81a0e..2708f4e730 100644
--- a/macros/latex/contrib/tkz/tkz-euclide/latex/tkz-euclide.sty
+++ b/macros/latex/contrib/tkz/tkz-euclide/latex/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/macros/latex/contrib/tkz/tkz-euclide/latex/tkz-lib-eu-marks.tex b/macros/latex/contrib/tkz/tkz-euclide/latex/tkz-lib-eu-marks.tex
index cc4cc0bd09..e6192198cf 100644
--- a/macros/latex/contrib/tkz/tkz-euclide/latex/tkz-lib-eu-marks.tex
+++ b/macros/latex/contrib/tkz/tkz-euclide/latex/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/macros/latex/contrib/tkz/tkz-euclide/latex/tkz-lib-eu-shape.tex b/macros/latex/contrib/tkz/tkz-euclide/latex/tkz-lib-eu-shape.tex
index 98fbfce241..f0e53e2482 100644
--- a/macros/latex/contrib/tkz/tkz-euclide/latex/tkz-lib-eu-shape.tex
+++ b/macros/latex/contrib/tkz/tkz-euclide/latex/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/macros/latex/contrib/tkz/tkz-euclide/latex/tkz-obj-eu-axesmin.tex b/macros/latex/contrib/tkz/tkz-euclide/latex/tkz-obj-eu-axesmin.tex
index 5ee8ab60a2..883928a5a8 100644
--- a/macros/latex/contrib/tkz/tkz-euclide/latex/tkz-obj-eu-axesmin.tex
+++ b/macros/latex/contrib/tkz/tkz-euclide/latex/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/macros/latex/contrib/tkz/tkz-euclide/latex/tkz-obj-eu-circles-by.tex b/macros/latex/contrib/tkz/tkz-euclide/latex/tkz-obj-eu-circles-by.tex
index a3bcf65ec3..d0caf96a37 100644
--- a/macros/latex/contrib/tkz/tkz-euclide/latex/tkz-obj-eu-circles-by.tex
+++ b/macros/latex/contrib/tkz/tkz-euclide/latex/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/macros/latex/contrib/tkz/tkz-euclide/latex/tkz-obj-eu-circles.tex b/macros/latex/contrib/tkz/tkz-euclide/latex/tkz-obj-eu-circles.tex
index 8eb9ce62cf..3b309afa48 100644
--- a/macros/latex/contrib/tkz/tkz-euclide/latex/tkz-obj-eu-circles.tex
+++ b/macros/latex/contrib/tkz/tkz-euclide/latex/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/macros/latex/contrib/tkz/tkz-euclide/latex/tkz-obj-eu-compass.tex b/macros/latex/contrib/tkz/tkz-euclide/latex/tkz-obj-eu-compass.tex
index 37ab27d8e7..17c1be69b5 100644
--- a/macros/latex/contrib/tkz/tkz-euclide/latex/tkz-obj-eu-compass.tex
+++ b/macros/latex/contrib/tkz/tkz-euclide/latex/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/macros/latex/contrib/tkz/tkz-euclide/latex/tkz-obj-eu-draw-angles.tex b/macros/latex/contrib/tkz/tkz-euclide/latex/tkz-obj-eu-draw-angles.tex
index a0fb399aee..6234a361b3 100644
--- a/macros/latex/contrib/tkz/tkz-euclide/latex/tkz-obj-eu-draw-angles.tex
+++ b/macros/latex/contrib/tkz/tkz-euclide/latex/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/macros/latex/contrib/tkz/tkz-euclide/latex/tkz-obj-eu-draw-circles.tex b/macros/latex/contrib/tkz/tkz-euclide/latex/tkz-obj-eu-draw-circles.tex
index fcc2a6fa9b..5fd3356bc4 100644
--- a/macros/latex/contrib/tkz/tkz-euclide/latex/tkz-obj-eu-draw-circles.tex
+++ b/macros/latex/contrib/tkz/tkz-euclide/latex/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/macros/latex/contrib/tkz/tkz-euclide/latex/tkz-obj-eu-draw-lines.tex b/macros/latex/contrib/tkz/tkz-euclide/latex/tkz-obj-eu-draw-lines.tex
index 77dbe4f889..a415218816 100644
--- a/macros/latex/contrib/tkz/tkz-euclide/latex/tkz-obj-eu-draw-lines.tex
+++ b/macros/latex/contrib/tkz/tkz-euclide/latex/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/macros/latex/contrib/tkz/tkz-euclide/latex/tkz-obj-eu-draw-points.tex b/macros/latex/contrib/tkz/tkz-euclide/latex/tkz-obj-eu-draw-points.tex
new file mode 100644
index 0000000000..ee9d5bbbc7
--- /dev/null
+++ b/macros/latex/contrib/tkz/tkz-euclide/latex/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/macros/latex/contrib/tkz/tkz-euclide/latex/tkz-obj-eu-draw-polygons.tex b/macros/latex/contrib/tkz/tkz-euclide/latex/tkz-obj-eu-draw-polygons.tex
index ebf53e42f1..b7e1b1faa0 100644
--- a/macros/latex/contrib/tkz/tkz-euclide/latex/tkz-obj-eu-draw-polygons.tex
+++ b/macros/latex/contrib/tkz/tkz-euclide/latex/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/macros/latex/contrib/tkz/tkz-euclide/latex/tkz-obj-eu-draw-triangles.tex b/macros/latex/contrib/tkz/tkz-euclide/latex/tkz-obj-eu-draw-triangles.tex
index 113326de89..7e9cf513c8 100644
--- a/macros/latex/contrib/tkz/tkz-euclide/latex/tkz-obj-eu-draw-triangles.tex
+++ b/macros/latex/contrib/tkz/tkz-euclide/latex/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/macros/latex/contrib/tkz/tkz-euclide/latex/tkz-obj-eu-grids.tex b/macros/latex/contrib/tkz/tkz-euclide/latex/tkz-obj-eu-grids.tex
index 4e9fecae25..44f898faca 100644
--- a/macros/latex/contrib/tkz/tkz-euclide/latex/tkz-obj-eu-grids.tex
+++ b/macros/latex/contrib/tkz/tkz-euclide/latex/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/macros/latex/contrib/tkz/tkz-euclide/latex/tkz-obj-eu-lines.tex b/macros/latex/contrib/tkz/tkz-euclide/latex/tkz-obj-eu-lines.tex
index 9dce18f48e..b07f40bc10 100644
--- a/macros/latex/contrib/tkz/tkz-euclide/latex/tkz-obj-eu-lines.tex
+++ b/macros/latex/contrib/tkz/tkz-euclide/latex/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/macros/latex/contrib/tkz/tkz-euclide/latex/tkz-obj-eu-points-by.tex b/macros/latex/contrib/tkz/tkz-euclide/latex/tkz-obj-eu-points-by.tex
index 596ee3a0bc..699bd8bc37 100644
--- a/macros/latex/contrib/tkz/tkz-euclide/latex/tkz-obj-eu-points-by.tex
+++ b/macros/latex/contrib/tkz/tkz-euclide/latex/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/macros/latex/contrib/tkz/tkz-euclide/latex/tkz-obj-eu-points-rnd.tex b/macros/latex/contrib/tkz/tkz-euclide/latex/tkz-obj-eu-points-rnd.tex
index 06e792f6fd..b837215d48 100644
--- a/macros/latex/contrib/tkz/tkz-euclide/latex/tkz-obj-eu-points-rnd.tex
+++ b/macros/latex/contrib/tkz/tkz-euclide/latex/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/macros/latex/contrib/tkz/tkz-euclide/latex/tkz-obj-eu-points-spc.tex b/macros/latex/contrib/tkz/tkz-euclide/latex/tkz-obj-eu-points-spc.tex
index a67b375cd0..7b4f9966bb 100644
--- a/macros/latex/contrib/tkz/tkz-euclide/latex/tkz-obj-eu-points-spc.tex
+++ b/macros/latex/contrib/tkz/tkz-euclide/latex/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/macros/latex/contrib/tkz/tkz-euclide/latex/tkz-obj-eu-points-with.tex b/macros/latex/contrib/tkz/tkz-euclide/latex/tkz-obj-eu-points-with.tex
index f8c6770812..728f7ab4df 100644
--- a/macros/latex/contrib/tkz/tkz-euclide/latex/tkz-obj-eu-points-with.tex
+++ b/macros/latex/contrib/tkz/tkz-euclide/latex/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/macros/latex/contrib/tkz/tkz-euclide/latex/tkz-obj-eu-points.tex b/macros/latex/contrib/tkz/tkz-euclide/latex/tkz-obj-eu-points.tex
index 7f8088b225..5bb4f41e88 100644
--- a/macros/latex/contrib/tkz/tkz-euclide/latex/tkz-obj-eu-points.tex
+++ b/macros/latex/contrib/tkz/tkz-euclide/latex/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/macros/latex/contrib/tkz/tkz-euclide/latex/tkz-obj-eu-polygons.tex b/macros/latex/contrib/tkz/tkz-euclide/latex/tkz-obj-eu-polygons.tex
index 19aeced046..d1f3692d05 100644
--- a/macros/latex/contrib/tkz/tkz-euclide/latex/tkz-obj-eu-polygons.tex
+++ b/macros/latex/contrib/tkz/tkz-euclide/latex/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/macros/latex/contrib/tkz/tkz-euclide/latex/tkz-obj-eu-protractor.tex b/macros/latex/contrib/tkz/tkz-euclide/latex/tkz-obj-eu-protractor.tex
index e88b6efd35..ad0ff40681 100644
--- a/macros/latex/contrib/tkz/tkz-euclide/latex/tkz-obj-eu-protractor.tex
+++ b/macros/latex/contrib/tkz/tkz-euclide/latex/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/macros/latex/contrib/tkz/tkz-euclide/latex/tkz-obj-eu-sectors.tex b/macros/latex/contrib/tkz/tkz-euclide/latex/tkz-obj-eu-sectors.tex
index da68ae7404..c21ec58fbb 100644
--- a/macros/latex/contrib/tkz/tkz-euclide/latex/tkz-obj-eu-sectors.tex
+++ b/macros/latex/contrib/tkz/tkz-euclide/latex/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/macros/latex/contrib/tkz/tkz-euclide/latex/tkz-obj-eu-show.tex b/macros/latex/contrib/tkz/tkz-euclide/latex/tkz-obj-eu-show.tex
index d10caa8f48..7c4bb47903 100644
--- a/macros/latex/contrib/tkz/tkz-euclide/latex/tkz-obj-eu-show.tex
+++ b/macros/latex/contrib/tkz/tkz-euclide/latex/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/macros/latex/contrib/tkz/tkz-euclide/latex/tkz-obj-eu-triangles.tex b/macros/latex/contrib/tkz/tkz-euclide/latex/tkz-obj-eu-triangles.tex
index 98c9ec3f2d..49be3da866 100644
--- a/macros/latex/contrib/tkz/tkz-euclide/latex/tkz-obj-eu-triangles.tex
+++ b/macros/latex/contrib/tkz/tkz-euclide/latex/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/macros/latex/contrib/tkz/tkz-euclide/latex/tkz-tools-eu-BB.tex b/macros/latex/contrib/tkz/tkz-euclide/latex/tkz-tools-eu-BB.tex
index a00317d77c..b6ac1c328d 100644
--- a/macros/latex/contrib/tkz/tkz-euclide/latex/tkz-tools-eu-BB.tex
+++ b/macros/latex/contrib/tkz/tkz-euclide/latex/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/macros/latex/contrib/tkz/tkz-euclide/latex/tkz-tools-eu-angles.tex b/macros/latex/contrib/tkz/tkz-euclide/latex/tkz-tools-eu-angles.tex
index 61b33defe1..b46cee1957 100644
--- a/macros/latex/contrib/tkz/tkz-euclide/latex/tkz-tools-eu-angles.tex
+++ b/macros/latex/contrib/tkz/tkz-euclide/latex/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/macros/latex/contrib/tkz/tkz-euclide/latex/tkz-tools-eu-base.tex b/macros/latex/contrib/tkz/tkz-euclide/latex/tkz-tools-eu-base.tex
index a5a1bc3ed1..639a5ef21a 100644
--- a/macros/latex/contrib/tkz/tkz-euclide/latex/tkz-tools-eu-base.tex
+++ b/macros/latex/contrib/tkz/tkz-euclide/latex/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/macros/latex/contrib/tkz/tkz-euclide/latex/tkz-tools-eu-colors.tex b/macros/latex/contrib/tkz/tkz-euclide/latex/tkz-tools-eu-colors.tex
index 0b0b7fc910..b5ba3e673d 100644
--- a/macros/latex/contrib/tkz/tkz-euclide/latex/tkz-tools-eu-colors.tex
+++ b/macros/latex/contrib/tkz/tkz-euclide/latex/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/macros/latex/contrib/tkz/tkz-euclide/latex/tkz-tools-eu-intersections.tex b/macros/latex/contrib/tkz/tkz-euclide/latex/tkz-tools-eu-intersections.tex
index 74d351e2e4..1c214a3150 100644
--- a/macros/latex/contrib/tkz/tkz-euclide/latex/tkz-tools-eu-intersections.tex
+++ b/macros/latex/contrib/tkz/tkz-euclide/latex/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/macros/latex/contrib/tkz/tkz-euclide/latex/tkz-tools-eu-math.tex b/macros/latex/contrib/tkz/tkz-euclide/latex/tkz-tools-eu-math.tex
index 6723a41a35..e3c602abb3 100644
--- a/macros/latex/contrib/tkz/tkz-euclide/latex/tkz-tools-eu-math.tex
+++ b/macros/latex/contrib/tkz/tkz-euclide/latex/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/macros/latex/contrib/tkz/tkz-euclide/latex/tkz-tools-eu-modules.tex b/macros/latex/contrib/tkz/tkz-euclide/latex/tkz-tools-eu-modules.tex
index c3ba8ab736..2a3ddbbea3 100644
--- a/macros/latex/contrib/tkz/tkz-euclide/latex/tkz-tools-eu-modules.tex
+++ b/macros/latex/contrib/tkz/tkz-euclide/latex/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/macros/latex/contrib/tkz/tkz-euclide/latex/tkz-tools-eu-text.tex b/macros/latex/contrib/tkz/tkz-euclide/latex/tkz-tools-eu-text.tex
index 5bab4312ce..b8ff9c3901 100644
--- a/macros/latex/contrib/tkz/tkz-euclide/latex/tkz-tools-eu-text.tex
+++ b/macros/latex/contrib/tkz/tkz-euclide/latex/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/macros/latex/contrib/tkz/tkz-euclide/latex/tkz-tools-eu-utilities.tex b/macros/latex/contrib/tkz/tkz-euclide/latex/tkz-tools-eu-utilities.tex
index 93b14350f9..6a9397171d 100644
--- a/macros/latex/contrib/tkz/tkz-euclide/latex/tkz-tools-eu-utilities.tex
+++ b/macros/latex/contrib/tkz/tkz-euclide/latex/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