diff options
author | Norbert Preining <norbert@preining.info> | 2019-09-02 13:46:59 +0900 |
---|---|---|
committer | Norbert Preining <norbert@preining.info> | 2019-09-02 13:46:59 +0900 |
commit | e0c6872cf40896c7be36b11dcc744620f10adf1d (patch) | |
tree | 60335e10d2f4354b0674ec22d7b53f0f8abee672 /graphics/pstricks/contrib/pst-coil/tex |
Initial commit
Diffstat (limited to 'graphics/pstricks/contrib/pst-coil/tex')
-rw-r--r-- | graphics/pstricks/contrib/pst-coil/tex/pst-coil.tex | 227 |
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 |