From 05e4c0a34b97237b4cd2f3fb0d5cd03e73b8e55e Mon Sep 17 00:00:00 2001 From: Norbert Preining Date: Thu, 19 Oct 2023 03:01:07 +0000 Subject: CTAN sync 202310190301 --- macros/latex/contrib/proflycee/tex/ProfLycee.sty | 3 +- .../proflycee/tex/proflycee-tools-recreat.tex | 95 ++++++++++++++++++++++ 2 files changed, 97 insertions(+), 1 deletion(-) (limited to 'macros/latex/contrib/proflycee/tex') diff --git a/macros/latex/contrib/proflycee/tex/ProfLycee.sty b/macros/latex/contrib/proflycee/tex/ProfLycee.sty index 8c89863d8c..176a4fd187 100644 --- a/macros/latex/contrib/proflycee/tex/ProfLycee.sty +++ b/macros/latex/contrib/proflycee/tex/ProfLycee.sty @@ -3,7 +3,8 @@ % or later, see http://www.latex-project.org/lppl.txtf \NeedsTeXFormat{LaTeX2e} -\ProvidesPackage{ProfLycee}[2023/10/06 2.7.8 Aide pour l'utilisation de LaTeX en lycee] +\ProvidesPackage{ProfLycee}[2023/10/18 2.7.9 Aide pour l'utilisation de LaTeX en lycee] +% 2.7.9 Ajout de fractales (Koch + Sierpenski) % 2.7.8 Conversion hexa->bin présentée % 2.7.7 Ajout d'une commande pour matérialiser des points de discontinuité % 2.7.6 Amélioration de la gestion de la console piton diff --git a/macros/latex/contrib/proflycee/tex/proflycee-tools-recreat.tex b/macros/latex/contrib/proflycee/tex/proflycee-tools-recreat.tex index a90d17e0dc..8578cf58a6 100644 --- a/macros/latex/contrib/proflycee/tex/proflycee-tools-recreat.tex +++ b/macros/latex/contrib/proflycee/tex/proflycee-tools-recreat.tex @@ -243,4 +243,99 @@ \end{tikzpicture} } +%=====FRACTALES +\usetikzlibrary{lindenmayersystems} + +\pgfdeclarelindenmayersystem{FloconKoch}{ + \rule{F -> F-F++F-F}} +\pgfdeclarelindenmayersystem{TriangleSierpinski}{ + \rule{F -> G-F-G} + \rule{G -> F+G+F}} + +\defKV[tikzfract]{% + Epaisseur=\def\fracttikzthick{#1},% + Type=\def\fracttikztype{#1},% + Couleur=\def\fracttikzcolor{#1},% + LongueurCote=\def\fracttikzlg{#1},% + Etape=\def\fracttikzstep{#1},% + Remplissage=\def\fracttikzfill{#1},% + Depart=\def\fracttikzdepart{#1},% + Offset=\def\fracttikzoffset{#1} +} + +\setKVdefault[tikzfract]{% + Epaisseur=0.6pt,% + Type=Koch,% + Couleur=black,% + LongueurCote=3,% + Etape=1,% + Remplir=false,% + Remplissage=lightgray,% + Depart={(0,0)},% + Contour=false,% + AlignV=false,% + Offset=2pt +} + +\NewDocumentCommand\FractaleTikz{ s O{} D<>{} }{% + \restoreKV[tikzfract]% + \setKV[tikzfract]{#2}% + \def\fracttikzlgstep{\fpeval{(\fracttikzlg)/(3^\fracttikzstep)}}% + \IfStrEq{\fracttikztype}{Sierp}% + {% + \def\fracttikzlgstep{\fpeval{(\fracttikzlg)/(128)}}% + }{}% + \IfBooleanF{#1}{\begin{tikzpicture}[#3]} + \ifboolKV[tikzfract]{Remplir}% + {% + \IfStrEq{\fracttikztype}{Koch}% + {% + \ifboolKV[tikzfract]{AlignV}% + {% + \node at ($(1/3*\fracttikzlg,0)+(-60:1/3*\fracttikzlg)$) {} ; + }{}% + \draw[line width =\fracttikzthick,shift=\fracttikzdepart,draw=\fracttikzcolor,fill=\fracttikzfill,l-system={FloconKoch,step=\fracttikzlgstep cm,angle=60,axiom=F++F++F,order=\fracttikzstep}] lindenmayer system -- cycle; + }{}% + \IfStrEq{\fracttikztype}{Sierp}% + {% + \ifboolKV[tikzfract]{Contour}% + {% + \draw[shift=\fracttikzdepart,line width=\fracttikzthick,\fracttikzcolor] (0,0) -- (60:\fracttikzlg cm) -- (\fracttikzlg cm,0) -- cycle ; + \clip (0,0) -- (60:\fracttikzlg cm) -- (\fracttikzlg cm,0) -- cycle ; + }{}% + \draw[line width=\fracttikzthick,shift=\fracttikzdepart,draw=\fracttikzcolor,fill=\fracttikzfill,l-system={TriangleSierpinski,step=\fracttikzlgstep cm,angle=60,axiom=F,order=8}] + lindenmayer system -- cycle; + }{}% + }% + {% + \IfStrEq{\fracttikztype}{Koch}% + {% + \ifboolKV[tikzfract]{AlignV}% + {% + \node at ($(1/3*\fracttikzlg,0)+(-60:1/3*\fracttikzlg)$) {} ; + }{}% + \draw [line width=\fracttikzthick,shift=\fracttikzdepart,\fracttikzcolor,l-system={FloconKoch,step=\fracttikzlgstep cm,angle=60,axiom=F++F++F,order=\fracttikzstep}] lindenmayer system -- cycle; + }{}% + \IfStrEq{\fracttikztype}{Sierp}% + {% + \ifboolKV[tikzfract]{Contour}% + {% + \draw[shift=\fracttikzdepart,line width=\fracttikzthick,\fracttikzcolor] (0,0) -- (60:\fracttikzlg cm) -- (\fracttikzlg cm,0) -- cycle ; + \clip (0,0) -- (60:\fracttikzlg cm) -- (\fracttikzlg cm,0) -- cycle ; + }{}% + \draw[line width=\fracttikzthick,shift=\fracttikzdepart,\fracttikzcolor,l-system={TriangleSierpinski,step=\fracttikzlgstep cm,angle=60,axiom=F,order=8}] + lindenmayer system -- cycle; + }{}% + }% + \IfBooleanF{#1}{\end{tikzpicture}}% +} + +\NewDocumentCommand\EtapesFloconKoch{ O{} D<>{} m }{% + \restoreKV[tikzfract]% + \setKV[tikzfract]{#1}% + \foreach \i in {#3} {% + \FractaleTikz[AlignV,#1,Etape=\i]<#2>\hspace{\fracttikzoffset}% + } +} + \endinput \ No newline at end of file -- cgit v1.2.3