summaryrefslogtreecommitdiff
path: root/graphics
diff options
context:
space:
mode:
authorNorbert Preining <norbert@preining.info>2020-03-18 03:01:18 +0000
committerNorbert Preining <norbert@preining.info>2020-03-18 03:01:18 +0000
commit701be49cc7a592cc192c0f28e45a763a4c745282 (patch)
tree4e86cf1011b55faeddf0e8da471c2e55324b37fa /graphics
parent35730d4ce115914408c09833060f86cc84fc0d14 (diff)
CTAN sync 202003180301
Diffstat (limited to 'graphics')
-rw-r--r--graphics/pstricks/contrib/pst-spirograph/Changes22
-rw-r--r--graphics/pstricks/contrib/pst-spirograph/README12
-rw-r--r--graphics/pstricks/contrib/pst-spirograph/doc/animation/README.anim8
-rw-r--r--graphics/pstricks/contrib/pst-spirograph/doc/animation/anim1.tex21
-rw-r--r--graphics/pstricks/contrib/pst-spirograph/doc/animation/anim2.tex21
-rw-r--r--graphics/pstricks/contrib/pst-spirograph/doc/animation/anim3.tex21
-rw-r--r--graphics/pstricks/contrib/pst-spirograph/doc/animation/anim4.tex21
-rw-r--r--graphics/pstricks/contrib/pst-spirograph/doc/animation/anim5.tex22
-rw-r--r--graphics/pstricks/contrib/pst-spirograph/doc/animation/anim6.tex21
-rw-r--r--graphics/pstricks/contrib/pst-spirograph/doc/animation/anim7.tex20
-rw-r--r--graphics/pstricks/contrib/pst-spirograph/doc/animation/anim8.tex21
-rw-r--r--graphics/pstricks/contrib/pst-spirograph/doc/animation/anim9.tex24
-rw-r--r--graphics/pstricks/contrib/pst-spirograph/doc/animation/animA.tex23
-rw-r--r--graphics/pstricks/contrib/pst-spirograph/doc/animation/animB.tex22
-rw-r--r--graphics/pstricks/contrib/pst-spirograph/doc/animation/animC.tex17
-rwxr-xr-xgraphics/pstricks/contrib/pst-spirograph/doc/animation/runall.sh13
-rw-r--r--graphics/pstricks/contrib/pst-spirograph/doc/pst-spirograph-doc.bib96
-rw-r--r--graphics/pstricks/contrib/pst-spirograph/doc/pst-spirograph-doc.pdfbin57216485 -> 0 bytes
-rw-r--r--graphics/pstricks/contrib/pst-spirograph/doc/pst-spirograph-doc.tex406
-rw-r--r--graphics/pstricks/contrib/pst-spirograph/dvips/pst-spirograph.pro414
-rw-r--r--graphics/pstricks/contrib/pst-spirograph/latex/pst-spirograph.sty30
-rw-r--r--graphics/pstricks/contrib/pst-spirograph/tex/pst-spirograph.tex465
22 files changed, 0 insertions, 1720 deletions
diff --git a/graphics/pstricks/contrib/pst-spirograph/Changes b/graphics/pstricks/contrib/pst-spirograph/Changes
deleted file mode 100644
index 124518d431..0000000000
--- a/graphics/pstricks/contrib/pst-spirograph/Changes
+++ /dev/null
@@ -1,22 +0,0 @@
------ pst-spirograph.tex
-0.51 2020-03-14 - added new optional argument for a rubber band connection
- of two gears
-0.50 2020-03-11 - added new optional argument TypeA for special graphs
-0.41 2014-08-23 - updated documentation
- - move some more PS functions into the pro file
-0.40 2014-08-18 - first CTAN version (hv)
-
-
------ pst-spirograph.pro
-0.51 2020-03-14 - added some more functions
-0.50 2020-03-11 - added some more functions
-0.41 2014-08-23 - added some more functions
-0.40 2014-08-18 - first CTAN version (hv)
-
-
------ pst-spirograph.sty
-0.51 2020-03-14 - load more required files
-0.50 2020-03-11 - updated file dates
-0.41 2014-08-23 - updated file dates
-0.40 2014-08-18 - first CTAN version (hv)
-
diff --git a/graphics/pstricks/contrib/pst-spirograph/README b/graphics/pstricks/contrib/pst-spirograph/README
deleted file mode 100644
index c1968e1db7..0000000000
--- a/graphics/pstricks/contrib/pst-spirograph/README
+++ /dev/null
@@ -1,12 +0,0 @@
-This version of pst-spirograph uses the xkeyval package, the extended
-version of keyval.
-
-pst-spirograph needs pstricks, which should be part of your
-local TeX installation, otherwise get it from a CTAN server, f.ex.
-http://mirror.ctan.org/graphics/pstricks/
-
-%% This program can be redistributed and/or modified under the terms
-%% of the LaTeX Project Public License Distributed from CTAN archives
-%% in directory CTAN:/macros/latex/base/lppl.txt.
-
-hvoss@tug.org
diff --git a/graphics/pstricks/contrib/pst-spirograph/doc/animation/README.anim b/graphics/pstricks/contrib/pst-spirograph/doc/animation/README.anim
deleted file mode 100644
index 36b2f23bde..0000000000
--- a/graphics/pstricks/contrib/pst-spirograph/doc/animation/README.anim
+++ /dev/null
@@ -1,8 +0,0 @@
-run all files with
-
-latex <file>
-dvips <file>
-ps2pdf -dNOSAFER <file>.ps
-
-and then view the pdf with the acrobat reader, available from Adobe
-if not already installed on your current system. \ No newline at end of file
diff --git a/graphics/pstricks/contrib/pst-spirograph/doc/animation/anim1.tex b/graphics/pstricks/contrib/pst-spirograph/doc/animation/anim1.tex
deleted file mode 100644
index ac4109bc2f..0000000000
--- a/graphics/pstricks/contrib/pst-spirograph/doc/animation/anim1.tex
+++ /dev/null
@@ -1,21 +0,0 @@
-\documentclass[border=5mm]{standalone}
-\usepackage{animate}
-\usepackage{pst-spirograph}
-\addtopsstyle{gridstyle}{gridlabels=0pt}
-
-\begin{document}
-
-\begin{animateinline}[
- width=0.9\linewidth,
- begin={\begin{pspicture}[showgrid](-3.5,-3.5)(3.5,3.5)\psframe*[linecolor=yellow,opacity=0.4](-3.5,-3.5)(3.5,3.5)},
- end={\end{pspicture}},
- palindrome,controls,
-% autoplay
-]{5}
-\multiframe{180}{iA=0+4}{%
- \psSpirograph[thetamax=\iA,Z1=59,Z2=24,m=0.1,ap=10,curvewidth=1.2pt,
- linewidth=0.025,fillstyle=solid,polarangle=\iA,holenumber=5,opacity=0.5](0,0)}
-\end{animateinline}
-
-\end{document}
-
diff --git a/graphics/pstricks/contrib/pst-spirograph/doc/animation/anim2.tex b/graphics/pstricks/contrib/pst-spirograph/doc/animation/anim2.tex
deleted file mode 100644
index c334442f70..0000000000
--- a/graphics/pstricks/contrib/pst-spirograph/doc/animation/anim2.tex
+++ /dev/null
@@ -1,21 +0,0 @@
-\documentclass[border=5mm]{standalone}
-\usepackage{animate}
-\usepackage{pst-spirograph}
-\addtopsstyle{gridstyle}{gridlabels=0pt}
-
-\begin{document}
-
-\begin{animateinline}[
- width=0.9\linewidth,
- begin={\begin{pspicture}[showgrid](-3,-3)(3,3)\psframe*[linecolor=yellow,opacity=0.4](-3,-3)(3,3)},
- end={\end{pspicture}},
- palindrome,controls,
-% autoplay
-]{5}
-\multiframe{180}{iA=0+4}{%
- \psSpirograph[thetamax=\iA,Z1=41,Z2=13,m=0.1,ap=10,,curvewidth=1.1pt,holenumber=3,
- linewidth=0.025,fillstyle=solid,polarangle=\iA,opacity=0.5](0,0)}
-\end{animateinline}
-
-\end{document}
-
diff --git a/graphics/pstricks/contrib/pst-spirograph/doc/animation/anim3.tex b/graphics/pstricks/contrib/pst-spirograph/doc/animation/anim3.tex
deleted file mode 100644
index e20fe33493..0000000000
--- a/graphics/pstricks/contrib/pst-spirograph/doc/animation/anim3.tex
+++ /dev/null
@@ -1,21 +0,0 @@
-\documentclass[border=5mm]{standalone}
-\usepackage{animate}
-\usepackage{pst-spirograph}
-\addtopsstyle{gridstyle}{gridlabels=0pt}
-
-\begin{document}
-
-\begin{animateinline}[
- width=0.9\linewidth,
- begin={\begin{pspicture}[showgrid](-4,-4)(4,4)\psframe*[linecolor=yellow,opacity=0.4](-4,-4)(4,4)},
- end={\end{pspicture}},
- palindrome,controls,
-% autoplay
-]{5}
-\multiframe{180}{iA=0+4}{%
- \psSpirograph[thetamax=\iA,Z1=88,Z2=15,m=0.08,ap=10,curvewidth=1.1pt,holenumber=6,
- linewidth=0.025,fillstyle=solid,polarangle=\iA,opacity=0.5](0,0)}
-\end{animateinline}
-
-\end{document}
-
diff --git a/graphics/pstricks/contrib/pst-spirograph/doc/animation/anim4.tex b/graphics/pstricks/contrib/pst-spirograph/doc/animation/anim4.tex
deleted file mode 100644
index 0b113bdecb..0000000000
--- a/graphics/pstricks/contrib/pst-spirograph/doc/animation/anim4.tex
+++ /dev/null
@@ -1,21 +0,0 @@
-\documentclass[border=5mm]{standalone}
-\usepackage{animate}
-\usepackage{pst-spirograph}
-\addtopsstyle{gridstyle}{gridlabels=0pt}
-\begin{document}
-
-\begin{animateinline}[
- width=0.9\linewidth,
- begin={\begin{pspicture}[showgrid](-3.5,-3.5)(3.5,3.5)\psframe*[linecolor=yellow,opacity=0.4](-3.5,-3.5)(3.5,3.5)},
- end={\end{pspicture}},
- palindrome,controls,
-% autoplay
-]{5}
-\multiframe{180}{iA=0+4}{%
- \psSpirograph[thetamax=\iA,Z1=122,Z2=69,m=0.05,ap=10,curvewidth=1.1pt,
- linewidth=0.025,fillstyle=solid,polarangle=\iA,holenumber=4,opacity=0.5](0,0)}
-\end{animateinline}
-
-\end{document}
-
-
diff --git a/graphics/pstricks/contrib/pst-spirograph/doc/animation/anim5.tex b/graphics/pstricks/contrib/pst-spirograph/doc/animation/anim5.tex
deleted file mode 100644
index 0195e722a2..0000000000
--- a/graphics/pstricks/contrib/pst-spirograph/doc/animation/anim5.tex
+++ /dev/null
@@ -1,22 +0,0 @@
-\documentclass[border=5mm]{standalone}
-\usepackage{animate}
-\usepackage{pst-spirograph}
-\addtopsstyle{gridstyle}{gridlabels=0pt}
-
-\begin{document}
-
-\begin{animateinline}[
- width=0.9\linewidth,
- begin={\begin{pspicture}[showgrid=top](-3.5,-3.5)(3.5,3.5)\psframe*[linecolor=yellow,opacity=0.4](-3.5,-3.5)(3.5,3.5)},
- end={\end{pspicture}},
- palindrome,controls,
-% autoplay
-]{5}
-\multiframe{180}{iA=0+6}{%
- \psSpirograph[thetamax=\iA,Z1=59,Z2=24,m=0.1,ap=10,curvewidth=1.1pt,
- linewidth=0.025,fillstyle=solid,polarangle=\iA,holenumber=5,opacity=0.5](0,0)}
-\end{animateinline}
-
-\end{document}
-
-
diff --git a/graphics/pstricks/contrib/pst-spirograph/doc/animation/anim6.tex b/graphics/pstricks/contrib/pst-spirograph/doc/animation/anim6.tex
deleted file mode 100644
index 7893599526..0000000000
--- a/graphics/pstricks/contrib/pst-spirograph/doc/animation/anim6.tex
+++ /dev/null
@@ -1,21 +0,0 @@
-\documentclass[border=5mm]{standalone}
-\usepackage{animate}
-\usepackage{pst-spirograph}
-\addtopsstyle{gridstyle}{gridlabels=0pt}
-
-\begin{document}
-
-\begin{animateinline}[
- width=0.9\linewidth,
- begin={\begin{pspicture}[showgrid](-4.5,-4.5)(4.5,4.5)\psframe*[linecolor=yellow,opacity=0.4](-4.5,-4.5)(4.5,4.5)},
- end={\end{pspicture}},
- palindrome,controls,
-% autoplay
-]{5}
-\multiframe{180}{iA=0+6}{%
- \psSpirograph[thetamax=\iA,Z1=20,Z2=30,m=0.1,ap=10,curvewidth=1.5pt,inner=false,
- linewidth=0.025,fillstyle=solid,polarangle=\iA,holenumber=4,opacity=0.5](0,0)}
-\end{animateinline}
-
-\end{document}
-
diff --git a/graphics/pstricks/contrib/pst-spirograph/doc/animation/anim7.tex b/graphics/pstricks/contrib/pst-spirograph/doc/animation/anim7.tex
deleted file mode 100644
index b99a5a0ad8..0000000000
--- a/graphics/pstricks/contrib/pst-spirograph/doc/animation/anim7.tex
+++ /dev/null
@@ -1,20 +0,0 @@
-\documentclass[border=5mm]{standalone}
-\usepackage{animate}
-\usepackage{pst-spirograph}
-\addtopsstyle{gridstyle}{gridlabels=0pt}
-
-\begin{document}
-
-\begin{animateinline}[
- width=0.9\linewidth,
- begin={\begin{pspicture}[showgrid](-7,-7)(7,7)\psframe*[linecolor=yellow,opacity=0.4](-7,-7)(7,7)},
- end={\end{pspicture}},
- palindrome,controls,
-% autoplay
-]{5}
-\multiframe{180}{iA=0+6}{%
- \psSpirograph[thetamax=\iA,Z1=36,Z2=24,m=0.15,ap=20,curvecolor={[rgb]{0.875 0 0.5}},inner=false,
- curvewidth=1.1pt,linewidth=0.025,fillstyle=solid,polarangle=\iA,holenumber=0,opacity=0.5](0,0)}
-\end{animateinline}
-
-\end{document}
diff --git a/graphics/pstricks/contrib/pst-spirograph/doc/animation/anim8.tex b/graphics/pstricks/contrib/pst-spirograph/doc/animation/anim8.tex
deleted file mode 100644
index 8a274f5adc..0000000000
--- a/graphics/pstricks/contrib/pst-spirograph/doc/animation/anim8.tex
+++ /dev/null
@@ -1,21 +0,0 @@
-\documentclass[border=5mm]{standalone}
-\usepackage{animate}
-\usepackage{pst-spirograph}
-\addtopsstyle{gridstyle}{gridlabels=0pt}
-
-\begin{document}
-
-\begin{animateinline}[
- width=0.9\linewidth,
- begin={\begin{pspicture}[showgrid](-7,-7)(7,7)\psframe*[linecolor=yellow,opacity=0.4](-7,-7)(7,7)},
- end={\end{pspicture}},
- palindrome,controls,
-% autoplay
-]{5}
-\multiframe{180}{iA=0+6}{%
- \psSpirograph[thetamax=\iA,Z1=27,Z2=12,m=0.4,curvecolor={[rgb]{0 0.25 0.5}},curvewidth=1.1pt,
- linewidth=0.025,fillstyle=solid,polarangle=\iA,holenumber=4,opacity=0.5](0,0)}
-\end{animateinline}
-
-\end{document}
-
diff --git a/graphics/pstricks/contrib/pst-spirograph/doc/animation/anim9.tex b/graphics/pstricks/contrib/pst-spirograph/doc/animation/anim9.tex
deleted file mode 100644
index 9199971860..0000000000
--- a/graphics/pstricks/contrib/pst-spirograph/doc/animation/anim9.tex
+++ /dev/null
@@ -1,24 +0,0 @@
-\documentclass[border=5mm]{standalone}
-\usepackage{animate}
-\usepackage{pst-spirograph}
-\addtopsstyle{gridstyle}{gridlabels=0pt}
-
-\begin{document}
-
-\psset{unit=0.25cm}
-\begin{animateinline}[
- width=0.9\linewidth,begin={\begin{pspicture}(-20,-20)(20,20)},end={\end{pspicture}},palindrome,controls]{5}
-\multiframe{325}{i=0+10}{%
-\psgrid[subgriddiv=0,gridcolor=black!20,unit=2](-10,-10)(10,10)%
-\ifnum\i=325 \psset{gearwheels=false}\fi
-\psSpirograph[Z1=72,Z2=16,m=0.2,ap=10,TypeA=false,linewidth=0.02,linecolor={[rgb]{0.5 0 0 }},fillstyle=solid,
- opacity=0.75,polarangle=\i,circles=false,thetamax=\i,curvecolor=blue,curvewidth=2pt,
- HolePos=0.5,color1=cyan!10,color2=cyan!10,strokeopacity=0.5]%
-\psSpirograph[Z1=72,Z2=16,m=0.2,ap=10,TypeA=false,linewidth=0.02,linecolor={[rgb]{0.5 0 0 }},fillstyle=solid,
- opacity=0.75,polarangle=\i,circles=false,thetamax=\i,curvecolor=green,curvewidth=2pt,
- HolePos=1.5,color1=cyan!10,color2=cyan!10,strokeopacity=0.5,gearwheels=false]
-}
-\end{animateinline}
-
-\end{document}
-
diff --git a/graphics/pstricks/contrib/pst-spirograph/doc/animation/animA.tex b/graphics/pstricks/contrib/pst-spirograph/doc/animation/animA.tex
deleted file mode 100644
index cadac1cd1a..0000000000
--- a/graphics/pstricks/contrib/pst-spirograph/doc/animation/animA.tex
+++ /dev/null
@@ -1,23 +0,0 @@
-\documentclass[border=5mm]{standalone}
-\usepackage{geometry}
-\geometry{paperwidth=18cm,paperheight=21cm,margin=1cm}
-\usepackage{animate}
-\usepackage{pst-spirograph}
-\addtopsstyle{gridstyle}{gridlabels=0pt}
-
-\begin{document}
-
-\psset{unit=0.5cm}
-\begin{animateinline}[
- width=0.9\linewidth,begin={\begin{pspicture}(-18,-18)(18,18)},end={\end{pspicture}},palindrome,controls]{5}
-\multiframe{181}{i=0+10}{%
-\psgrid[style=gridstyleA]%
-\ifnum\i=181 \psset{gearwheels=false}\fi
-\psSpirograph[Z1=60,Z2=24,m=0.2,linewidth=0.025,TypeA=false,
- linecolor=blue,fillstyle=solid,opacity=0.75,polarangle=\i,circles=false,thetamax=\i,curvecolor=red,curvewidth=2pt,HolePos=1.7,
- gearwheels=false,
- circles]}
-\end{animateinline}
-
-\end{document}
-
diff --git a/graphics/pstricks/contrib/pst-spirograph/doc/animation/animB.tex b/graphics/pstricks/contrib/pst-spirograph/doc/animation/animB.tex
deleted file mode 100644
index e568a03965..0000000000
--- a/graphics/pstricks/contrib/pst-spirograph/doc/animation/animB.tex
+++ /dev/null
@@ -1,22 +0,0 @@
-\errorcontextlines=100
-\documentclass{article}
-\usepackage{geometry}
-\geometry{paperwidth=16.5cm,paperheight=12cm,margin=1cm}
-\pagestyle{empty}
-\usepackage{pst-spirograph,animate}
-\begin{document}
-
-\noindent
-\begin{animateinline}[
- begin={\begin{pspicture}(-6,-3)(8,6)\psframe*[linecolor=yellow,opacity=0.4](-6,-3)(8,6)},
- end={\end{pspicture}},
- palindrome,controls,
-% autoplay
-]{5}
-\multiframe{361}{iA=0+2}{%
-\psSpirograph[RubberBand,Z1=20,Z2=40,m=0.2,viewpoint=2 -5 3,arrowinset=0,arrowsize=0.2,wheelrotation=\iA,
- linewidth=0.025,color1=yellow,color2=blue!50]}
-\end{animateinline}
-
-
-\end{document}
diff --git a/graphics/pstricks/contrib/pst-spirograph/doc/animation/animC.tex b/graphics/pstricks/contrib/pst-spirograph/doc/animation/animC.tex
deleted file mode 100644
index f9ccfdd2e8..0000000000
--- a/graphics/pstricks/contrib/pst-spirograph/doc/animation/animC.tex
+++ /dev/null
@@ -1,17 +0,0 @@
-\documentclass{standalone}
-\usepackage{geometry}
-\geometry{paperwidth=20cm,paperheight=16cm,margin=1cm}
-\usepackage{pst-spirograph,animate}
-
-\begin{document}
-\begin{animateinline}[
- begin={\begin{pspicture}(-10,-5)(7,8)},
- end={\end{pspicture}},
- palindrome,controls,
-% autoplay
-]{5}
-\multiframe{181}{iA=0+2}{%
- \psSpirograph[RubberBand,Z1=40,Z2=10,m=0.2,viewpoint=-1 -5 5,arrowinset=0,arrowsize=0.2,wheelrotation=\iA,linewidth=0.025,color1=yellow,color2=cyan]}
-\end{animateinline}
-
-\end{document}
diff --git a/graphics/pstricks/contrib/pst-spirograph/doc/animation/runall.sh b/graphics/pstricks/contrib/pst-spirograph/doc/animation/runall.sh
deleted file mode 100755
index 08fa638fb7..0000000000
--- a/graphics/pstricks/contrib/pst-spirograph/doc/animation/runall.sh
+++ /dev/null
@@ -1,13 +0,0 @@
-#!/bin/bash
-set `dir -R *.tex`
-for datei in *.tex
-do
-# rm -fr *.pdf
- echo -n "Runnning file $datei ... "
- FILE=`basename $datei .tex`
- latex $FILE &> /dev/null
- dvips $FILE &> /dev/null
- ps2pdf $FILE.ps &> /dev/null
- rm -fr $FILE.log $FILE.aux $FILE.ps $FILE.dvi
- echo " done"
-done
diff --git a/graphics/pstricks/contrib/pst-spirograph/doc/pst-spirograph-doc.bib b/graphics/pstricks/contrib/pst-spirograph/doc/pst-spirograph-doc.bib
deleted file mode 100644
index 38c466e7d6..0000000000
--- a/graphics/pstricks/contrib/pst-spirograph/doc/pst-spirograph-doc.bib
+++ /dev/null
@@ -1,96 +0,0 @@
-%% -*-bibtex-*-
-@STRING{tugboat = {TUGboat} }
-@STRING{dtk = {{D}ie {\TeX}nische {K}om{\"o}die} }
-
-@Book{companion,
- author = {Michel Goosens and Frank Mittelbach and Sebastian Rahtz and Dennis Roegel and Herbert Vo\ss},
- title = {The {\LaTeX} {G}raphics {C}ompanion},
- publisher = {{Addison-Wesley Publishing Company}},
- edition = {second},
- year = {2007},
- address = {Boston, Mass.}
-}
-
-@Article{girou:01:,
- author = {Denis Girou},
- title = {Pr\'esentation de {PST}ricks},
- journal = {Cahier {GUT}enberg},
- year = 1994,
- volume = {16},
- month = apr,
- pages = {21-70}
-}
-
-@Article{girou:02:,
- author = {{Timothy Van} Zandt and Denis Girou},
- title = {Inside {PST}ricks},
- journal = TUGboat,
- year = 1994,
- volume = {15},
- month = sep,
- pages = {239-246}
-}
-
-@Book{PostScript,
- Author = {Kollock, Nikolai G.},
- Title = {Post{S}cript richtig eingesetzt: vom {K}onzept zum
- praktischen {E}insatz},
- Publisher = {IWT},
- Address = {Vaterstetten},
- year = 1989,
-}
-
-@Manual{multido,
- Title = {\texttt{multido.tex} - a loop macro, that supports fixed-point addition},
- Author = {{Timothy Van} Zandt},
- Organization = {},
- Address = {\url{CTAN:/macros/generic/multido.tex}},
- Note = {},
- year = 1997
-}
-
-@Book{PSTricks2,
- author = {Herbert Vo\ss{}},
- title = {\texttt{PSTricks} -- {G}rafik f\"ur \TeX{} und \LaTeX},
- edition = {6},
- publisher = {DANTE -- lehmanns media},
- year = {2010},
- address = {Heidelberg/Berlin}
-}
-
-
-@Book{PSTricksE,
- author = {Herbert Vo\ss},
- title = {\texttt{PSTricks} -- {G}raphics for \LaTeX},
- edition = {1.},
- publisher = {UIT},
- year = {2011},
- address = {Cambridge/UK}
-}
-
-@Book{LaTeXRef,
- author = {Herbert Vo\ss},
- title = {\LaTeX\ Referenz},
- edition = {2.},
- publisher = {DANTE -- lehmanns media},
- year = {2010},
- address = {Heidelberg/Hamburg}
-}
-@Book{LaTeXRefE,
- author = {Herbert Vo\ss},
- title = {\LaTeX\ Quick Reference},
- edition = {1.},
- publisher = {UIT},
- year = {2011},
- address = {Cambridge/UK}
-}
-
-@Book{tbt,
- author = {Victor Eijkhout},
- title = {\TeX\ by Topic -- {A} \TeX{}nician Reference},
- edition = {1},
- publisher = {DANTE -- lehmanns media},
- year = {2014},
- address = {Heidelberg/Berlin}
-}
-
diff --git a/graphics/pstricks/contrib/pst-spirograph/doc/pst-spirograph-doc.pdf b/graphics/pstricks/contrib/pst-spirograph/doc/pst-spirograph-doc.pdf
deleted file mode 100644
index 95c0731945..0000000000
--- a/graphics/pstricks/contrib/pst-spirograph/doc/pst-spirograph-doc.pdf
+++ /dev/null
Binary files differ
diff --git a/graphics/pstricks/contrib/pst-spirograph/doc/pst-spirograph-doc.tex b/graphics/pstricks/contrib/pst-spirograph/doc/pst-spirograph-doc.tex
deleted file mode 100644
index 9af23c3350..0000000000
--- a/graphics/pstricks/contrib/pst-spirograph/doc/pst-spirograph-doc.tex
+++ /dev/null
@@ -1,406 +0,0 @@
-%% $Id: pst-spirograph-doc.tex 81 2014-08-23 07:08:21Z herbert $
-\documentclass[11pt,english,BCOR10mm,DIV12,bibliography=totoc,parskip=false,smallheadings
- headexclude,footexclude,oneside]{pst-doc}
-\errorcontextlines=150
-\usepackage{pst-spirograph}
-\let\pstFV\fileversion
-\usepackage{pst-node,pst-plot}
-\usepackage{animate}
-
-\def\UrlFont{\small\ttfamily}
-\makeatletter
-\def\verbatim@font{\small\normalfont\ttfamily}
-\makeatother
-
-\hypersetup{pdfauthor={Manuel Luque, Herbert Voss},pdftitle={Spirograoh}}
-%
-\def\bgImage{\begin{pspicture}(-4,-4)(4,4)
-\psSpirograph[thetamax=360,Z1=36,Z2=24,m=0.15,linewidth=0.025,ap=20,
- fillstyle=solid,polarangle=150,linecolor=blue,holenumber=0,opacity=0.4]
-\end{pspicture}%
-}
-
-\lstset{basicstyle=\ttfamily\footnotesize}
-
-\addbibresource{\jobname.bib}
-
-
-\begin{document}
-\author{Manuel Luque\\Herbert Vo\ss}
-\docauthor{}
-\date{\today}
-\title{pst-spirograph \\\small v.\pstFV}
-\subtitle{A PSTricks package for drawing spirograph curves}
-\maketitle%
-
-\tableofcontents
-
-\begin{abstract}
-\vfill\noindent
-Thanks for feedback and contributions to:\\
-Uwe Ziegenhagen;
-\end{abstract}
-
-\clearpage
-
-\section{Introduction}
-
-
-\LPack{pst-spirograph} is a package to simulate the operation of a spirograph. A spirograph
-is a geometric drawing toy that produces mathematical roulette curves that are technically
-known as hypotrochoids and epitrochoids.
-The mathematician Bruno Abakanowicz invented the spirograph between 1881 and 1900.%
-\footnote{\url{http://en.wikipedia.org/wiki/Spirograph}}
-It was used to calculate an area delimited by curves.
-A hypotrochoid is generated by a fixed point on a circle rolling inside a fixed circle.%
-\footnote{\url{http://mathworld.wolfram.com/Spirograph.html}}
-It consists of a small toothed wheel rotating inside or outside a ring gear.
-The weighing tile wheel has nine drilled holes numbered from 0--8, through these small holes the tip of a
-pen or pencil can be put.
-This causes the small wheel to rotate one or more laps around the crown and draws a hypocycloid.
-
-The wheel can also turn off a first fixed gear, it is thus possible to draw epicycloids . The command is written as
-
-
-\begin{BDef}
-\Lcs{psSpirograph}\OptArgs\Largr{\CAny}\\
-\Lcs{psSpirographB}\OptArgs\Largr{\CAny}
-\end{BDef}
-
-
-and can optionally be followed by the coordinates of the point where you wish to place the
-Spirograph: \Lcs{psSpirograph}\OptArgs\Largr{x,y} which by default is centered at the origin.
-The optional parameters, including default values are indicated as following:
-
-\begin{compactenum}
-\item \LKeyset{Z1=20}: number of teeth of the wheel 1, the crown;
-\item \LKeyset{Z2=10}: number of teeth of the wheel 2;
-\item \LKeyset{m=0.5}: relative size of the gear;
-\item \LKeyset{ap=20}: pressure angle in degrees, it must be reduced if the number of teeth
- crown is large (if the path of the teeth will be incorrect), e.g. take \verb|Z1=120|;
-\item \LKeyset{holenumber=0}: active hole number;
-\item \LKeyset{polarangle=0}: polar angle in degrees to position the center of the inner/outer gear;
-of the small wheel. It is a useful parameter for an animation, then it is the starting angle..
-\item \LKeyset{thetamax=360}: the end value for the rotation of the second inside/outside gear;
-\end{compactenum}
-
-There are two Boolean values for the organisation of the two circles:
-
-\begin{compactitem}
-\item \Lkeyword{circles}: to draw circles of contact (default is \texttt{false}.
-\item \Lkeyword{inner}: the gear rotates inside of the crown (\texttt{true} --- default) or outside (\texttt{false}).
-\end{compactitem}
-
-
-In the drawing, the color selection wheel and the line of the curve is made with
-the following setting:
-
-
-\begin{compactenum}
-\item \LKeyset{color1=\{[rgb]\{0.625 0.75 1\}\}};
-\item \LKeyset{color2=\{[rgb]\{0.75 1 0.75\}\}};
-\item \Lkeyset{curvecolor=red};
-\item \LKeyset{curvewidth=1pt}: linewidth of the hypocycloid;
-\item \Lkeyset{circlescolor=red}.
-\end{compactenum}
-
-The origin of the spirograph can be set by the coordinates $(x,y)$. If the they are missing, $(0,0)$ is assumed.
-By default, the wheels are not filled with color. The color inside the wheels must be
-set by the option \Lkeyset{fillStyle=solid}.
-
-The choice of color and line thickness contour of the wheels is made with
-usual PSTricks options: \Lkeyword{linecolor} and \Lkeyword{linewidth}.
-The transparency of the small wheel is adjusted with the \Lkeyword{opacity} option of PSTricks.
-
-The last parameter is the angle \LKeyset{thetamax=360}, which represents the rotation in degrees
-the center of the small wheel around the ring, so it is a parameter to adjust,
-depending on the planned route of the hypocycloid.
-
-
-\section{Parameter}
-
-\subsection{Relative size}
-The relative size of the two gears can be set by the optional argument \Lkeyword{m},
-which can take every possible value.
-
-
-\begin{LTXexample}[pos=t]
-\psset{unit=0.75}
-\begin{pspicture}[showgrid=top,opacity=0.5](-11,-11)(11,11)
-\psframe*[linecolor=yellow!30](-11,-11)(11,11)
-\psset{thetamax=720,Z1=120,Z2=48,ap=10,linewidth=0.025,fillstyle=solid}
-\psSpirograph[inner=false,m=0.1,polarangle=200,holenumber=0,linecolor=blue,curvecolor=blue]
-\psSpirograph[m=0.1,polarangle=200,holenumber=0,linecolor=red]
-\end{pspicture}
-\end{LTXexample}
-
-
-
-
-
-\subsection{Pencil position}
-
-\noindent\begin{tabularx}{\linewidth}{@{} XX @{}}
-The holes (\Lkeyword{holenumber}) for the pencil are ordered from outside into the center of the gear with different
-polar coordinates (radius and angle) . They are numbered from 0 to 8 and the position cannot be changed. Every given number greater
-than 8 will be reset internally to 8.
-&
-\begin{pspicture}[shift=-6cm](-3.5,-3.5)(3.5,3.5)
- \pscircle*[linecolor=red!30](0,0){3}
- \psaxes[axesstyle=polar,labels=none](3,360)
- \multido{\iA=0+60,\iB=8+-1}{9}{%
- \pnode(!0.35 \iA\space DegtoRad mul \iA\space cos mul neg
- 0.35 \iA\space DegtoRad mul \iA\space sin mul){N\iB}%
- \psdot(N\iB)\uput[0](N\iB){\iB}}
- \pscurve{->}(N0)(N1)(N2)(N3)(N4)(N5)(N6)(N7)(N8)
-\end{pspicture}
-\end{tabularx}
-
-
-\begin{LTXexample}[pos=t,wide]
-\psset{unit=0.8cm}
-\begin{pspicture}[showgrid=top,opacity=0.5](-7,-7)(7,7)
-\psframe*[linecolor=yellow!30](-7,-7)(7,7)
-\psset{thetamax=720,Z1=120,Z2=48,m=0.1,ap=10,linewidth=0.025,curvewidth=1.1pt}
-\psSpirograph[holenumber=0]
-\psSpirograph[holenumber=1,curvecolor=blue] \psSpirograph[holenumber=2,curvecolor=green]
-\psSpirograph[holenumber=3,curvecolor=cyan] \psSpirograph[holenumber=4,curvecolor=magenta]
-\psSpirograph[holenumber=6,curvecolor=black] \psSpirograph[holenumber=5,curvecolor=black!50]
-\psSpirograph[holenumber=7,curvecolor=blue!50]\psSpirograph[holenumber=8,curvecolor=red!50]
-\end{pspicture}
-\end{LTXexample}
-
-
-\clearpage
-\subsection{Pressure Angle}
-
-This value defines the look of a ``teeth''. Values greater than 30 make no real sense.
-
-\psset{unit=1cm}
-\begin{LTXexample}[pos=t]
-\begin{pspicture}[showgrid=top,opacity=0.5](-7,-3)(7,3)
-\psset{unit=0.4,linewidth=0.025,fillstyle=solid,polarangle=90}
-\psSpirograph[ap=0](-12,0)
-\psSpirograph[ap=20, holenumber=4](0,0)
-\psSpirograph[ap=30, holenumber=8](12,0)
-\end{pspicture}
-\end{LTXexample}
-
-\clearpage
-
-
-\section{Examples}
-
-\psset{unit=1cm}
-\begin{LTXexample}[pos=t]
-\begin{pspicture}[showgrid=top](-7,-7)(7,7)
-\psframe*[linecolor=yellow!30](-7,-7)(7,7)
-\psSpirograph[thetamax=720,Z1=120,Z2=48,m=0.1,ap=10,linewidth=0.025,
- fillstyle=solid,polarangle=200,holenumber=0,opacity=0.3]
-\psSpirograph[thetamax=720,Z1=120,Z2=48,m=0.1,ap=10,linewidth=0.025,
- fillstyle=solid,polarangle=340,holenumber=3,opacity=0.3,curvecolor=blue]
-\psSpirograph[thetamax=720,Z1=120,Z2=48,m=0.1,ap=10,linewidth=0.025,
- fillstyle=solid,polarangle=90,holenumber=6,opacity=0.3,curvecolor=green]
-\end{pspicture}
-\end{LTXexample}
-
-\begin{LTXexample}[pos=t]
-\begin{pspicture}[showgrid=top](-7,-7)(7,7)
-\psframe*[linecolor=yellow!30](-7,-7)(7,7)
-\psSpirograph[thetamax=720,Z1=120,Z2=48,m=0.1,ap=10,linewidth=0.025,
- fillstyle=solid,polarangle=200,holenumber=3,opacity=0.75]
-\end{pspicture}
-\end{LTXexample}
-
-
-
-\begin{LTXexample}[pos=t]
-\begin{pspicture}[showgrid=top](-7,-7)(7,7)
-\psframe*[linecolor=gray!20](-7,-7)(7,7)
-\psSpirograph[thetamax=720,Z1=36,Z2=24,m=0.15,linewidth=0.025,ap=20,inner=false,
- fillstyle=solid,polarangle=150,linecolor=blue,holenumber=0,opacity=0.8]
-\end{pspicture}
-\end{LTXexample}
-
-\begin{LTXexample}[pos=t]
-\begin{pspicture}[showgrid=top](-7,-7)(7,7)
-\psframe*[linecolor=yellow!30](-7,-7)(7,7)
-\psSpirograph[thetamax=1440,Z1=27,Z2=12,m=0.4,linewidth=0.025,
- curvecolor={[rgb]{0 0.25 0.5}},circles,fillstyle=solid,polarangle=30,
- linecolor=blue,holenumber=0,opacity=0.75]
-\end{pspicture}
-\end{LTXexample}
-
-
-\begin{LTXexample}[pos=t]
-\begin{pspicture}[showgrid=top](-7,-7)(7,7)
-\psframe*[linecolor=yellow!30](-7,-7)(7,7)
-\psset{unit=0.5}
-\psSpirograph[thetamax=-1800,Z1=108,Z2=15,m=0.2,linewidth=0.025,ap=10,
- fillstyle=solid,polarangle=54,linecolor=blue,holenumber=0,opacity=0.75]
-\end{pspicture}
-\end{LTXexample}
-
-
-
-\begin{LTXexample}[pos=t]
-\begin{pspicture}[showgrid=top](-7,-7)(7,7)
-\psframe*[linecolor=gray!20](-7,-7)(7,7)
-\psSpirograph[thetamax=1800,Z1=36,Z2=30,m=0.15,linewidth=0.025,ap=20,inner=false,
- fillstyle=solid,polarangle=150,linecolor=blue,holenumber=4,opacity=0.8]
-\end{pspicture}
-\end{LTXexample}
-
-\clearpage
-\section{Animations}
-
-\begin{sloppypar}
-With package \LPack{animate} one can easily create animations. You get a better result with
-\verb:\multiframe{360}{iA=0+4}{...}: but that increases the file size of the PDF. To save diskspace the following
-examples use a bigger angle step than useful for a single animation.
-\end{sloppypar}
-
-
-
-%\psset{unit=0.75cm}
-\begin{LTXexample}[pos=t]
-\begin{animateinline}[
- width=0.9\linewidth,
- begin={\begin{pspicture}(-4,-4)(4,4)},
- end={\end{pspicture}},
- palindrome,controls,
-% autoplay
-]{5}
-\multiframe{80}{iA=0+10}{%
- \psSpirograph[thetamax=\iA,Z1=59,Z2=24,m=0.1,ap=10,curvewidth=1.1pt,
- linewidth=0.025,fillstyle=solid,polarangle=\iA,holenumber=5,opacity=0.5](0,0)}
-\end{animateinline}
-\end{LTXexample}
-
-
-\iffalse
-\psset{linewidth=0.1pt}
-\begin{LTXexample}[pos=t]
-\psset{unit=0.3cm}
-\begin{animateinline}[
- width=0.9\linewidth, begin={\begin{pspicture}(-11,-11)(11,11)}, end={\end{pspicture}}, palindrome,controls,]{5}
-\multiframe{109}{i=0+10}{%
-\psgrid[style=gridstyleA](-10,-10)(10,10)%
-\ifnum\i=109 \psset{gearwheels=false}\fi
-\psSpirograph[Z1=24,Z2=16,m=0.5,ap=22,TypeA=false,linewidth=0.2pt,fillstyle=solid,opacity=0.5,
- polarangle=\i,circles=false,thetamax=\i,curvecolor=blue,curvewidth=2pt,HolePos=1.1,color1=magenta]}
-\end{animateinline}
-\end{LTXexample}
-
-
-\begin{LTXexample}[pos=t]
-\psset{unit=0.5cm}
-\begin{animateinline}[
- width=0.9\linewidth,begin={\begin{pspicture}(-10,-10)(10,10)},end={\end{pspicture}},palindrome,controls]{5}
-\multiframe{721}{i=0+2}{%
-\psgrid[subgriddiv=0,gridcolor=red,unit=1.5](-10,-10)(10,10)%
-\ifnum\i=721 \psset{gearwheels=false}\fi
-\psSpirograph[Z1=24,Z2=18,m=0.5,ap=22,linewidth=0.025,TypeA=false,fillstyle=solid,opacity=0.5,polarangle=\i,circles=false,
- thetamax=\i,curvecolor=blue,curvewidth=2pt,HolePos=1.75,color1=magenta]}
-\end{animateinline}
-\end{LTXexample}
-\fi
-
-
-
-\begin{LTXexample}[pos=t]
-\psset{unit=0.6cm}
-\begin{animateinline}[
- width=0.9\linewidth,begin={\begin{pspicture}(-14,-14)(14,14)},end={\end{pspicture}},palindrome,controls]{5}
-\multiframe{181}{i=0+10}{%
- \psgrid[style=gridstyleA,unit=1.4](-10,-10)(10,10)%
- \ifnum\i=181 \psset{gearwheels=false}\fi
- \psSpirograph[Z1=50,Z2=20,m=0.2,linewidth=0.025,fillstyle=solid,opacity=0.75,polarangle=\i,circles,TypeA=false,
- thetamax=\i,curvecolor=red,curvewidth=2pt,HolePos=1.5]}
-\end{animateinline}
-\end{LTXexample}
-
-
-\iffalse
-\begin{LTXexample}[pos=t]
-\psset{unit=0.4cm}
-\begin{animateinline}[
- width=0.9\linewidth,begin={\begin{pspicture}(-18,-18)(18,18)},end={\end{pspicture}},palindrome,controls]{5}
-\multiframe{181}{i=0+10}{%
-\psgrid[style=gridstyleA]%
-\ifnum\i=181 \psset{gearwheels=false}\fi
-\psSpirograph[Z1=60,Z2=24,m=0.2,linewidth=0.025,TypeA=false,
- linecolor=blue,fillstyle=solid,opacity=0.75,polarangle=\i,circles=false,thetamax=\i,curvecolor=red,curvewidth=2pt,HolePos=1.7]}
-\end{animateinline}
-\end{LTXexample}
-
-
-
-\begin{LTXexample}[pos=t]
-\psset{unit=0.25cm}
-\begin{animateinline}[
- width=0.9\linewidth,begin={\begin{pspicture}(-20,-20)(20,20)},end={\end{pspicture}},palindrome,controls]{5}
-\multiframe{324}{i=0+10}{%
-\psgrid[subgriddiv=0,gridcolor=black!20,unit=2](-10,-10)(10,10)%
-\ifnum\i=324 \psset{gearwheels=false}\fi
-\psSpirograph[Z1=72,Z2=16,m=0.2,ap=10,TypeA=false,linewidth=0.02,linecolor={[rgb]{0.5 0 0 }},fillstyle=solid,
- opacity=0.75,polarangle=\i,circles=false,thetamax=\i,curvecolor=blue,curvewidth=3pt,
- HolePos=0.5,color1=cyan!10,color2=cyan!10,strokeopacity=0.5]%
-%\psSpirograph[Z1=72,Z2=16,m=0.2,ap=10,TypeA=false,linewidth=0.02,linecolor={[rgb]{0.5 0 0 }},fillstyle=solid,
-% opacity=0.75,polarangle=\i,circles=false,thetamax=\i,curvecolor=green,curvewidth=3pt,
-% HolePos=1.5,color1=cyan!10,color2=cyan!10,strokeopacity=0.5]
-}
-\end{animateinline}
-\end{LTXexample}
-\fi
-
-
-\clearpage
-
-\section{Connect the two gears with a rubberband}
-
-This is an adaptation with PSTricks of an idea of Alejandro Teutli which he realized with Mathematica:
-\url{https://demonstrations.wolfram.com/ParametricMovementOfARubberBand/} which is a variation of a spirograph.
-A rubber band is fixed by its ends on two gears. A pencil tied in the middle of the elastic rubberband draws the curve obtained when the gears are
-rotating. The optional argument \Lkeyword{RubberBand} must be used, if you want such a spirograph. It is only available
-in 3D.
-
-
-\begin{LTXexample}[pos=t]
-\begin{animateinline}[
- width=0.9\linewidth,
- begin={\begin{pspicture}(-6,-3)(8,6)\psframe*[linecolor=yellow,opacity=0.4](-6,-3)(8,6)},
- end={\end{pspicture}},
- palindrome,controls,
-% autoplay
-]{5}
-\multiframe{181}{iA=0+4}{%
-\psSpirograph[RubberBand,Z1=20,Z2=40,m=0.2,viewpoint=2 -5 3,arrowinset=0,arrowsize=0.2,wheelrotation=\iA,
- linewidth=0.025,color1=yellow,color2=blue!50]}
-\end{animateinline}
-\end{LTXexample}
-
-
-
-
-%There are some more examples in the documention directory of the package.
-
-\clearpage
-
-\section{List of all optional arguments for \texttt{pst-spirograph}}
-
-\xkvview{family=pst-spirograph,columns={key,type,default}}
-
-
-\bgroup
-\nocite{*}
-\raggedright
-\printbibliography
-\egroup
-
-\printindex
-
-
-
-\end{document}
-
diff --git a/graphics/pstricks/contrib/pst-spirograph/dvips/pst-spirograph.pro b/graphics/pstricks/contrib/pst-spirograph/dvips/pst-spirograph.pro
deleted file mode 100644
index 59f31ba302..0000000000
--- a/graphics/pstricks/contrib/pst-spirograph/dvips/pst-spirograph.pro
+++ /dev/null
@@ -1,414 +0,0 @@
-%% $Id: pst-spirograph.pro 1160 2020-03-14 14:08:31Z herbert $
-%%
-% PostScript prologue for pst-spirograph.tex.
-%
-% Version 0.51, 2020/03/14
-%
-/tx@spirographDict 50 dict def
-tx@spirographDict begin
-/coorPen {
- 1 dict begin
- /t exch def
- r2 qi t cos mul ki qi t mul 60 ni mul sub cos mul add mul cm
- r2 qi t sin mul ki qi t mul 60 ni mul sub sin mul sub mul cm
- end
-} def
-/coorPen2 {
- 1 dict begin
- /t exch def
- r2 qi2 t cos mul ki qi2 t mul 60 ni mul neg 180 Z2 div sub sub cos mul sub mul cm
- r2 qi2 t sin mul ki qi2 t mul 60 ni mul neg 180 Z2 div sub sub sin mul sub mul cm
- end
-} def
-/Datas1 {
- /Z@ exch def
- /m@ exch def
- /R@ { m@ Z@ mul 2 div } bind def % cercle primitif
- /Rb { R@ ap cos mul } bind def % cercle de base
- /Rp { R@ 2 mul 2.5 m@ mul sub 2 div } bind def % cercle de pied
- /Rt { R@ 2 mul 2 m@ mul add 2 div } bind def % cercle de tète
-} def
-/Datas2 {
- /Z@ exch def
- /m@ exch def
- /R@ { m@ Z@ mul 2 div } bind def % cercle primitif
- /Rb { R@ ap cos mul } bind def % cercle de base
- /Rp { R@ 2 mul 2 m@ mul sub 2 div } bind def % cercle de pied
- /Rt { R@ 2 mul 2.5 m@ mul add 2 div } bind def % cercle de tète
-} def
-/Calculs { % les valeurs suivantes sont en radians
- /ThetaP {R@ Rb div dup mul 1 sub sqrt } bind def % intersection avec cercle primitif
- /ThetaT {Rt Rb div dup mul 1 sub sqrt } bind def % intersection avec cercle de tete
- % Les valeurs suivantes ont en degrés
- /ThetaTdeg {Rt Rb div dup mul 1 sub sqrt RadtoDeg } bind def %
- /ThetaPdeg {R@ Rb div dup mul 1 sub sqrt RadtoDeg } bind def
- /DeltaP {ThetaPdeg sin ThetaP ThetaPdeg cos mul sub
- ThetaPdeg cos ThetaP ThetaPdeg sin mul add atan } bind def
- /DeltaT {ThetaTdeg sin ThetaT ThetaTdeg cos mul sub
- ThetaTdeg cos ThetaT ThetaTdeg sin mul add atan } bind def
- /DeltaS {Pi 2 div Z@ div } bind def
- /DeltaSdeg {90 Z@ div } bind def
- /AngleDent {360 Z@ div} bind def
- /Alpha {DeltaSdeg DeltaP add DeltaT sub } bind def
- /2Beta {DeltaSdeg DeltaP add 2 mul } bind def
- /Beta_ {DeltaSdeg DeltaP add neg} bind def
- /ptA { Rp cm 0} bind def
- /ptB { Rb cm 0} bind def
- /ptC { Rp cm DeltaSdeg 2 mul neg 2Beta 2 div add cos mul
- Rp cm DeltaSdeg 2 mul neg 2Beta 2 div add sin mul} bind def
- /ptA'{ Rp cm DeltaP DeltaSdeg add 2 mul cos mul
- Rp cm DeltaP DeltaSdeg add 2 mul sin mul} bind def
- /ptB'{ Rb cm DeltaP DeltaSdeg add 2 mul cos mul
- Rb cm DeltaP DeltaSdeg add 2 mul sin mul} bind def
- /ptC'{ Rp cm DeltaSdeg 3 mul DeltaP add cos mul
- Rp cm DeltaSdeg 3 mul DeltaP add sin mul} bind def
- /Raxe { Rp 4 div } bind def
- /A@0 14.5 def % position et largeur de la clavette
- % rayon de raccordement sur le cercle de pied
- /Rarct {Rp Pi mul Z@ div 12 div cm} bind def
-} def
-% Le symetrique P' de P par rapport a la l'axe de la dent
-% Delta(axe de la dent) y=x*tan(Beta)
-% x'=y*sin(2*Beta)+x*cos(2*Beta)
-% y'=x*sin(2*Beta)-y*cos(2*Beta)
-% x y symAxe -> x' y'
-/symAxe {
- 2 dict begin
- /y exch def
- /x exch def
- y 2Beta sin mul x 2Beta cos mul add % x'
- x 2Beta sin mul y 2Beta cos mul sub % y'
- end
-} def
- %
-% Rotation pour amener l'axe de la dent horizontal
-%
-/RotDent {
- 2 dict begin
- /y exch def
- /x exch def
- i@ cos x mul i@ sin y mul sub
- i@ sin x mul i@ cos y mul add
- end
-} def
-% developpante du cercle de base
-%
-/Circles {
- gsave
- setlinedash
- newpath
- 0 0 R@ cm 0 360 arc
- closepath
- circlescolor
- stroke
- % on ne dessine pas le cercle de base
- %newpath
- %0 0 Rb cm 0 360 arc
- %closepath
- %stroke
- grestore
-} def
-%
-% trace des cercles
-/devCercle {
- 1 dict begin
- /t exch def % en degres
- Rb t cos t DegtoRad t sin mul add mul cm % x
- Rb t sin t DegtoRad t cos mul sub mul cm % y
- end
-} def
-%%
-%%%% definition de la roue dentee %%%%%%
-/Roue {
- % arc de développante
- /tabArcDev [ 0 1 ThetaTdeg { /i@ exch def [i@ devCercle] } for ] def
- /n@ tabArcDev length def
-% l'arc de developpante initial
- /tabDent [ tabArcDev aload pop
-% l'arc ce cercle de tete
- DeltaT 0.1 2Beta DeltaT sub {/i@ exch def
- [Rt cm i@ cos mul Rt cm i@ sin mul] } for
-% le symetrique de l'arc de developpante par rapport a l'axe de la dent
- n@ 1 sub -1 0 { /compteur exch def [tabArcDev compteur get aload pop symAxe] } for ] def
-% trace de la dent
- /n2@ tabDent length def
- newpath
- ptC moveto
- 0 1 Z@ 1 sub {
- /i@ exch AngleDent mul def
- ifinner {
- wheel 2 eq { ptA RotDent ptB RotDent Rarct arct ptB RotDent lineto }
- { ptA RotDent lineto ptB RotDent lineto } ifelse
- }{
- Rp Rb eq { ptA RotDent lineto ptB RotDent lineto }
- { ptA RotDent ptB RotDent Rarct arct ptB RotDent lineto } ifelse
- } ifelse
- 0 1 n2@ 1 sub {
- /compteur exch def
- tabDent compteur get aload pop
- RotDent lineto
- } for
- ifinner {
- wheel 2 eq {
- Rp Rb eq
- { ptA' RotDent lineto ptC' RotDent lineto }
- { ptA' RotDent ptC' RotDent Rarct arct ptC' RotDent lineto } ifelse
- }{ ptA' RotDent lineto ptC' RotDent lineto } ifelse
- }{
- Rp Rb eq
- { ptA' RotDent lineto ptC' RotDent lineto }
- { ptA' RotDent ptC' RotDent Rarct arct ptC' RotDent lineto } ifelse
- } ifelse
- } for
-} def
-%
-% pour l'engrenage interieur
-/COURONNE { 0 0 Rt 1.1 mul cm 360 0 arcn } def
-%
-/trous {
- 1 dict begin
- /a@ { R@ cm 3 div Pi div } bind def
- gsave
- positionAngular rotate
- 0 60 540 {
- /THETA exch def
- untrou
- 1 setgray iffill { Fill } if
- untrou
- linecolor
- stroke
- } for
- grestore
- end
-} def
-%
-/untrou {
- newpath
- a@ THETA DegtoRad mul THETA cos mul neg
- a@ THETA DegtoRad mul THETA sin mul
- 0.05 cm 0 360 arc
- closepath
-} def
-%
-%%%%%%%%%% Roue No 1 %%%%%%%%%%%%%%%%%
-/Roue1 {
- 1 dict begin
- /wheel 1 def
- gsave
- t@@x t@@y translate
- m1 Z1
- ifinner {
- Datas2
- Calculs
- Beta_ rotate
- Roue
- COURONNE
- closepath
- iffill { color1 Fill } if
- Roue
- closepath
- linecolor
- stroke
- COURONNE
- closepath
- linecolor
- stroke
- ifcircles { Circles } if
- }{
- Datas1
- Calculs
- Beta_ rotate
- Roue
- closepath
- iffill { color1 Fill } if
- Roue
- closepath
- linecolor
- stroke
- ifcircles { Circles } if
- } ifelse
- grestore
- % dessin de l'hypocycloide ou de l'epicycloide
- gsave
- t@@x t@@y translate
- ifinner {
- tabSpirograph 0 get aload pop moveto
- 1 1 nPts {
- /nP exch def
- tabSpirograph nP get aload pop lineto
- } for
- }{
- tabSpirograph2 0 get aload pop moveto
- 1 1 nPts2 {
- /nP exch def
- tabSpirograph2 nP get aload pop lineto
- } for
- } ifelse
- curvecolor
- SetCurveWidth
- stroke
- grestore
- end
-} def
-%%%%%%%%%% Roue No 2 %%%%%%%%%%%%%%%%%
-/Roue2 {
- 5 dict begin
- /wheel 2 def
- gsave
- m2 Z2 Datas1
- Calculs
- /a@ex m2 Z1 Z2 add mul 2 div cm def % entraxe engrenage exterieur
- /a@in m2 Z1 Z2 sub mul 2 div cm def % entraxe engrenage interieur
- /a@ {R@ cm 3 div 3.14159 div} bind def
- ifinner{
- a@in polarAngle cos mul t@@x add a@in polarAngle sin mul t@@y add translate
- Beta_ polarAngle Z1 Z2 sub Z2 div mul sub rotate
- /positionAngular 2Beta 2 div def
- }{
- a@ex polarAngle cos mul t@@x add a@ex polarAngle sin mul t@@y add translate
- DeltaSdeg DeltaP add neg 180 Z2 div add 180 add polarAngle Z1 Z2 add Z2 div mul add rotate
- /positionAngular Beta_ neg def
- } ifelse
- Roue
- closepath
- iffill { color2 Fill } if
- Roue
- closepath
- linecolor
- stroke
- trous
- ifcircles { Circles } if
- grestore
- gsave
- newpath
- ifinner {
- a@in polarAngle cos mul t@@x add a@in polarAngle sin mul t@@y add translate
- Beta_ polarAngle Z1 Z2 sub Z2 div mul sub rotate
- /THETA 540 ni 60 mul sub def
- positionAngular rotate
- a@ THETA DegtoRad mul THETA cos mul neg
- a@ THETA DegtoRad mul THETA sin mul
- 0.12 cm 0 360 arc
- }{
- a@ex polarAngle cos mul t@@x add a@ex polarAngle sin mul t@@y add translate
- DeltaSdeg DeltaP add neg 180 Z2 div add 180 add polarAngle Z1 Z2 add Z2 div mul add rotate
- /a@ {R@ cm 3 div 3.14159 div} bind def
- /THETA 540 ni 60 mul sub def
- positionAngular rotate
- a@ THETA DegtoRad mul THETA cos mul neg
- a@ THETA DegtoRad mul THETA sin mul
- 0.12 cm 0 360 arc
- } ifelse
- closepath
- curvecolor
- fill
- grestore
- end
-} def
- /Roue3 {
- % arc de développante
- /tabArcDev [ 0 1 ThetaTdeg { /i@ exch def [i@ devCercle] } for ] def
- /n@ tabArcDev length def
- /tabDent [
- % l'arc de developpante initial
- tabArcDev aload pop
- % l'arc ce cercle de tete
- DeltaT 0.1 2Beta DeltaT sub {/i@ exch def [Rt cm i@ cos mul Rt cm i@ sin mul] } for
- % le symetrique de l'arc de developpante par rapport a l'axe de la dent
- n@ 1 sub -1 0 { /compteur exch def [tabArcDev compteur get aload pop symAxe] } for
- ] def
- % tracé de la dent
- /n2@ tabDent length def
- newpath
- ptC moveto
- 0 1 Z@ 1 sub { /i@ exch AngleDent mul def
- wheel 2 eq { ptA RotDent ptB RotDent Rarct arct ptB RotDent lineto }
- { ptA RotDent lineto ptB RotDent lineto } ifelse
- 0 1 n2@ 1 sub { /compteur exch def tabDent compteur get aload pop RotDent lineto } for
- wheel 2 eq {
- Rp Rb eq { ptA' RotDent lineto ptC' RotDent lineto }
- { ptA' RotDent ptC' RotDent Rarct arct ptC' RotDent lineto } ifelse
- } { ptA' RotDent lineto ptC' RotDent lineto } ifelse
- } for
- } def
- %%%% fin de la definition de la roue dentee %%%
- /plaquette {
- Beta_ neg rotate
- /alpha1 1 R1 2 mul atan 2 div def
- /alpha2 1 R1 2 mul 2 m1 mul sub 2 div atan 2 div def
- /xR1 R1 2 mul cm def
- /yR1 0.5 cm def
- /xR2 R1 2 mul cm def
- /yR2 -0.5 cm def
- /xR3 R1 2 mul 2 m1 mul sub 2 div R1 2 div sub cm def
- /yR3 -0.5 cm def
- /xR4 R1 2 mul 2 m1 mul sub 2 div R1 2 div sub cm def
- /yR4 0.5 cm def
- newpath
- xR1 yR1 moveto
- xR2 yR2 lineto
- xR3 yR3 lineto
- xR4 yR4 lineto
- closepath
- iffill { color1 Fill } if
- newpath
- xR1 yR1 moveto
- xR2 yR2 lineto
- xR3 yR3 lineto
- xR4 yR4 lineto
- closepath
- linecolor
- stroke
- } def
- /drawHole {
- R1 cm HolePos mul 0 GetCurveWidth 1.5 mul 0 360 arc
- curvecolor
- fill
- 0 setgray
- R1 cm HolePos mul 0 GetCurveWidth 1.5 mul 0 360 arc
- stroke
- } def
- %% calculs des points de la courbe
- /coorPen3 {
- 4 dict begin
- /t exch def
- % r2 qi t cos mul ki qi t mul 60 ni mul sub cos mul add mul cm
- % r2 qi t sin mul ki qi t mul 60 ni mul sub sin mul sub mul cm
- /beta t R1 R2 sub R1 div mul def
- /xC R1 R2 sub t cos mul def
- /yC R1 R2 sub t sin mul def
- R1 HolePos mul beta cos mul xC add cm
- R1 HolePos mul beta sin mul yC add cm
- end
- } def
- /AXE {
- %newpath
- Raxe 4 div cm
- A@0 cos Raxe mul cm moveto
- 0 0 Raxe cm 90 A@0 sub 90 A@0 add arcn
- Raxe 4 div cm neg
- A@0 cos Raxe mul cm
- lineto
- Raxe 4 div cm neg
- Raxe A@0 cos 0.2 add mul cm
- lineto
- Raxe 4 div cm
- Raxe A@0 cos 0.2 add mul cm
- lineto
- } def
- %%% clavette %%%
- /CLAVETTE {
- newpath
- Raxe 4 div cm
- A@0 cos 0.2 sub Raxe mul cm moveto
- Raxe 4 div cm
- Raxe A@0 cos 0.2 add mul cm lineto
- Raxe 4 div cm neg
- Raxe A@0 cos 0.2 add mul cm lineto
- Raxe 4 div cm neg
- A@0 cos 0.2 sub Raxe mul cm lineto
- closepath
- } def
-%
-end
-%% \ No newline at end of file
diff --git a/graphics/pstricks/contrib/pst-spirograph/latex/pst-spirograph.sty b/graphics/pstricks/contrib/pst-spirograph/latex/pst-spirograph.sty
deleted file mode 100644
index bb2633416c..0000000000
--- a/graphics/pstricks/contrib/pst-spirograph/latex/pst-spirograph.sty
+++ /dev/null
@@ -1,30 +0,0 @@
-% $Id: pst-spirograph.sty 80 2014-08-23 05:50:14Z herbert $
-%%
-%% This is file `pst-spirograph.sty'.
-%%
-%% IMPORTANT NOTICE:
-%%
-%% pst-spirograph.sty Copyright (C) 2020-
-%% Manuel Luque
-%% Herbert Voß <hvoss@tug.org>
-%%
-%% This package may be distributed under the terms of the LaTeX Project
-%% Public License, as described in lppl.txt in the base LaTeX distribution.
-%% Either version 1.0 or, at your option, any later version.
-%%
-\NeedsTeXFormat{LaTeX2e}
-
-\ProvidesPackage{pst-spirograph}
- [2020/03/14 v0.51 LaTeX wrapper for `pst-spirograph' (hv)]
-%
-\RequirePackage{pstricks,pst-plot,pst-3d,pst-node,pst-calculate}
-\let\psCalc\pscalculate
-\ProvidesPackage{pst-spirograph}[2020/03/11 package wrapper for pst-spirograph.tex]
-\input{pst-spirograph.tex}
-\ProvidesFile{pst-spirograph.tex}
- [\filedate\space \fileversion\space `pst-spirograph' (ml,hv)]
-\IfFileExists{pst-spirograph.pro}{%
- \ProvidesFile{pst-spirograph.pro}
- [2020/03/14 v. 0.51, PostScript prologue file (hv)]
- \@addtofilelist{pst-spirograph.pro}}{}%
-\endinput
diff --git a/graphics/pstricks/contrib/pst-spirograph/tex/pst-spirograph.tex b/graphics/pstricks/contrib/pst-spirograph/tex/pst-spirograph.tex
deleted file mode 100644
index cb946557bf..0000000000
--- a/graphics/pstricks/contrib/pst-spirograph/tex/pst-spirograph.tex
+++ /dev/null
@@ -1,465 +0,0 @@
-%% $Id: pst-spirograph.tex 80 2014-08-23 05:50:14Z herbert $
-%%
-%% This is file `pst-spirograph.tex',
-%%
-%% IMPORTANT NOTICE:
-%%
-%% Package `pst-spirograph.tex'
-%%
-%% COPYRIGHT 2020- by
-%% Manuel Luque <manuel.luque27@gmail.com>
-%% Herbert Voss <hvoss@tug.org>
-%%
-%% This program can be redistributed and/or modified under the terms
-%% of the LaTeX Project Public License Distributed from CTAN archives
-%% in directory CTAN:/macros/latex/base/lppl.txt.
-%%
-%% DESCRIPTION:
-%% `pst-spirograph' is a PSTricks package to show spirograph curves
-%%
-%%
-\csname PSTSPIROGRAPHLoaded\endcsname
-\let\PSTSPIROGRAPHLoaded\endinput
-% Requires some packages
-\ifx\PSTricksLoaded\endinput \else \input pstricks \fi
-\ifx\PSTXKeyLoaded\endinput \else \input pst-xkey \fi
-\ifx\PSTthreeDLoaded\endinput\else \input pst-3d \fi
-\ifx\PSTnodesLoaded\endinput \else \input pst-node \fi
-\ifx\PSTplotLoaded\endinput \else \input pst-plot \fi
-
-\def\fileversion{0.51}
-\def\filedate{2020/03/14}
-\message{`PSTSPIROGRAPH' v\fileversion, \filedate\ (ml,hv)}
-
-\edef\PstAtCode{\the\catcode`\@}
-\catcode`\@=11\relax
-\pst@addfams{pst-spirograph}
-\pstheader{pst-spirograph.pro}
-\define@key[psset]{pst-spirograph}{Z1}[20]{\def\psk@ZA{#1 }}
-\psset[pst-spirograph]{Z1=20}
-\define@key[psset]{pst-spirograph}{Z2}[10]{\def\psk@ZB{#1 }}
-\psset[pst-spirograph]{Z2=10}
-\define@key[psset]{pst-spirograph}{m}[0.5]{\def\psk@m{#1 }}
-\psset[pst-spirograph]{m=0.5}
-\define@key[psset]{pst-spirograph}{ap}[20]{\def\psk@ap{#1 }}
-\psset[pst-spirograph]{ap=20}
-\define@key[psset]{pst-spirograph}{polarangle}[0]{\def\psk@polarangle{#1 }}
-\psset[pst-spirograph]{polarangle=0}
-\define@key[psset]{pst-spirograph}{holenumber}[1]{\def\psk@holenumber{#1 }}
-\psset[pst-spirograph]{holenumber=1}
-\define@key[psset]{pst-spirograph}{thetamax}[360]{\def\psk@thetamax{#1 }}
-\psset[pst-spirograph]{thetamax=360}
-
-\define@key[psset]{pst-spirograph}{Rarct}{\def\psk@Rarct{#1 }}
-\psset[pst-spirograph]{Rarct=0.1}
-\define@key[psset]{pst-spirograph}{wheelrotation}{\def\psk@wheelrotation{#1 }}
-\psset[pst-spirograph]{wheelrotation=0}
-
-\define@boolkey[psset]{pst-spirograph}[Pst@spirograph@]{int}[true]{}
-\psset[pst-spirograph]{int=false}
-
-\define@boolkey[psset]{pst-spirograph}[Pst@spirograph@]{notdrawWheel}[true]{}
-\psset[pst-spirograph]{notdrawWheel=false}
-
-%
-\define@key[psset]{pst-spirograph}{color1}[{[rgb]{0.625 0.75 1}}]{\pst@getcolor{#1}\pscolora}
-\psset[pst-spirograph]{color1={[rgb]{0.625 0.75 1}}}
-\define@key[psset]{pst-spirograph}{color2}[{[rgb]{0.75 1 0.75}}]{\pst@getcolor{#1}\pscolorb}
-\psset[pst-spirograph]{color2={[rgb]{0.75 1 0.75}}}
-\define@key[psset]{pst-spirograph}{circlescolor}[red]{\pst@getcolor{#1}\pscolorc}
-\psset[pst-spirograph]{circlescolor=red}
-\define@key[psset]{pst-spirograph}{curvecolor}[red]{\pst@getcolor{#1}\pscolord}
-\psset[pst-spirograph]{curvecolor=red}
-%
-\newdimen\pscurvewidth
-\define@key[psset]{pst-spirograph}{curvewidth}[1pt]{\pssetlength\pscurvewidth{#1}}
-\psset[pst-spirograph]{curvewidth=1pt}
-%% === Option pour dessiner le type d'engrenage ---------------------
-\define@boolkey[psset]{pst-spirograph}[Pst@spirograph@]{inner}[true]{}
-\psset[pst-spirograph]{inner}
-%% === pour dessiner cercle de base et cercle primitif
-\define@boolkey[psset]{pst-spirograph}[Pst@spirograph@]{circles}[true]{}
-\psset[pst-spirograph]{circles=false}
-
-%% hole position
-\define@key[psset]{pst-spirograph}{HolePos}{\def\psk@HolePos{#1 }}
-\psset[pst-spirograph]{HolePos=1.5} % 1<HolePos<2
-
-\define@boolkey[psset]{pst-spirograph}[Pst@spirograph@]{gearwheels}[true]{}
-\psset[pst-spirograph]{gearwheels}
-
-\define@boolkey[psset]{pst-spirograph}[Pst@spirograph@]{TypeA}[true]{}
-\psset[pst-spirograph]{TypeA}
-
-\define@boolkey[psset]{pst-spirograph}[Pst@spirograph@]{RubberBand}[true]{}
-\psset[pst-spirograph]{RubberBand=false}
-
-\define@key[psset]{pst-spirograph}{theta1}{\def\psk@thetaA{#1}}
-\define@key[psset]{pst-spirograph}{theta2}{\def\psk@thetaB{#1}}
-\psset[pst-spirograph]{theta1=-90,theta2=90}
-
-\def\psSpirograph{\def\pst@par{}\pst@object{psSpirograph}}
-\def\psSpirograph@i{\@ifnextchar({\psSpirograph@ii}{\psSpirograph@ii(0,0)}}
-\def\psSpirograph@ii(#1){%
- \begin@SpecialObj
- \ifPst@spirograph@RubberBand \psSpirograph@iv(#1)\else\psSpirograph@iii(#1)\fi
-}
-\def\psSpirograph@iii(#1){%
- \pst@@getcoor{#1}%
- \addto@pscode{
- tx@spirographDict begin
- \pst@coor /t@@y ED /t@@x ED
- 1 setlinejoin
- /cm { \pst@number\psunit mul } bind def
- /Z1 \psk@ZA def
- /m1 \psk@m def
- /Z2 \psk@ZB def
- /m2 \psk@m def
- /ap \psk@ap def
- /polarAngle \psk@polarangle def
- /setlinedash { [ \psk@dash\space ] 0 setdash } def
- /ni \psk@holenumber def ni 8 gt { /ni 8 def } if
- /thetamax \psk@thetamax def
-%
- /ifinner \ifPst@spirograph@inner true \else false \fi def
- /ifcircles \ifPst@spirograph@circles true \else false \fi def
- /iffill \ifx\psk@fillstyle\psfs@none false \else true \fi def
- /Fill { \tx@setTransparency fill stroke } def
- % on teste si le nombre de dents est pair
- Z1 2 mod 1 eq { /Z1 Z1 1 sub def } if
- Z2 2 mod 1 eq { /Z2 Z2 1 sub def } if
- /HolePos \psk@HolePos def
- HolePos 0 lt HolePos 2 ge or { /HolePos 1.5 def } if
- /Fill { \psk@opacityalpha .setopacityalpha fill } def
- /R1 Z1 m1 mul 2 div def
- /R2 Z2 m1 mul 2 div def
- /ki 1 ni 9 div sub def
- /r2 m1 Z2 mul 2 div def
- /qi Z1 Z2 div 1 sub def
- /qi2 Z1 Z2 div 1 add def
- thetamax 0 le {/pas -1 def}{/pas 1 def} ifelse
-% tableau des points de l'hypocycloide
- /tabSpirograph [ 0 pas thetamax {/i_ exch def [i_ coorPen]} for ] def
-% tableau des points de l'epicycloide
- /tabSpirograph2 [ 0 pas thetamax {/i_ exch def [i_ coorPen2]} for ] def
- /nPts tabSpirograph length 1 sub def
- /nPts2 tabSpirograph2 length 1 sub def
- /color1 {\pst@usecolor\pscolora } def
- /color2 {\pst@usecolor\pscolorb } def
- /circlescolor {\pst@usecolor\pscolorc } def
- /curvecolor {\pst@usecolor\pscolord } def
- /linecolor {\pst@usecolor\pslinecolor} def
- /fillopacity \psk@opacityalpha def
- /GetCurveWidth { \pst@number\pscurvewidth } def
- /SetCurveWidth { \pst@number\pscurvewidth SLW } def
-%
- \ifPst@spirograph@TypeA
- Roue1
- Roue2
- \else
- %%%% definition de la roue dentee %%%%%%
- thetamax 0 le { /pas -1 def }{ /pas 1 def } ifelse
- /tabSpirograph [ 0 pas thetamax {/i_ exch def [ i_ coorPen3 ] } for ] def
- %%% Les dessins de l'engrenage %%%%%%
- %%%%%%%%%% Roue N°2 %%%%%%%%%%%
- %%%%%%%%%% roue fixe %%%%%%%%%%
- \ifPst@spirograph@gearwheels
- /wheel 2 def
- gsave
- m2 Z2 Datas1
- Calculs
- Beta_ rotate
- Roue3
- closepath
-% \ifx\psk@fillstyle\empty\else color2 Fill \fi
- iffill { color2 Fill } if
- Roue3
- closepath
- linecolor
- stroke
- grestore
- gsave
- %% la vis de fixation de la roue sur la feuille
- 0 0 0.5 cm 0 360 arc
- 0.8 0.8 0 setrgbcolor
- fill
- 0 setgray
- 0 0 0.5 cm 0 360 arc
- stroke
- 1 setlinewidth
- -0.5 cm 0 moveto 0.5 cm 0 lineto
- 0 -0.5 cm moveto 0 0.5 cm lineto
- stroke
- grestore
- \ifPst@spirograph@circles Circles \fi
- \fi
- gsave
- tabSpirograph 0 get aload pop moveto
- 1 1 tabSpirograph length 1 sub {/nP exch def tabSpirograph nP get aload pop lineto } for
- curvecolor
- \pst@number\pscurvewidth SLW
- stroke
- grestore
- %%%%%%%%%% Roue N°1 %%%%%%%%%%%%%%%%%
- %%%%%%%%%% roue tournante %%%%%%%%%%
- \ifPst@spirograph@gearwheels
- /wheel 1 def
- gsave
- m2 Z2 Datas1
- Calculs
- /a@ex m2 Z1 Z2 add mul 2 div cm def % entraxe engrenage exterieur
- /a@in m2 Z1 Z2 sub mul 2 div cm def % entraxe engrenage interieur
- a@in polarAngle cos mul a@in polarAngle sin mul translate
- polarAngle Z1 Z2 sub Z1 div mul rotate
- m1 Z1
- Datas2
- Calculs
- Beta_ rotate
- Roue3
- COURONNE
- closepath
- iffill { color1 Fill } if
-% \ifx\psk@fillstyle\@empty\else color1 Fill \fi
- Roue3
- closepath
- linecolor
- stroke
- COURONNE
- closepath
- linecolor
- stroke
- Roue3
- closepath
- linecolor
- stroke
- plaquette
- drawHole
- \ifPst@spirograph@circles Circles \fi
- grestore
- \else
- gsave
- m2 Z2 Datas1
- Calculs
- /a@ex m2 Z1 Z2 add mul 2 div cm def % entraxe engrenage exterieur
- /a@in m2 Z1 Z2 sub mul 2 div cm def % entraxe engrenage interieur
- a@in polarAngle cos mul a@in polarAngle sin mul translate
- polarAngle Z1 Z2 sub Z1 div mul rotate
- m1 Z1
- Datas2
- Calculs
- Beta_ rotate
- Beta_ neg rotate
- drawHole
- grestore
- \fi
- \fi
- end
- }%
- \end@SpecialObj
- \ignorespaces}
-%
-\def\psSpirograph@iv(#1){%
- \def\RA{\psCalc{\psk@ZA*\psk@m/2}}%
- \def\RB{\psCalc{\psk@ZB*\psk@m/2}}% les rayons
- \def\OB{\psCalc{\RA+\RB}}%
- \def\RAp{\psCalc{(\RA*2-2.5*0.2)/2}}% cercles de pied
- \def\RBp{\psCalc{(\RB*2-2.5*0.2)/2}}%
- % la vitesse de rotation
- \def\OMEGAA{-1}%
- \def\OMEGAB{\psCalc{(-\OMEGAA)*\psk@ZA/\psk@ZB}}%
- \def\ANGLE{\psCalc{\psk@wheelrotation}}% degrees
- \def\ANGLErad{\psCalc{\ANGLE*3.14/180}}% radians
- \def\nombrePoints{\psCalc{trunc(2*\ANGLE+5,0)}}%
- % positionnement angulaire des 2 points de fixation de l'élastique
- \def\thetaA{\psCalc{(\psk@thetaA)*3.14/180}}%
- \def\thetaB{\psCalc{(\psk@thetaB)*3.14/180}}%
- % les coordonnées des 2 points
- \def\xA{\psCalc{0.9*\RAp*cos(\thetaA+\OMEGAA*\ANGLErad)}}%
- \def\yA{\psCalc{sin(\thetaA+\OMEGAA*\ANGLErad)*\RAp*0.9}}%
- \def\xB{\psCalc{cos(\thetaB+\OMEGAB*\ANGLErad)*\RBp*0.9}}%
- \def\yB{\psCalc{sin(\thetaB+\OMEGAB*\ANGLErad)*\RBp*0.9+\OB}}%
- % le milieu
- \def\xM{\psCalc{(\xA+\xB)/2}}\def\yM{\psCalc{(\yA+\yB)/2}}%
- \ThreeDput[normal=0 0 1](0,0,0){%
- \psgrid[subgriddiv=0,gridlabels=0pt]%\psframe(-5,-5)(5,7)
- \rput(0.05,-0.05){\psSpirographB[circles=false,polarangle=90,fillstyle=solid,color1=black,color2=black]}%
- \psSpirographB[circles=false,polarangle=90,fillstyle=solid]%
- \parametricplot[linecolor=red,plotpoints=\nombrePoints,algebraic,linewidth=0.1]{0}{\ANGLErad}{
- (\RAp*0.9*cos(\thetaA+\OMEGAA*t)+\RBp*0.9*cos(\thetaB+\OMEGAB*t))/2|
- (\RAp*0.9*sin(\thetaA+\OMEGAA*t)+\RBp*0.9*sin(\thetaB+\OMEGAB*t)+\OB)/2}%
- \psline{->}(0,0)(0,1)\psline{->}(0,0)(1,0)%
- % les cercles de contact
- \pscircle[linestyle=dotted](0,0){\RA}\pscircle[linestyle=dotted](0,\OB){\RB}%
- % les cercles de pied
- %\pscircle[linestyle=dotted](0,0){\RAp}
- %\pscircle[linestyle=dotted](0,\OB){\RBp}
- }%
- % les tiges de fixation des extrémités de l'élastique
- \ThreeDput[normal=0 1 0](\xA,\yA,0){\psline[linewidth=0.1]{-*}(0,0)(0,1)\pnode(0,1){P1}}%
- \ThreeDput[normal=0 1 0](\xB,\yB,0){\psline[linewidth=0.1]{-*}(0,0)(0,1)\pnode(0,1){P2}}%
- % le milieu
- \ThreeDput[normal=0 1 0](\xM,\yM,0){\pnodes(0,1){P3}(0,0){P4}}%
- \psline[linecolor=blue](P1)(P2)%
- \psline[linecolor=red]{->}(P3)(P4)%
- \psdot[linecolor=blue](P3)%
- \end@SpecialObj
- \ignorespaces}
-%
-\def\psSpirographB{\def\pst@par{}\pst@object{psSpirographB}}
-\def\psSpirographB@i{\@ifnextchar({\psSpirographB@ii}{\psSpirographB@ii(0,0)}}
-\def\psSpirographB@ii(#1){%
- \begin@SpecialObj
- \pst@@getcoor{#1}%
- \addto@pscode{%
- \pst@coor /t@@y ED /t@@x ED
- /cm {\pst@number\psunit mul } bind def
- /Z1 \psk@ZA def
- /m1 \psk@m def
- /Z2 \psk@ZB def
- /m2 \psk@m def
- /ap \psk@ap def
- /facteurRayonRaccord {\psk@Rarct mul} def
- /polarAngle \psk@polarangle def
- /color1 {\pst@usecolor\pscolora } def
- /color2 {\pst@usecolor\pscolorb } def
- /colorcircles {\pst@usecolor\pscolorc } def
- /curvecolor {\pst@usecolor\pscolord} def
- /linecolor {\pst@usecolor\pslinecolor} def
- /ni \psk@holenumber def ni 8 gt { /ni 8 def } if
- /thetamax \psk@thetamax def
- Z1 2 mod 1 eq { /Z1 Z1 1 sub def } if
- Z2 2 mod 1 eq { /Z2 Z2 1 sub def } if
- /HolePos \psk@HolePos def
- HolePos 0 lt HolePos 2 ge or { /HolePos 1.5 def } if
- /Fill { \psk@opacityalpha .setopacityalpha fill } def
- /R1 Z1 m1 mul 2 div def
- /R2 Z2 m1 mul 2 div def
- /ki 1 ni 9 div sub def
- /r2 m1 Z2 mul 2 div def
- /qi Z1 Z2 div 1 sub def
- /qi2 Z1 Z2 div 1 add def
- %
- tx@spirographDict begin
- %%%% definition de la roue dentee %%%%%%
- /Roue3d {
- % arc de développante
- /tabArcDev [ 0 1 ThetaTdeg { /i@ exch def [i@ devCercle] } for ] def
- /n@ tabArcDev length def
- /tabDent [
- % l'arc de developpante initial
- tabArcDev aload pop
- % l'arc ce cercle de tete
- DeltaT 0.1 2Beta DeltaT sub {/i@ exch def [Rt cm i@ cos mul Rt cm i@ sin mul] } for
- % le symetrique de l'arc de developpante par rapport a l'axe de la dent
- n@ 1 sub -1 0 { /compteur exch def [tabArcDev compteur get aload pop symAxe] } for
- ] def
- % tracé de la dent
- /n2@ tabDent length def
- newpath
- ptC moveto
- 0 1 Z@ 1 sub
- { /i@ exch AngleDent mul def
- \ifPst@spirograph@int
- wheel 2 eq { ptA RotDent ptB RotDent Rarct arct ptB RotDent lineto }
- { ptA RotDent lineto ptB RotDent lineto } ifelse
- \else
- Rp Rb eq { ptA RotDent lineto ptB RotDent lineto }
- { ptA RotDent ptB RotDent Rarct arct ptB RotDent lineto } ifelse
- \fi
- 0 1 n2@ 1 sub { /compteur exch def tabDent compteur get aload pop RotDent lineto } for
- \ifPst@spirograph@int
- wheel 2 eq { Rp Rb eq { ptA' RotDent lineto ptC' RotDent lineto }
- { ptA' RotDent ptC' RotDent Rarct arct ptC' RotDent lineto } ifelse }
- { ptA' RotDent lineto ptC' RotDent lineto } ifelse
- \else
- Rp Rb eq { ptA' RotDent lineto ptC' RotDent lineto }
- { ptA' RotDent ptC' RotDent Rarct arct ptC' RotDent lineto } ifelse
- \fi
- } for
- } def % Roue3d
- %
-%%%%%%%%%%%%%%%%%5
- thetamax 0 le { /pas -1 def }{ /pas 1 def } ifelse
- /tabSpirograph [ 0 pas thetamax {/i_ exch def [ i_ coorPen3 ] } for ] def
-% gsave
-% tabSpirograph 0 get aload pop moveto
-% 1 1 tabSpirograph length 1 sub {/nP exch def tabSpirograph nP get aload pop lineto } for
-% curvecolor
-% \pst@number\pscurvewidth SLW
-% stroke
-% grestore
-%%%%%%%%%%%%%%%
- /AngleRotation \psk@wheelrotation def
- %%% Les dessins de l'engrenage %%%%%%
- %%%%%%%%%% Roue N°1 %%%%%%%%%%%%%%%%%
- \ifPst@spirograph@notdrawWheel
- \else
- /wheel 1 def
- gsave
- t@@x t@@y translate
- m1 Z1
- \ifPst@spirograph@int
- Datas2 Calculs Beta_ AngleRotation sub rotate Roue3d COURONNE closepath
- \ifx\psk@fillstyle\relax\else color1 fill \fi
- Roue3d closepath linecolor stroke
- COURONNE closepath linecolor stroke
- \ifPst@spirograph@circles Circles \fi
- \else
- Datas1 Calculs Beta_ AngleRotation sub rotate Roue3d AXE closepath
- \ifx\psk@fillstyle\relax\else color1 fill \fi
- Roue3d closepath linecolor stroke
- AXE closepath
- \ifx\psk@fillstyle\relax\else 0.8 setgray fill \fi
- AXE closepath linecolor stroke
- CLAVETTE
- \ifx\psk@fillstyle\relax\else 0 0.125 0.25 0.25 setcmykcolor fill \fi
- CLAVETTE linecolor stroke
- \ifPst@spirograph@circles Circles \fi
- \fi
- grestore
- \fi
- %%%%%%%%%% Roue N°2 %%%%%%%%%%%%%%%%%
- /wheel 2 def
- gsave
- m2 Z2 Datas1
- Calculs
- /a@ex m2 Z1 Z2 add mul 2 div cm def % entraxe engrenage exterieur
- /a@in m2 Z1 Z2 sub mul 2 div cm def % entraxe engrenage interieur
- \ifPst@spirograph@int
- a@in polarAngle cos mul t@@x add a@in polarAngle sin mul t@@y add translate
- Beta_ Z1 Z2 div AngleRotation mul sub polarAngle Z1 Z2 sub Z2 div mul sub rotate
- \else
- a@ex polarAngle cos mul t@@x add a@ex polarAngle sin mul t@@y add translate
- DeltaSdeg DeltaP add neg 180 Z2 div add 180 add Z1 Z2 div AngleRotation mul add polarAngle Z1 Z2 add Z2 div mul add rotate
- \fi
- Roue3d
- AXE
- closepath
- \ifx\psk@fillstyle\relax\else color2 fill \fi
- Roue3d
- closepath
- linecolor
- stroke
- AXE
- closepath
- \ifx\psk@fillstyle\relax\else 0.8 setgray fill \fi
- AXE
- closepath
- linecolor
- stroke
- CLAVETTE
- \ifx\psk@fillstyle\relax\else 0 0.125 0.25 0.25 setcmykcolor fill \fi
- CLAVETTE
- linecolor
- stroke
- \ifPst@spirograph@circles Circles \fi
- grestore
- end
- }%
- \end@SpecialObj
- \ignorespaces
-}% % fin de la commande PSTricks
-%
-\catcode`\@=\PstAtCode\relax
-%
-\endinput \ No newline at end of file