summaryrefslogtreecommitdiff
path: root/info/examples/PSTricks_7_de/35-00-31.ltx
blob: 744f3d5bcc40330b9537ac6bcd32077bd3ca11f9 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
%% 
%%  Ein Beispiel der DANTE-Edition
%%  
%%  7. Auflage
%% 
%%  Beispiel 35-00-31 auf Seite 831.
%% 
%%  Copyright (C) 2016 Herbert Voss
%% 
%%  It may be distributed and/or modified under the conditions
%%  of the LaTeX Project Public License, either version 1.3
%%  of this license or (at your option) any later version.
%% 
%%  See http://www.latex-project.org/lppl.txt for details.
%% 
%% 
%% ==== 
% Show page(s) 1
%% 
%% 
\documentclass[]{exaarticle}
\pagestyle{empty}
\setlength\textwidth{352.81416pt}
\setlength\parindent{0pt}
%StartShownPreambleCommands
\usepackage{pstricks}
%StopShownPreambleCommands
\begin{document}
\makeatletter
\def\psYoungR{\pst@object{psYoungR}}
\def\psYoungR@i{\@ifnextchar({\psYoungR@do}{\psYoungR@do(0,0)}}
\def\psYoungR@do(#1)#2#3#4#5{%
  \begin@ClosedObj
  \pst@@getcoor{#1}%
  \addto@pscode{%
    \pst@coor
    translate
    /bornexpt  400 def
    bornexpt neg 1 bornexpt{
      /abscissept exch def
    % x en m
      /abscisse abscissept 2845 div def
      /DistanceEcran #3 def
      /EcartFentes #2 def
      /largeurFentes #4 def
      /lambdaR #5 def
      /argumentDeg abscisse 180 mul largeurFentes mul DistanceEcran div def
      /argumentRad argumentDeg 180 div Pi mul def
      /sinCR argumentRad 0 eq {1} {argumentDeg lambdaR div sin argumentRad div lambdaR mul} ifelse def
      180 EcartFentes mul abscisse mul lambdaR div DistanceEcran div cos dup mul
      sinCR dup  mul mul
      0
      0
      setrgbcolor 2 setlinewidth
      abscissept -40  moveto abscissept 40 lineto stroke}
    for }%
  \end@ClosedObj\ignorespaces%
}
\def\psYoungRVB{\pst@object{psYoungRVB}}
\def\psYoungRVB@i{\@ifnextchar({\psYoungRVB@do}{\psYoungRVB@do(0,0)}}
\def\psYoungRVB@do(#1)#2#3#4{
\begin@ClosedObj
\pst@@getcoor{#1}%
\addto@pscode{%
\pst@coor
 translate
 /bornexpt  400 def
 bornexpt neg 1 bornexpt{
 /abscissept exch def
 % x en m
 /abscisse abscissept 2845 div def
 /lambdaB 436e-9 def
 /lambdaV 546e-9 def
 /lambdaR 700e-9 def
 /DistanceEcran #3 def
 /EcartFentes #2 def
 /largeurFentes #4 def
 /argumentDeg abscisse 180 mul largeurFentes mul DistanceEcran div def
 /argumentRad argumentDeg 180 div Pi mul def
 /sinCR argumentRad 0 eq {1} {argumentDeg lambdaR div sin argumentRad div lambdaR mul}
  ifelse def
 /sinCV argumentRad 0 eq {1} {argumentDeg lambdaV div sin argumentRad div lambdaV mul}
  ifelse def
 /sinCB argumentRad 0 eq {1} {argumentDeg lambdaB div sin argumentRad div lambdaB mul}
  ifelse def
 180 EcartFentes mul abscisse mul lambdaR div DistanceEcran div cos dup mul
 sinCR dup  mul mul
 180 EcartFentes mul abscisse mul lambdaV div DistanceEcran div cos dup mul
 sinCV dup  mul mul
 180 EcartFentes mul abscisse mul lambdaB div DistanceEcran div cos dup mul
 sinCB dup  mul mul
 setrgbcolor 2 setlinewidth
  abscissept -40  moveto abscissept 40 lineto stroke}
 for}
\end@ClosedObj
}
\makeatother
\begin{pspicture*}(-8.5,-1.5)(8.5,1.5)
\psYoungRVB(0,0){50e-6}{2}{10e-6}
\end{pspicture*}
\end{document}