summaryrefslogtreecommitdiff
path: root/graphics/pstricks/contrib/pst-coil/tex/pst-coil.tex
diff options
context:
space:
mode:
authorNorbert Preining <norbert@preining.info>2019-09-02 13:46:59 +0900
committerNorbert Preining <norbert@preining.info>2019-09-02 13:46:59 +0900
commite0c6872cf40896c7be36b11dcc744620f10adf1d (patch)
tree60335e10d2f4354b0674ec22d7b53f0f8abee672 /graphics/pstricks/contrib/pst-coil/tex/pst-coil.tex
Initial commit
Diffstat (limited to 'graphics/pstricks/contrib/pst-coil/tex/pst-coil.tex')
-rw-r--r--graphics/pstricks/contrib/pst-coil/tex/pst-coil.tex227
1 files changed, 227 insertions, 0 deletions
diff --git a/graphics/pstricks/contrib/pst-coil/tex/pst-coil.tex b/graphics/pstricks/contrib/pst-coil/tex/pst-coil.tex
new file mode 100644
index 0000000000..cd15fa0537
--- /dev/null
+++ b/graphics/pstricks/contrib/pst-coil/tex/pst-coil.tex
@@ -0,0 +1,227 @@
+%% $Id: pst-coil.tex 578 2011-09-18 17:18:46Z herbert $
+%% BEGIN pst-coil.tex
+%%
+%% Coils and zigzags with PSTricks
+%% See the PSTricks User's Guide for documentation.
+%% For use with the PostScript header file `pst-coil.pro'.
+%%
+%%
+%% COPYRIGHT 1993, 1994, 1999 by Timothy Van Zandt, tvz@nwu.edu.
+%% 2006-2015 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 macros/latex/base/lppl.txt.
+%%
+\message{ v\fileversion, \filedate}
+\csname PSTcoilsLoaded\endcsname
+\let\PSTcoilsLoaded\endinput
+%
+\ifx\PSTricksLoaded\endinput \else\input pstricks.tex\fi
+\ifx\PSTnodeLoaded\endinput \else\input pst-node.tex\fi
+\ifx\PSTXKeyLoaded\endinput \else\input pst-xkey \fi
+%
+\def\fileversion{1.07}
+\def\filedate{2015/05/13}
+%
+\edef\TheAtCode{\the\catcode`\@}
+\catcode`\@=11
+%
+\pst@addfams{pst-coil}
+\pstheader{pst-coil.pro}
+\edef\pst@theheaders{\pst@theheaders,pst-coil.pro}
+\def\pst@CoilDict{tx@CoilDict begin }
+%
+\def\tx@CoilLoop {\pst@CoilDict CoilLoop end }
+\def\tx@Coil {\pst@CoilDict Coil end }
+\def\tx@AltCoil {\pst@CoilDict AltCoil end }
+\def\tx@ZigZag {\pst@CoilDict ZigZag end }
+\def\tx@ZigZagCirc{\pst@CoilDict ZigZagCirc end }
+\def\tx@Sin {\pst@CoilDict Sin end }
+%
+\define@key[psset]{pst-coil}{coilwidth}[1cm]{\pst@getlength{#1}\psk@coilwidth}
+\define@key[psset]{pst-coil}{coilheight}[1]{\pst@checknum{#1}\pscoilheight}
+\define@key[psset]{pst-coil}{coilarmA}[0.5cm]{\pst@getlength{#1}\psk@coilarmA}
+\define@key[psset]{pst-coil}{coilarmB}[0.5cm]{\pst@getlength{#1}\psk@coilarmB}
+\define@key[psset]{pst-coil}{coilarm}[0.5cm]{%
+ \pst@getlength{#1}\psk@coilarmA%
+ \let\psk@coilarmB\psk@coilarmA}
+\define@key[psset]{pst-coil}{coilaspect}[45]{\pst@getangle{#1}\psk@coilaspect}
+\define@key[psset]{pst-coil}{coilinc}[10]{\pst@getangle{#1}\psk@coilinc}
+%
+\psset[pst-coil]{coilaspect=45,coilarm=.5cm,coilheight=1,coilwidth=1cm,coilinc=10}
+%
+\def\pscoil{\def\pst@par{}\pst@object{pscoil}}
+\def\pscoil@i{\pst@getarrows\pscoil@ii}
+\def\pscoil@ii(#1){\@ifnextchar({\pscoil@iii{1}(#1)}{\pscoil@iii{\z@}(0,0)(#1)}}
+\def\pscoil@iii#1(#2)(#3){%
+ \begin@OpenObj
+ \pst@getcoor{#2}\pst@tempa
+ \pst@getcoor{#3}\pst@tempb
+ \pst@optcp{#1}\pst@tempa
+ \addto@pscode{%
+ \pst@tempa \pst@tempb
+ \psk@coilwidth \pscoilheight
+ \psk@coilarmA \psk@coilarmB
+ \psk@coilaspect \psk@coilinc
+ \tx@Coil }%
+ \showpointsfalse
+ \end@OpenObj}
+%
+\def\psCoil{\def\pst@par{}\pst@object{psCoil}}
+\def\psCoil@i#1#2{%
+ \begin@AltOpenObj
+ \showpointsfalse
+ \pst@getangle{#1}\pst@tempa
+ \pst@getangle{#2}\pst@tempb
+ \addto@pscode{%
+ \pst@tempa
+ \pst@tempb
+ \psk@coilwidth
+ \pscoilheight
+ \psk@coilaspect
+ \psk@coilinc
+ \tx@AltCoil
+ \@nameuse{psls@\pslinestyle} }%
+ \end@OpenObj}
+%
+\define@key[psset]{pst-coil}{bow}[0]{%
+ \pst@getlength{#1}\psk@bow%
+ \pst@dimm=\psk@bow pt%
+ \pst@absdim{\pst@dimm}{\pst@dimn}%
+ \ifdim\pst@dimn<1pt \def\psk@bow{0}\fi}%
+\psset[pst-coil]{bow=0}
+%
+\def\pszigzag{\def\pst@par{}\pst@object{pszigzag}}
+\def\pszigzag@i{\pst@getarrows\pszigzag@ii}
+\def\pszigzag@ii(#1){\@ifnextchar({\pszigzag@iii{1}(#1)}{\pszigzag@iii{\z@}(0,0)(#1)}}
+\def\pszigzag@iii#1(#2)(#3){%
+ \addbefore@par{bow=0}%
+ \begin@OpenObj%
+ \pst@getcoor{#2}\pst@tempA%
+ \pst@getcoor{#3}\pst@tempB%
+ \pst@optcp{#1}\pst@tempA%
+ \addto@pscode{%
+ \pst@tempA
+ \pst@tempB
+ \pscoilheight
+ \psk@coilwidth
+ \psk@coilarmA
+ \psk@coilarmB
+ \ifdim\psk@bow pt=\z@ \tx@ZigZag \else \psk@bow\space \tx@ZigZagCirc \fi
+ \psline@iii
+ \tx@Line }%
+ \end@OpenObj}
+%
+\def\nccoil{\pst@object{nccoil}}
+\def\nccoil@i{\check@arrow{\nccoil@ii}}
+\def\nccoil@ii#1#2{\nc@object{Open}{#1}{#2}{.5}{%
+ \tx@NCCoor
+ tx@Dict begin
+% DG/SR modification begin - Mar. 19, 1998 - Patch 2
+ 4 2 roll
+% DG/SR modification end
+ \psk@coilwidth \pscoilheight
+ \psk@coilarmA \psk@coilarmB
+ \psk@coilaspect \psk@coilinc
+ \tx@Coil
+ end }}
+%
+\def\pccoil{\def\pst@par{}\pst@object{pccoil}}
+\def\pccoil@i{\pc@object\nccoil@ii}
+%
+\def\nczigzag{\pst@object{nczigzag}}
+\def\nczigzag@i{\check@arrow{\nczigzag@ii}}
+\def\nczigzag@ii#1#2{\nc@object{Open}{#1}{#2}{.5}{%
+ \tx@NCCoor
+ tx@Dict begin
+% DG/SR modification begin - Mar. 19, 1998 - Patch 2
+ 4 2 roll
+% DG/SR modification end
+ \pscoilheight
+ \psk@coilwidth
+ \psk@coilarmA
+ \psk@coilarmB
+ \ifdim\psk@bow pt=\z@\tx@ZigZag\else\psk@bow\space\tx@ZigZagCirc\fi
+ \psline@iii
+ \tx@Line
+ end }}
+%
+\def\pczigzag{\def\pst@par{}\pst@object{pczigzag}}
+\def\pczigzag@i{\pc@object\nczigzag@ii}
+%
+\def\pst@checkUnit#1#2{\expandafter\pst@checkUnit@i#1!!#2}
+% 3.5 relative value \def\pst@roundValue{-1}
+% 3.5mm absolute value {-1}
+% *3.5mm absolute value, with real->int conversion (truncate) {0}
+% **3.5mm absolute value, with real->int conversion (round) {1}
+\def\pst@checkUnit@i{\@ifnextchar*%
+ {\def\pst@roundValue{0 }\pst@checkUnit@ii}%
+ {\def\pst@roundValue{-1 }\pst@checkUnit@iii**}}
+\def\pst@checkUnit@ii*{\@ifnextchar*%
+ {\def\pst@roundValue{1 }\pst@checkUnit@iii*}%
+ {\pst@checkUnit@iii**}}
+\def\pst@checkUnit@iii**#1!!#2{%
+ \edef\ps@next{#1}%
+ \ifx\ps@next\@empty\let\pst@num\z@%
+ \else\expandafter\pst@@checknum\ps@next..\@nil%
+ \fi%
+ \ifnum\pst@num=\z@\pst@getlength{#1}{#2}\def\pst@relativePeriod{false }%
+ \else%
+ \def\pst@relativePeriod{true }%
+ \edef#2{\ifnum\pst@num=\tw@-\fi\the\pst@cntg.%
+ \expandafter\@gobble\the\pst@cnth\space}%
+ \fi}
+%
+\define@key[psset]{pst-coil}{periods}[1]{\pst@checkUnit{#1}{\psk@periods}}
+\define@key[psset]{pst-coil}{amplitude}[1]{\def\psk@amplitude{#1 }}
+\define@key[psset]{pst-coil}{ppoints}[360]{\def\psk@ppoints{#1 }}
+\define@key[psset]{pst-coil}{function}[sin]{\def\psk@function{#1 }}
+\psset[pst-coil]{periods=1,amplitude=1,ppoints=360,function=sin}
+%
+\def\pssin{\pst@object{pssin}}
+\def\pssin@i{\pst@getarrows\pssin@ii}
+\def\pssin@ii(#1){\@ifnextchar({\pssin@iii{1}(#1)}{\pssin@iii{\z@}(0,0)(#1)}}
+\def\pssin@iii#1(#2)(#3){%
+ \begin@OpenObj
+ \pst@getcoor{#2}\pst@tempa
+ \pst@getcoor{#3}\pst@tempb
+ \pst@optcp{#1}\pst@tempa
+ \addto@pscode{%
+ \pst@tempa \pst@tempb
+ \psk@periods
+ \pst@relativePeriod
+ \pst@roundValue
+ \psk@amplitude \pst@number\psyunit mul
+ \psk@coilarmA \psk@coilarmB
+ \psk@ppoints
+ { \psk@function }
+ \tx@Sin
+ }%
+ \showpointsfalse%
+ \end@OpenObj}
+%
+\def\ncsin{\pst@object{ncsin}}
+\def\ncsin@i{\check@arrow{\ncsin@ii}}
+\def\ncsin@ii#1#2{\nc@object{Open}{#1}{#2}{.5}{%
+ \tx@NCCoor
+ tx@Dict begin
+ 4 2 roll
+ \psk@periods
+ \pst@relativePeriod
+ \pst@roundValue
+ \psk@amplitude \pst@number\psyunit mul
+ \psk@coilarmA \psk@coilarmB
+ \psk@ppoints
+ { \psk@function }
+ \tx@Sin
+ end }}
+%
+\def\pcsin{\def\pst@par{}\pst@object{pcsin}}
+\def\pcsin@i{\pc@object\ncsin@ii}
+%
+%
+\catcode`\@=\TheAtCode\relax
+\endinput
+%%
+%% END pst-coil.tex