summaryrefslogtreecommitdiff
path: root/macros/latex/contrib/proflycee/tex/proflycee-tools-analyse.tex
diff options
context:
space:
mode:
Diffstat (limited to 'macros/latex/contrib/proflycee/tex/proflycee-tools-analyse.tex')
-rw-r--r--macros/latex/contrib/proflycee/tex/proflycee-tools-analyse.tex72
1 files changed, 71 insertions, 1 deletions
diff --git a/macros/latex/contrib/proflycee/tex/proflycee-tools-analyse.tex b/macros/latex/contrib/proflycee/tex/proflycee-tools-analyse.tex
index 2fb8b930c0..3454738654 100644
--- a/macros/latex/contrib/proflycee/tex/proflycee-tools-analyse.tex
+++ b/macros/latex/contrib/proflycee/tex/proflycee-tools-analyse.tex
@@ -1,5 +1,5 @@
% proflycee-tools-analyse.tex
-% Copyright 2023 Cédric Pierquet
+% Copyright 2023-2024 Cédric Pierquet
% Released under the LaTeX Project Public License v1.3c or later, see http://www.latex-project.org/lppl.txt
%Correction d'un bug sur la raacine carrée... le cas où ça fait 1 !
@@ -812,4 +812,74 @@
{}%
}
+%====tkz ligne convexité
+\makeatletter
+\NewDocumentCommand\tkzTabLineConvex{ s m m }{%
+ %étoilé := mode texte
+ %1 := ligne
+ %2 := liste des cases ( ccv / cvx / t / d / i / i* )
+ %calculs intermédiaires
+ \xdef\j{#2}%
+ \xdef\k{\inteval{#2+1}}%
+ %récup hauteur ligne
+ \pgfpointdiff{\pgfpointanchor{T0\j}{center}}{\pgfpointanchor{T0\k}{center}}%
+ \pgf@xa=\pgf@x
+ \pgf@ya=\pgf@y
+ \pgfmathparse{veclen(\pgf@xa,\pgf@ya)/28.45274}%
+ \global\let\tmphautligne\pgfmathresult%
+ %suite
+ \readlist*\lsttabconvex{#3}%
+ \foreach \i in {1,...,\lsttabconvexlen}{%
+ \itemtomacro\lsttabconvex[\i]{\paramcvxitem}%
+ \IfStrEqCase{\paramcvxitem}{%
+ {d}%double barre
+ {%
+ \xdef\nodedouble{\inteval{(\i+1)/2}}%
+ \draw[double style] (N\nodedouble\j)--(N\nodedouble\k) ;%
+ }%
+ {i*}%inflexion
+ {%
+ \xdef\nodedouble{\inteval{(\i+1)/2}}%
+ \draw[line width=\cmdTAB@tbs@lw] (N\nodedouble\j)--([xshift=-12pt]N\nodedouble\k) ;%
+ \draw[line width=\cmdTAB@tbs@lw] (N\nodedouble\j)--([xshift=12pt]N\nodedouble\k) ;%
+ \draw (N\nodedouble\k) node[font=\tiny,text width=1.5cm,align=center] {point\\d'inflexion} ;
+ }%
+ {i}%inflexion sans texte
+ {%
+ \xdef\nodedouble{\inteval{(\i+1)/2}}%
+ \draw[line width=\cmdTAB@tbs@lw] (N\nodedouble\j)--([xshift=-12pt]N\nodedouble\k) ;%
+ \draw[line width=\cmdTAB@tbs@lw] (N\nodedouble\j)--([xshift=12pt]N\nodedouble\k) ;%
+ }%
+ {t}%trait
+ {%
+ \xdef\nodedouble{\inteval{(\i+1)/2}}%
+ \draw[line width=\cmdTAB@tbs@lw,t style] (N\nodedouble\j)--(N\nodedouble\k) ;
+ }
+ {ccv}%concave
+ {%
+ \xdef\nodedouble{\inteval{(\i)/2}}%
+ \IfBooleanTF{#1}%
+ {%
+ \draw ($(M\nodedouble\j)!0.5!(M\nodedouble\k)$) node {concave} ;%
+ }%
+ {%
+ \draw[line width={1.5*\cmdTAB@tbs@lw}] ($(M\nodedouble\j)!0.5!(M\nodedouble\k)+({-0.275*\cmdTAB@tbs@espcl},{-0.25*\tmphautligne})$) parabola bend ++({0.275*\cmdTAB@tbs@espcl},{0.5*\tmphautligne}) ($(M\nodedouble\j)!0.5!(M\nodedouble\k)+({0.275*\cmdTAB@tbs@espcl},{-0.25*\tmphautligne})$) ;
+ }%
+ }%
+ {cvx}%concave
+ {%
+ \xdef\nodedouble{\inteval{(\i)/2}}%
+ \IfBooleanTF{#1}%
+ {%
+ \draw ($(M\nodedouble\j)!0.5!(M\nodedouble\k)$) node {convexe} ;%
+ }%
+ {%
+ \draw[line width={1.5*\cmdTAB@tbs@lw}] ($(M\nodedouble\j)!0.5!(M\nodedouble\k)+({-0.275*\cmdTAB@tbs@espcl},{0.25*\tmphautligne})$) parabola bend ++({0.275*\cmdTAB@tbs@espcl},{-0.5*\tmphautligne}) ($(M\nodedouble\j)!0.5!(M\nodedouble\k)+({0.275*\cmdTAB@tbs@espcl},{0.25*\tmphautligne})$) ;
+ }%
+ }%
+ }%
+ }%
+}
+\makeatother
+
\endinput \ No newline at end of file