diff options
author | Karl Berry <karl@freefriends.org> | 2006-01-12 23:46:03 +0000 |
---|---|---|
committer | Karl Berry <karl@freefriends.org> | 2006-01-12 23:46:03 +0000 |
commit | 873660d1a83ece926fe7206288dda9c36b349c1b (patch) | |
tree | a48f77125c309a355b5d0eb58d6b24446abe9d62 /Master/texmf-dist/tex/generic/pst-osci | |
parent | 2939242967231097459df0fc3150fabc2f639111 (diff) |
generic 1
git-svn-id: svn://tug.org/texlive/trunk@613 c570f23f-e606-0410-a88d-b1316a301751
Diffstat (limited to 'Master/texmf-dist/tex/generic/pst-osci')
-rw-r--r-- | Master/texmf-dist/tex/generic/pst-osci/pst-osci.tex | 315 |
1 files changed, 315 insertions, 0 deletions
diff --git a/Master/texmf-dist/tex/generic/pst-osci/pst-osci.tex b/Master/texmf-dist/tex/generic/pst-osci/pst-osci.tex new file mode 100644 index 00000000000..2eac1675ee9 --- /dev/null +++ b/Master/texmf-dist/tex/generic/pst-osci/pst-osci.tex @@ -0,0 +1,315 @@ +%% Authors : Manuel LUQUE <Mluque5130@aol.com> +%% Christophe JORSSEN <Christophe.Jorssen@wanadoo.fr> +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\def\fileversion{2.7} +\def\filedate{99/11/02} + +\message{`PST-osci' v\fileversion, \filedate\space (Manuel LUQUE & Christophe +JORSSEN)} + +\csname PSTOscilloLoaded\endcsname +\let\PSTOscilloLoaded\endinput + +% Require PSTricks, pstcol,pstplot and multido packages +\ifx\PSTplotLoaded\endinput\else\input pst-plot.tex\fi +\ifx\MultidoLoaded\endinput\else\input multido.tex\fi + +% DPC interface to the `keyval' package (until keyval based version of PSTricks) +\input pst-key.tex + +\edef\PstAtCode{\the\catcode`\@} \catcode`\@=11\relax + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\font\ssf=cmss10 +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\newrgbcolor{Beige}{0.96 0.96 0.86} +\newrgbcolor{LightGray}{0.8 0.8 0.8} +\newrgbcolor{VeryLightGray}{0.9 0.9 0.9} +\newcmykcolor{PaleOrange}{0 0.2 0.4 0} +\newcmykcolor{LightBlue}{0.1 0 0 0} +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\define@key{psset}{period1}{\edef\psk@Oscillo@PeriodA{#1}} +\define@key{psset}{period2}{\edef\psk@Oscillo@PeriodB{#1}} +\define@key{psset}{periodmodulation1}{\edef\psk@Oscillo@PeriodModulationA{#1}} +\define@key{psset}{freqmod1}{\edef\psk@Oscillo@FreqModA{#1}} +\define@key{psset}{periodmodulation2}{\edef\psk@Oscillo@PeriodModulationB{#1}} +\define@key{psset}{freqmod2}{\edef\psk@Oscillo@FreqModB{#1}} +\define@key{psset}{amplitude1}{\edef\psk@Oscillo@AmplitudeA{#1}} +\define@key{psset}{amplitude2}{\edef\psk@Oscillo@AmplitudeB{#1}} +\define@key{psset}{CC1}{\edef\psk@Oscillo@ContinuousComponentA{#1}} +\define@key{psset}{CC2}{\edef\psk@Oscillo@ContinuousComponentB{#1}} +\define@key{psset}{timediv}{\edef\psk@Oscillo@TimeDiv{#1}} +\define@key{psset}{phase1}{\edef\psk@Oscillo@PhaseA{#1}} +\define@key{psset}{phase2}{\edef\psk@Oscillo@PhaseB{#1}} +\define@key{psset}{sensivity1}{\edef\psk@ChannelA{#1}} +\define@key{psset}{sensivity2}{\edef\psk@ChannelB{#1}} +\define@key{psset}{damping1}{\edef\psk@Oscillo@dampingA{#1}} +\define@key{psset}{damping2}{\edef\psk@Oscillo@dampingB{#1}} +\define@key{psset}{Fourier}{\edef\psk@Oscillo@Fourier{#1}} +\define@key{psset}{offset1}{\edef\psk@Oscillo@OffsetA{#1}} +\define@key{psset}{offset2}{\edef\psk@Oscillo@OffsetB{#1}} +\define@key{psset}{offset3}{\edef\psk@Oscillo@OffsetC{#1}} +\define@key{psset}{plotstyle1}{\edef\psk@Oscillo@PlotStyleA{#1}} +\define@key{psset}{plotstyle2}{\edef\psk@Oscillo@PlotStyleB{#1}} +\define@key{psset}{plotstyle3}{\edef\psk@Oscillo@PlotStyleC{#1}} +\define@key{psset}{plotstyle4}{\edef\psk@Oscillo@PlotStyleD{#1}} +\define@key{psset}{operation}{% +\def\@tempa{#1}% +\let\psk@Oscillo@Operation\@tempa} + +\define@key{psset}{Wave1}{% +\def\@tempa{#1}% +\let\psk@Oscillo@WaveA\@tempa} + +\define@key{psset}{Wave2}{% +\def\@tempa{#1}% +\let\psk@Oscillo@WaveB\@tempa} + +\newif\ifPst@Oscillo@Lissajous +\define@key{psset}{Lissajous}[true]{% +\@nameuse{Pst@Oscillo@Lissajous#1}} + +\newif\ifPst@Oscillo@Combine +\define@key{psset}{combine}[true]{% +\@nameuse{Pst@Oscillo@Combine#1}} + +\setkeys{psset}{period1=20,period2=20,amplitude1=2,amplitude2=0,% +phase1=0,phase2=0,timediv=5,Lissajous=false,sensivity1=1,% +sensivity2=1,damping1=0,damping2=0,combine=false,% +offset1=0,offset2=0,plotstyle1=GreenContA,Fourier=100,% +plotstyle2=BlueContB,plotstyle3=RedContLissajou,% +plotstyle4=MagentaContAddSub,operation=\relax,Wave1=\SinusA,Wave2=\SinusB,% +periodmodulation1=100,freqmod1=0,periodmodulation2=100,freqmod2=0,CC1=0,CC2=0,offset3=0} + +\newpsstyle{GreenContA}{linecolor=green,% +linewidth=0.05,plotpoints=360} +\newpsstyle{BlueContB}{linecolor=blue,% +linewidth=0.05,plotpoints=360} +\newpsstyle{RedContLissajou}{linecolor=red,% +linewidth=0.05,plotpoints=1000} +\newpsstyle{MagentaContAddSub}{linecolor=magenta,% +linewidth=0.05,plotpoints=1000} + +\def\TriangleA{% +/Cste 0.4050284 def % 4/pi^2 +/A1 \psk@Oscillo@AmplitudeA\space 2 mul def % Amplitude peak to peak +0 1 2 fourier{ +/n exch def +t 10 mul T1 div BT mul +n mul cos +n n mul div Cste mul A1 mul add +}for e t AR1 mul neg exp mul SA div CC1 add} + +\def\TriangleB{% +/Cste 0.4050284 def % 4/pi^2 +/A2 \psk@Oscillo@AmplitudeB\space 2 mul def +0 1 2 fourier{ +/n exch def +t 10 mul T2 div BT mul +n mul cos +n n mul div Cste mul A2 mul add +}for e t AR2 mul neg exp mul SB div CC2 add} + +\def\RectangleA{ +/Cste 0.6366 def +/A1 \psk@Oscillo@AmplitudeA\space 2 mul def +0 1 2 fourier{ % +/n exch def +t 10 mul T1 div BT mul +n mul sin +n div Cste mul A1 mul add % +}for +e t AR1 mul neg exp mul SA div CC1 add} + +\def\RectangleB{ +/Cste 0.6366 def +/A2 \psk@Oscillo@AmplitudeB\space 2 mul def +0 1 2 fourier{ % +/n exch def +t 10 mul T2 div BT mul +n mul sin +n div Cste mul A2 mul add % +}for +e t AR2 mul neg exp mul SB div CC2 add} + +\def\RDogToothA{ +/Cste 0.6366 def /timediv 5 def +0 1 1 fourier{ % +/n exch def +t 10 mul T1 div BT mul +n mul sin +n div -1 1 n add exp mul Cste mul A1 mul add% +}for +e t AR1 mul neg exp mul SA div CC1 add} + +\def\RDogToothB{ +/Cste 0.6366 def /timediv 5 def +0 1 1 fourier{% +/n exch def +t 10 mul T2 div BT mul +n mul sin +n div -1 1 n add exp mul Cste mul A2 mul add% +}for +SB div CC2 add} + +\def\LDogToothA{ +/Cste 0.6366 def /timediv 5 def t +0 1 1 fourier{% +/n exch def +t 10 mul T1 div BT mul +n mul sin +n div 180 n mul cos mul Cste mul A1 mul add% +}for +e t AR1 mul neg exp mul SA div CC1 add} + +\def\LDogToothB{ +/Cste 0.6366 def /timediv 5 def +0 1 1 fourier{% +/n exch def +t 10 mul T2 div BT mul +n mul sin +n div 180 n mul cos mul Cste mul A2 mul add% +}for +e t AR2 mul neg exp mul SB div CC2 add} + +\def\SinusA{% +t 10 mul T1 div BT mul +mod1 57.3 mul t 10 mul Tm1 div BT mul sin mul add +phaseA add sin A1 mul +e t AR1 mul neg exp mul SA div CC1 add} + +\def\SinusB{% +t 10 mul T2 div BT mul +mod2 57.3 mul t 10 mul Tm2 div BT mul sin mul +add phaseB add sin A2 mul +e t AR2 mul neg exp mul SB div CC2 add} + +\def\Oscillo{\@ifnextchar[{\pst@Oscillo}{\pst@Oscillo[]}} + +\def\pst@Oscillo[#1]{{% +\setkeys{psset}{#1} + +\pspicture(0,-5)(10,5) \psframe*[linecolor=LightBlue](0,-4)(10,4) +\psgrid[gridlabels=0,subgriddiv=0](0,-4)(10,4) +\multido{\nxDiv=0+0.2}{50}{% +\psline(\nxDiv,-.1)(\nxDiv,0.1)} +\multido{\nyDiv=-4.0+0.2}{40}{% +\psline(4.9,\nyDiv)(5.1,\nyDiv)} + +%%%%%%%%%%%% Tuning %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\psframe[fillcolor=VeryLightGray,fillstyle=solid,dimen=middle](0,4)(10,5) +\rput(1.5,4.8){\ssf timeDiv :} \rput(1.5,4.3){\ssf\psk@Oscillo@TimeDiv{}ms/div} +\rput(4,4.8){\ssf Channel A :} \rput(4,4.3){\ssf\psk@ChannelA{} V/div} +\rput(7,4.8){\ssf Channel B :} \rput(7,4.3){\ssf\psk@ChannelB{} V/div} +\rput(9,4.8){\ssf XY} \rput(9,4.3){\ifPst@Oscillo@Lissajous\red ON\else\green OFF\fi} +\psframe[fillcolor=VeryLightGray,fillstyle=solid,dimen=middle](0,-5)(10,-4) +\ifPst@Oscillo@Combine +\rput(2,-4.3){\ssf\psk@Oscillo@Operation:} +\rput(2,-4.8){\ssf\magenta ON} +\fi +\rput(6.5,-4.3){\ssf OffsetB} +\rput(6.5,-4.8){\ssf \psk@Oscillo@OffsetB} +\rput(8.5,-4.3){\ssf OffsetC} +\rput(8.5,-4.8){\ssf \psk@Oscillo@OffsetC} +\rput(4.5,-4.3){\ssf OffsetA} +\rput(4.5,-4.8){\ssf \psk@Oscillo@OffsetA} +\ifPst@Oscillo@Lissajous + +\psclip{\psframe(0,-4)(10,4)} +\parametricplot[style=\psk@Oscillo@PlotStyleC]{0}{360}{% +/fourier \psk@Oscillo@Fourier\space def +/T1 \psk@Oscillo@PeriodA\space def +/T2 \psk@Oscillo@PeriodB\space def +/Tm1 \psk@Oscillo@PeriodModulationA\space def +/mod1 \psk@Oscillo@FreqModA\space def +/Tm2 \psk@Oscillo@PeriodModulationB\space def +/mod2 \psk@Oscillo@FreqModB\space def +/CC1 \psk@Oscillo@ContinuousComponentA\space def +/CC2 \psk@Oscillo@ContinuousComponentB\space def +/BT T1 def +/A1 \psk@Oscillo@AmplitudeA\space def +/A2 \psk@Oscillo@AmplitudeB\space def +/phaseA \psk@Oscillo@PhaseA\space def +/phaseB \psk@Oscillo@PhaseB\space def +%/K 36 T div def +/e 2.718 def +/AR1 \psk@Oscillo@dampingA\space def +/AR2 \psk@Oscillo@dampingB\space def +/SA \psk@ChannelA\space def +/SB \psk@ChannelB\space def +/offset1 \psk@Oscillo@OffsetA\space def +/offset2 \psk@Oscillo@OffsetB\space def +\psk@Oscillo@WaveA\space 5 add +\psk@Oscillo@WaveB\space} +\endpsclip +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\else +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\psclip{\psframe(0,-4)(10,4)}\psset{xunit=0.02777} +\parametricplot[style=\psk@Oscillo@PlotStyleA]{0}{360}{% +/fourier \psk@Oscillo@Fourier\space def +/T1 \psk@Oscillo@PeriodA\space def +/Tm1 \psk@Oscillo@PeriodModulationA\space def +/mod1 \psk@Oscillo@FreqModA\space def +/BT \psk@Oscillo@TimeDiv\space def +/A1 \psk@Oscillo@AmplitudeA\space def +/phaseA \psk@Oscillo@PhaseA\space def +/CC1 \psk@Oscillo@ContinuousComponentA\space def +/e 2.718 def +/AR1 \psk@Oscillo@dampingA\space def +/offset1 \psk@Oscillo@OffsetA\space def +/SA \psk@ChannelA\space def +t \psk@Oscillo@WaveA\space +offset1 add +} +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\parametricplot[style=\psk@Oscillo@PlotStyleB]{0}{360}{% +/fourier \psk@Oscillo@Fourier\space def +/T2 \psk@Oscillo@PeriodB\space def +/Tm2 \psk@Oscillo@PeriodModulationB\space def +/mod2 \psk@Oscillo@FreqModB\space def +/BT \psk@Oscillo@TimeDiv\space def +/A2 \psk@Oscillo@AmplitudeB\space def +/phaseB \psk@Oscillo@PhaseB\space def +/CC2 \psk@Oscillo@ContinuousComponentB\space def +/e 2.718 def +/AR2 \psk@Oscillo@dampingB\space def +/offset2 \psk@Oscillo@OffsetB\space def +/SB \psk@ChannelB\space def +t \psk@Oscillo@WaveB\space +offset2 add +} +\ifPst@Oscillo@Combine +%%%%%%%%% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\parametricplot[style=\psk@Oscillo@PlotStyleD]{0}{360}{% +/fourier \psk@Oscillo@Fourier\space def +/T1 \psk@Oscillo@PeriodA\space def +/T2 \psk@Oscillo@PeriodB\space def +/Tm1 \psk@Oscillo@PeriodModulationA\space def +/mod1 \psk@Oscillo@FreqModA\space def +/Tm2 \psk@Oscillo@PeriodModulationB\space def +/mod2 \psk@Oscillo@FreqModB\space def +/BT \psk@Oscillo@TimeDiv\space def +/A1 \psk@Oscillo@AmplitudeA\space def +/A2 \psk@Oscillo@AmplitudeB\space def +/phaseA \psk@Oscillo@PhaseA\space def +/phaseB \psk@Oscillo@PhaseB\space def +/CC1 \psk@Oscillo@ContinuousComponentA\space def +/CC2 \psk@Oscillo@ContinuousComponentB\space def +/offset3 \psk@Oscillo@OffsetC\space def +/e 2.718 def +/AR1 \psk@Oscillo@dampingA\space def +/AR2 \psk@Oscillo@dampingB\space def +/SA \psk@ChannelA\space def +/SB \psk@ChannelB\space def +/offset1 \psk@Oscillo@OffsetA\space def +/offset2 \psk@Oscillo@OffsetB\space def +t \psk@Oscillo@WaveA\space +\psk@Oscillo@WaveB\space +\psk@Oscillo@Operation% +\space offset3 add} +\fi +\endpsclip\fi +\endpspicture}} +\catcode`\@=\PstAtCode\relax +\endinput |