From 14c7fd46eb994879e14d10b636bcd97a0a3237e8 Mon Sep 17 00:00:00 2001 From: Karl Berry Date: Sun, 16 Sep 2007 00:18:08 +0000 Subject: new pstricks pst-diffraction (13sep07) git-svn-id: svn://tug.org/texlive/trunk@4950 c570f23f-e606-0410-a88d-b1316a301751 --- Build/cdbuild/ctan2tds.pl | 1 + Build/tools/tpm-ctan-check | 3 +- .../texmf-dist/doc/generic/pst-diffraction/Changes | 6 + .../texmf-dist/doc/generic/pst-diffraction/README | 50 +++ .../pst-diffraction/pst-diffraction-doc.bib | 100 ++++++ .../pst-diffraction/pst-diffraction-docDE.pdf | Bin 0 -> 5483781 bytes .../pst-diffraction/pst-diffraction-docDE.tex | 323 +++++++++++++++++ .../pst-diffraction/pst-diffraction-docE.pdf | Bin 0 -> 5480641 bytes .../pst-diffraction/pst-diffraction-docE.tex | 317 +++++++++++++++++ .../pst-diffraction/pst-diffraction-docFR.pdf | Bin 0 -> 5464023 bytes .../pst-diffraction/pst-diffraction-docFR.tex | 299 ++++++++++++++++ .../source/generic/pst-diffraction/Makefile | 48 +++ .../generic/pst-diffraction/pst-diffraction.tex | 387 +++++++++++++++++++++ .../tex/latex/pst-diffraction/pst-diffraction.sty | 14 + Master/tlpkg/tlpsrc/collection-pstricks.tlpsrc | 1 + Master/tlpkg/tlpsrc/pst-diffraction.tlpsrc | 2 + 16 files changed, 1550 insertions(+), 1 deletion(-) create mode 100755 Master/texmf-dist/doc/generic/pst-diffraction/Changes create mode 100644 Master/texmf-dist/doc/generic/pst-diffraction/README create mode 100644 Master/texmf-dist/doc/generic/pst-diffraction/pst-diffraction-doc.bib create mode 100644 Master/texmf-dist/doc/generic/pst-diffraction/pst-diffraction-docDE.pdf create mode 100644 Master/texmf-dist/doc/generic/pst-diffraction/pst-diffraction-docDE.tex create mode 100644 Master/texmf-dist/doc/generic/pst-diffraction/pst-diffraction-docE.pdf create mode 100644 Master/texmf-dist/doc/generic/pst-diffraction/pst-diffraction-docE.tex create mode 100644 Master/texmf-dist/doc/generic/pst-diffraction/pst-diffraction-docFR.pdf create mode 100644 Master/texmf-dist/doc/generic/pst-diffraction/pst-diffraction-docFR.tex create mode 100644 Master/texmf-dist/source/generic/pst-diffraction/Makefile create mode 100644 Master/texmf-dist/tex/generic/pst-diffraction/pst-diffraction.tex create mode 100644 Master/texmf-dist/tex/latex/pst-diffraction/pst-diffraction.sty create mode 100644 Master/tlpkg/tlpsrc/pst-diffraction.tlpsrc diff --git a/Build/cdbuild/ctan2tds.pl b/Build/cdbuild/ctan2tds.pl index 85852935362..aa9296999f6 100755 --- a/Build/cdbuild/ctan2tds.pl +++ b/Build/cdbuild/ctan2tds.pl @@ -270,6 +270,7 @@ chdir $startdir || die "chdir($startdir) failed: $!"; 'pst-circ', "&MAKEpst", 'pst-coil', "&MAKEpst", 'pst-dbicons', "&MAKEpst", + 'pst-diffraction', "&MAKEpst", 'pst-eps', "&MAKEpst", 'pst-eucl', "&MAKEpst", 'pst-fill', "&MAKEpst", diff --git a/Build/tools/tpm-ctan-check b/Build/tools/tpm-ctan-check index 4fdd14e4b44..6cf4a76e557 100755 --- a/Build/tools/tpm-ctan-check +++ b/Build/tools/tpm-ctan-check @@ -108,7 +108,8 @@ my @WorkingTPM = qw( pracjourn preprint prettyref preview probsoln procIAGssymp program protocol pseudocode psfrag psnfss pspicture pst-2dplot pst-3d pst-3dplot pst-bar - pst-barcode pst-blur pst-dbicons pst-eps pst-eucl pst-fill + pst-barcode pst-blur pst-dbicons pst-diffraction + pst-eps pst-eucl pst-fill pst-fr3d pst-fractal pst-func pst-geo pst-grad pst-infixplot pst-labo pst-lens pst-math pst-optexp pst-optic diff --git a/Master/texmf-dist/doc/generic/pst-diffraction/Changes b/Master/texmf-dist/doc/generic/pst-diffraction/Changes new file mode 100755 index 00000000000..94384ed2e46 --- /dev/null +++ b/Master/texmf-dist/doc/generic/pst-diffraction/Changes @@ -0,0 +1,6 @@ +pst-diffraction.tex -------- +2.01 2007-09-13 first CTAN version + + +pst-diffraction.sty -------- +0.01 2007-09-13 first CTAN version \ No newline at end of file diff --git a/Master/texmf-dist/doc/generic/pst-diffraction/README b/Master/texmf-dist/doc/generic/pst-diffraction/README new file mode 100644 index 00000000000..707444a3f9e --- /dev/null +++ b/Master/texmf-dist/doc/generic/pst-diffraction/README @@ -0,0 +1,50 @@ +%% Package `pst-diffraction.tex' +%% +%% Manuel Luque (ml _at_ pstricks.de) (France) +%% Herbert Voss (hv _at_ pstricks.de) (Germany) +%% +%% 2007-09-04 +%% + +PSTricks offers excellent macros to insert more or less complex +graphics into a document. pstricks.tex itself is the base for several +other additional packages, which are mostly named pst-xxxx, +like pst-diffraction. +Diffraction refers to various phenomena associated with wave propagation, +such as the bending, spreading and interference of waves passing by an object +or aperture that disrupts the wave, like rectangle, circular, or tringle +slits. + +Save the files + +pst-diffraction.sty +pst-diffraction.tex +pst-diffraction.pro + +in any place, where latex or any other TeX program will find it. +The pro file should go into $TEXMF$/dvips/pstricks/. + +pst-diffraction uses the extended version of the keyval package. So +be sure that you +- have installed xkeyval with the special pst-xkey + (CTAN: tex-archive/macros/latex/contrib/xkeyval/) +- do not load another package after pst-diffraction, which loads + the old keyval.sty or pst-key.tex + + +If you like to get the documentation file in another format run + +latex pst-diffraction-docE.tex +bibtex pst-diffraction-docE +latex pst-diffraction-docE.tex +dvips pst-diffraction-docE.dvi + +to get a PostScript file. But pay attention, that the pst-diffraction +files are saved in the above mentioned way, before you run +latex on the documentation file. + +The intermediate DVI file works only with viewers which can +interprete the embedded PostScript code. + +For another PDF output read the introduction from +the documentation. diff --git a/Master/texmf-dist/doc/generic/pst-diffraction/pst-diffraction-doc.bib b/Master/texmf-dist/doc/generic/pst-diffraction/pst-diffraction-doc.bib new file mode 100644 index 00000000000..69cdd1245a2 --- /dev/null +++ b/Master/texmf-dist/doc/generic/pst-diffraction/pst-diffraction-doc.bib @@ -0,0 +1,100 @@ +@STRING{dtk = {{D}ie {\TeX}nische {K}om{\"o}die} } + +@Book{PostScript, + Author = {Kollock, Nikolai G.}, + Title = {PostScript richtig eingesetzt: vom Konzept zum + praktischen Einsatz}, + Publisher = {IWT}, + Address = {Vaterstetten}, + year = 1989, +} + +@Manual{pstricks, + Title = {PSTricks - {\PS} macros for Generic TeX}, + Author = {Timothy Van Zandt}, + Organization = {}, + Address = {\url{http://www.tug.org/application/PSTricks}}, + Note = {}, + year = 1993, +} + + +@Manual{pdftricks, + Title = {PSTricks Support for pdf}, + Author = {Herbert Voss}, + Organization = {}, + Address = {\url{http://PSTricks.de/pdf/pdfoutput.phtml}}, + Note = {}, + year = 2002, +} + +@Manual{miwi, + Title = {References for \TeX{} and Friends}, + Author = {Michael Wiedmann and Peter Karp}, + Organization = {}, + Address = {\url{http://www.miwie.org/tex-refs/}}, + Note = {}, + year = 2003, +} + + +@Article{dtk02.1:voss:mathematischen, + author = {Herbert Vo{\ss}}, + title = {Die mathematischen {F}unktionen von {P}ostscript}, + journal = dtk, + year = 2002, + volume = {1/02}, + altvolume = 1, + altnumber = 14, + month = mar, + pages = {40-47}, + annote = bretter, + keywords = {}, + abstract = { \PS, faktisch genauso alt wie {\TeX}, ist im + Verh{\"a}ltnis dazu allgemein noch weniger bekannt, wenn es + darum geht zu beurteilen, was es denn nun im eigentlichen + Sinne ist. Au{\ss}erdem wird h{\"a}ufig vergessen, dass + sich mit den \PS-Funktionen viele Dinge erledigen lassen, + bei denen sonst auf externe Programme zur{\"u}ckgegriffen + wird. Dies wird im Folgenden f{\"u}r die mathematischen + Funktionen im Zusammenhang mit dem Paket \texttt{pst-plot} + gezeigt. } +} + +@Book{companion, + author = {Michel Goosens and Frank Mittelbach and Sebastian Rahtz and Denis Roegel and Herbert Vo{\ss}}, + title = {The {\LaTeX} {G}raphics {C}ompanion}, + publisher = {{Addison-Wesley Publishing Company}}, + edition = 2, + year = {2007}, + address = {Reading, Mass.} +} + +@Book{PSTricks2, + author = {Herbert Vo\ss}, + title = {\texttt{PSTricks} -- {G}rafik f\"ur \TeX{} und \LaTeX}, + edition = {4.}, + publisher = {DANTE -- Lehmanns}, + year = {2007}, + address = {Heidelberg/Hamburg} +} + +@Book{LaTeXRef, + author = {Herbert Vo\ss}, + title = {\LaTeX\ Referenz}, + edition = {1.}, + publisher = {DANTE -- Lehmanns}, + year = {2007}, + address = {Heidelberg/Hamburg} +} + +@Book{diffraction, + author = {Bouasse, H. and Carrière, Z.}, + title = {Diffraction}, + publisher={Delagrave}, + year ={1923}, + address = {Paris}, + pages = 480 +} + + diff --git a/Master/texmf-dist/doc/generic/pst-diffraction/pst-diffraction-docDE.pdf b/Master/texmf-dist/doc/generic/pst-diffraction/pst-diffraction-docDE.pdf new file mode 100644 index 00000000000..31ba9b23925 Binary files /dev/null and b/Master/texmf-dist/doc/generic/pst-diffraction/pst-diffraction-docDE.pdf differ diff --git a/Master/texmf-dist/doc/generic/pst-diffraction/pst-diffraction-docDE.tex b/Master/texmf-dist/doc/generic/pst-diffraction/pst-diffraction-docDE.tex new file mode 100644 index 00000000000..15e73c2bc07 --- /dev/null +++ b/Master/texmf-dist/doc/generic/pst-diffraction/pst-diffraction-docDE.tex @@ -0,0 +1,323 @@ +\documentclass[dvips,ngerman,a4paper]{article} +\usepackage[T1]{fontenc} +\usepackage[utf8]{inputenc} +\usepackage[bmargin=2cm,tmargin=2cm]{geometry} +% +\usepackage{pstricks,pst-node,pst-grad,url} +\usepackage{pst-diffraction} +\let\PSTfileversion\fileversion +\let\PSTfiledate\filedate +% +\usepackage{ccfonts} +\usepackage[euler-digits]{eulervm} +\usepackage[scaled=0.85]{luximono} +\def\UrlFont{\small\ttfamily} +\makeatletter +\def\verbatim@font{\small\normalfont\ttfamily} +\makeatother +\usepackage{prettyref} +\usepackage{fancyhdr} +\usepackage{babel} +\usepackage[colorlinks,linktocpage]{hyperref} + +\pagestyle{fancy} +\def\Lcs#1{{\ttfamily\textbackslash #1}} +\lfoot{\small\ttfamily\jobname.tex} +\cfoot{Documentation} +\rfoot{\thepage} +\lhead{PSTricks} +\renewcommand{\headrulewidth}{0pt} +\renewcommand{\footrulewidth}{0pt} +\newcommand{\PS}{PostScript} +\newcommand\CMD[1]{\texttt{\textbackslash#1}} +\makeatother +\usepackage{framed} +\definecolor{shadecolor}{cmyk}{0.2,0,0,0} +\SpecialCoor + +\title{\texttt{pst-diffraction}\\[6pt] +\mbox{}\\[1cm] +Beugungsmuster für Beugung an kreisförmigen, rechteckigen und dreieckigen +Öffnungen +---\\[10pt] +{\normalsize v. \PSTfileversion (\PSTfiledate)}} +\author{% + \tabular[t]{c}Manuel Luque\\[3pt] + \url{ml@PSTricks.de} + \endtabular \and + \tabular[t]{c}Herbert Vo\ss\\[3pt] + \url{hv@PSTricks.de}\endtabular% +} +\date{\today} +\begin{document} +\maketitle +\vfill +Dank an Doris Wagner für die Ãœbersetzung der Dokumentation.\\ +Beiträge und Anmerkungen lieferten: Julien Cubizolles. + +\clearpage +\tableofcontents +\clearpage + + +\section{Versuchsaufbau} + +\begin{center} +\begin{pspicture}(0,-3)(12,3) +\pnode(0,0){S} \pnode(4,1){L'1} \pnode(4,-1){L'2} \pnode(6,1){E'1} \pnode(6,-1){E'2} +\pnode(6,0.5){E1}\pnode(6,-0.5){E2}\pnode(8.5,1.5){L1}\pnode(8.5,0.5){L2}\pnode(11.5,1.25){P} +% lentille L' +\pscustom[fillstyle=gradient,linecolor=blue,gradend=white]{% + \code{0.5 0.83333 scale} + \psarc(4,0){4.176}{-16.699}{16.699} + \psarc(12,0){4.176}{163.30}{196.699}} +% lentille L +\pscustom[fillstyle=gradient,linecolor=blue,gradend=white]{% + \code{1 1.5 scale} + \psarc(4.5,0){4.176}{-16.699}{16.699} + \psarc(12.5,0){4.176}{163.30}{196.699}} +\pspolygon[linestyle=none,fillstyle=vlines, + hatchcolor=yellow](S)(L'1)(E'1)(E1)(L1)(P)(L2)(E2)(E'2)(L'2) +\uput[90](4,1){$L'$}\uput[90](8.5,2){$L$} +\psdot(S)\uput[180](S){S} +\psline(S)(12,0)\psline[linewidth=2\pslinewidth](6,2)(6,0.5)\psline[linewidth=2\pslinewidth](6,-2)(6,-0.5) +\psline[linestyle=dashed](6,0.5)(6,-0.5)\psline(11.5,-3)(11.5,3)\psline(S)(L'1)(E'1)\psline(S)(L'2)(E'2) +\uput[0](P){P} +\psline(E1)(L1)(P)\psline(E2)(L2)(P)\psline[linestyle=dashed](8.5,0)(P) +%\rput(8.5,0){\psarc{->}(0,0){1.5}{0}{!1.25 3 atan}\uput[0](1.5;15){$\theta$}} +\uput[-90](10,0){$f$}\uput[0](6,2){E}\uput[135](6,0){T}\uput[45](11.5,0){O} +\end{pspicture} +\end{center} + +Das von der punktförmigen Lichtquelle S ausgehende monochromatische Licht verlässt die +Sammellinse L' achsenparallel und trifft auf die Blende E mit der Öffnung T. +Das Licht wird an der Öffnung gebeugt: +Jeder Punkt in der Öffnung wirkt als punktförmige Lichtquelle (Huygens'sches Prinzip) und es entsteht ein +Interferenzmuster (Beugungsmuster), welches auf einem Schirm beobachtet werden kann. Ist der Schirm von der +Blende hinreichend weit entfernt, so spricht man von Fraunhofer'scher Beugung. +In diesem Fall kann man annehmen, da"s alle Lichtstrahlen, die von der Öffnung her kommen und +denselben Punkt P auf dem Schirm treffen, parallel verlaufen.\\ +In der Praxis will man den Abstand zwischen Schirm und Blende klein halten. Deshalb +wird zwischen die Blende und den Schirm eine Sammellinse L montiert und der +Schirm (in der Zeichnung enthält er die Punkte P und O) in die Brennebene dieser Linse gestellt. +Links von der Linse parallel verlaufende Lichtstrahlen werden dann im Punkt P in der Brennebene +fokussiert. + +Die folgenden PSTricks-Befehle ermöglichen es, Beugungsmuster für +verschiedene Formen von Blendenöffnungen zu erstellen. Dabei wird die Verwendung von monochromatischem +Licht vorausgesetzt. Die Blenden können eine rechteckige, kreisförmige oder +dreieckige Öffnung haben. + +Als mögliche Optionen für die Befehle hat man die Abmessungen, die sich aus dem jeweiligen +Versuchsaufbau ergeben, etwa +den Radius bei Verwendung einer Lochblende. Au"serdem kann man die Wellenlänge des verwendeten Lichts +angeben (die zugehörige Farbe wird vom Paket dann automatisch zugeordnet). + +Es gibt drei Befehle, jeweils einen für rechteckige, kreisförmige und +dreieckige Öffnungen: + + +\begin{verbatim} +\psdiffractionRectangle[] +\psdiffractionCircular[] +\psdiffractionTriangle[] +\end{verbatim} + + +\section{Die Farbe} +Die gewünschte Lichtfarbe wird über die Angabe der zugehörigen Wellenlänge +$\lambda$ (in Nanometern) definiert. Für die Farbe rot beispielsweise gibt man als +Option \texttt{[lambda=632]} an wegen $\lambda_{\textrm{rot}}=632\,\textrm{nm}$. + +Die Umrechnung der Wellenlänge in den entsprechenden Wert des +\texttt{RGB}-Farbschemas wird von PostScript durchgeführt. Der zugrunde liegende +Code lehnt sich an an ein Fortran-Programm, welches man auf folgender Seite +findet: +\url{http://www.midnightkite.com/color.html}. + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\section{Beugung an einer rechteckigen Blendenöffnung} + +\begin{center} +\begin{pspicture}(-2,-1)(2,1.5) +\psframe(-0.5,-1)(0.5,1) +\pcline{<->}(-0.5,1.1)(0.5,1.1) +\Aput{$a$} +\pcline{<->}(0.6,1)(0.6,-1) +\Aput{$h=k\times a$} +\end{pspicture} +\end{center} + +Die Breite des Rechtecks mit der Fläche $h=k\times a$ wird +über den Buchstaben \texttt{[a]} definiert, die Höhe +über den Buchstaben \texttt{[k]}. +Die Brennweite der Linse gibt man durch \texttt{[f]} an, die Auflösung kann man mit der +Option [pixel] verändern. +Mit der Option \texttt{[contrast]} kann man erreichen, da"s die Nebenmaxima des +Beugungsmusters deutlicher werden.\\ +Ein Schwarzweissbild erhält man, wenn man die Option \texttt{[colorMode=0]} +verwendet, \texttt{[colorMode=1]} liefert das zugehörige Negativ. Die Optionen +\texttt{[colorMode=2]} bzw. \texttt{[colorMode=3]} liefern Farbbilder im +CMYK-Farbmodell bzw. RGB-Farbmodell. + +Defaultmä"sig sind folgende Werte voreingestellt: +\begin{itemize} + \item \texttt{[a=0.2e-3]} in m ; + \item \texttt{[k=1]} ; + \item \texttt{[f=5]} in m ; + \item \texttt{[lambda=650]} in nm ; + \item \texttt{[pixel=0.5]} ; + \item \texttt{[contrast=38]}, Maximalwert ; + \item \texttt{[colorMode=3]}. +\end{itemize} + +\begin{center} +\begin{pspicture}(-4,-4)(4,4) +\psdiffractionRectangle[f=2.5] +\uput[270](0,-3.5){$\backslash$\texttt{psdiffractionRectangle[f=2.5]}} +\end{pspicture} +\end{center} +\begin{center} +\begin{pspicture}(-2,-4.5)(2,4.5) +\psdiffractionRectangle[a=0.5e-3,k=0.5,f=4,pixel=0.5,colorMode=0] +\uput[270](0,-4.5){$\backslash$\texttt{psdiffractionRectangle[a=0.5e-3,k=0.5,f=4,colorMode=0]}} +\end{pspicture} +\end{center} +\begin{center} +\begin{pspicture}(-4,-2.5)(4,3) +\psdiffractionRectangle[a=0.5e-3,k=2,f=10,lambda=515,colorMode=1] +\uput[270](0,-2){$\backslash$\texttt{psdiffractionRectangle[a=0.5e-3,k=2,f=10,lambda=515,colorMode=1]}} +\end{pspicture} +\end{center} +\begin{center} +\begin{pspicture}(-4,-1)(4,1) +\psdiffractionRectangle[a=0.5e-3,k=20,f=10,pixel=0.5,lambda=450] +\uput[270](0,-0.5){$\backslash$\texttt{psdiffractionRectangle[a=0.5e-3,k=20,f=10,lambda=450]}} +\end{pspicture} +\end{center} + + + +\section{Beugung an zwei rechteckigen Blendenöffnungen} + +%\begin{shaded} +%Diese Simulation wurde von Julien +%\textsc{Cubizolles} erstellt. +%\end{shaded} +Man kann auch das Beugungsmuster zweier kongruenter Rechtecke (so nebeneinander +angeordnet, da"s ihre Grundlinie auf der $x$-Achse liegt) erstellen, +indem man zusätzlich +zu den Angaben für den Fall nur eines Rechtecks die Option \texttt{[twoSlit]} angibt. +Defaultmä"sig ist \texttt{[twoSlit]} deaktiviert. Den Abstand zwischen den beiden +Rechtecken kann man über die Option $s$ einstellen. Sie wird, wenn nichts anderes angegeben +wird, mit dem Wert +$\texttt{12e-3}\,\mathrm{m}$ belegt. +\begin{center} +\begin{pspicture}(-4,-1)(4,1) +\psdiffractionRectangle[a=0.5e-3,k=10,f=10,pixel=0.5,lambda=650,twoSlit,s=2e-3] +\uput[270](0,-0.5){$\backslash +$\texttt{psdiffractionRectangle[a=0.5e-3,k=10,f=10,pixel=0.5,lambda=650,twoSlit,s=2e-3]}} +\end{pspicture} +\end{center} +\clearpage + + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\section{Beugung an einer kreisförmigen Blendenöffnung} +Der Lochradius wird über den Buchstaben \texttt{r} angesprochen, beispielsweise +\texttt{[r=1e-3]}. Der Default ist $r=1$ mm. Im ersten Quadranten wird der Graph der +Intensitätsverteilung abgebildet (das Maximum in der Mitte wird abgeschnitten, +falls es über den oberen Rand der \texttt{pspicture}-Umgebung hinausgeht). + +\begin{center} +\begin{pspicture}(-5,-5)(5,5) +\psdiffractionCircular[r=0.5e-3,f=10,pixel=0.5,lambda=520] +\uput[270](0,-5){$\backslash$\texttt{psdiffractionCircular[r=0.5e-3,f=10,lambda=520]}} +\end{pspicture} +\end{center} + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\section{Beugung an zwei kreisförmigen Blendenöffnungen} +Es ist nur der Fall gleich gro"ser Radien vorgesehen, diesen gemeinsamen Radius +spezifiziert man wie vorher über \texttt{[r=\dots]}. Au"serdem muss man den +halben Abstand der beiden Kreismitten festlegen vermöge \texttt{[d=\dots]}, +beispielsweise \texttt{[d=3e-3]}. Zusätzlich muss man die Option +\texttt{[twoHole]} verwenden.\\ +Der Bildaufbau kann in diesem Fall etwas länger dauern\dots + +\begin{center} +\begin{pspicture}(-5,-5)(5,4) +\psdiffractionCircular[r=0.5e-3,f=10,d=3e-3,lambda=515,twoHole] +\uput[270](0,-4){$\backslash$\texttt{psdiffractionCircular[r=0.5e-3,f=10,d=3e-3,lambda=515,twoHole]}} +\end{pspicture} +\end{center} +\begin{center} +\begin{pspicture}(-6,-6)(6,6) +\psdiffractionCircular[r=0.5e-3,f=10,d=2e-3,lambda=700,twoHole,colorMode=0] +\uput[270](0,-5){$\backslash$\texttt{psdiffractionCircular[r=0.5e-3,f=10,d=2e-3,lambda=700,twoHole,colorMode=0]}} +\end{pspicture} +\end{center} + +Nicht in jedem Fall ergibt sich im mittleren Kreis ein Streifenmuster. Die Anzahl $N$ der Streifen +im Inneren ist gegeben durch $N=2,44\frac{d}{r}$. Man kann diesen Effekt also erst für +$N\geq2$ bzw. ab $d=\frac{2r}{1,22}$ beobachten (siehe +\url{http://www.unice.fr/DeptPhys/optique/diff/trouscirc/diffrac.html}). +\begin{center} +\begin{pspicture}(-5,-6)(5,5) +\psdiffractionCircular[r=0.5e-3,f=10,d=4.1e-4,lambda=632,twoHole] +\uput[270](0,-5){$\backslash$ +\texttt{psdiffractionCircular[r=0.5e-3,f=10,d=4.1e-4,lambda=632,twoHole]}} +\end{pspicture} +\end{center} + + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\section{Brechung an einer dreieckigen Blendenöffnung} +Es ist nur der Fall eines gleichseitigen Dreiecks vorgesehen. Als Option gibt man dessen Höhe +\texttt{[h]} an, welche sich bekanntlich über $h=\frac{\sqrt{3}}{2}s$ aus der Seitenlänge $s$ +des Dreiecks berechnet. Ein Schwarzweissbild erhält man mit \texttt{[colorMode=0]}. + +\begin{center} +\begin{pspicture}(-1,-1)(1,1) +\pspolygon*(0,0)(1;150)(1;210) +\pcline{|-|}(-0.732,-1)(0,-1) +\Aput{$h$} +\end{pspicture} + +\vspace{1cm} +$\backslash$\texttt{psdiffractionTriangle[f=10,h=1e-3,contrast=38,colorMode=]} + +\makebox[\linewidth]{% +\begin{pspicture}(-3,-3)(3,3) +\psdiffractionTriangle[f=10,h=1e-3,lambda=515,contrast=38] +\uput[270](0,-2.5){default color mode (>1)} +\end{pspicture} +\quad +\begin{pspicture}(-3,-3)(3,3) +\psdiffractionTriangle[f=10,h=1e-3,colorMode=1,contrast=38,lambda=515] +\uput[270](0,-2.5){\texttt{colorMode=1}} +\end{pspicture} +\quad +\begin{pspicture}(-3,-3)(3,3) +\psdiffractionTriangle[f=10,h=1e-3,colorMode=0,contrast=38,lambda=515] +\uput[270](0,-2.5){\texttt{colorMode=0}} +\end{pspicture}} + +\end{center} + + + + +%\section{Credits} + + +\bgroup +\nocite{*} +\raggedright +\bibliographystyle{plain} +\bibliography{pst-diffraction-doc} +\egroup + + + +\end{document} diff --git a/Master/texmf-dist/doc/generic/pst-diffraction/pst-diffraction-docE.pdf b/Master/texmf-dist/doc/generic/pst-diffraction/pst-diffraction-docE.pdf new file mode 100644 index 00000000000..30c9587ce01 Binary files /dev/null and b/Master/texmf-dist/doc/generic/pst-diffraction/pst-diffraction-docE.pdf differ diff --git a/Master/texmf-dist/doc/generic/pst-diffraction/pst-diffraction-docE.tex b/Master/texmf-dist/doc/generic/pst-diffraction/pst-diffraction-docE.tex new file mode 100644 index 00000000000..6ff5cacf745 --- /dev/null +++ b/Master/texmf-dist/doc/generic/pst-diffraction/pst-diffraction-docE.tex @@ -0,0 +1,317 @@ +\documentclass[dvips,english,a4paper]{article} +\usepackage[latin9]{inputenc}% +\usepackage[T1]{fontenc} +\usepackage[bmargin=2cm,tmargin=2cm]{geometry} +% +\usepackage{pstricks,pst-node,pst-grad,url} +\usepackage{pst-diffraction} +\let\PSTfileversion\fileversion +\let\PSTfiledate\filedate +% +\usepackage{ccfonts} +\usepackage[euler-digits]{eulervm} +\usepackage[scaled=0.85]{luximono} +\def\UrlFont{\small\ttfamily} +\makeatletter +\def\verbatim@font{\small\normalfont\ttfamily} +\makeatother +\usepackage{prettyref} +\usepackage{fancyhdr} +\usepackage{babel} +\usepackage[colorlinks,linktocpage]{hyperref} + +\pagestyle{fancy} +\def\Lcs#1{{\ttfamily\textbackslash #1}} +\lfoot{\small\ttfamily\jobname.tex} +\cfoot{Documentation} +\rfoot{\thepage} +\lhead{PSTricks} +\renewcommand{\headrulewidth}{0pt} +\renewcommand{\footrulewidth}{0pt} +\newcommand{\PS}{PostScript} +\newcommand\CMD[1]{\texttt{\textbackslash#1}} +\makeatother +\usepackage{framed} +\definecolor{shadecolor}{cmyk}{0.2,0,0,0} +\SpecialCoor + +\title{\texttt{pst-diffraction}\\[6pt] +Diffraction patterns for diffraction from circular, rectangular and triangular +apertures +\\[1cm] +---\\[10pt] +{\normalsize v. \PSTfileversion (\PSTfiledate)}} +\author{% + \tabular[t]{c}Manuel Luque\\[3pt] + \url{ml@PSTricks.de} + \endtabular \and + \tabular[t]{c}Herbert Vo\ss\\[3pt] + \url{hv@PSTricks.de}\endtabular% +} +\date{\today} +\begin{document} +\maketitle +\vfill\noindent +Thanks to Doris Wagner for help with the documentation.\\ +Also thanks to: Julien Cubizolles. + + +\clearpage +\tableofcontents + +\clearpage + +\section{Optical setup} + +\begin{center} +\begin{pspicture}(0,-3)(12,3) +\pnode(0,0){S} \pnode(4,1){L'1} \pnode(4,-1){L'2} \pnode(6,1){E'1} \pnode(6,-1){E'2} +\pnode(6,0.5){E1}\pnode(6,-0.5){E2}\pnode(8.5,1.5){L1}\pnode(8.5,0.5){L2}\pnode(11.5,1.25){P} +% lentille L' +\pscustom[fillstyle=gradient,linecolor=blue,gradend=white]{% + \code{0.5 0.83333 scale} + \psarc(4,0){4.176}{-16.699}{16.699} + \psarc(12,0){4.176}{163.30}{196.699}} +% lentille L +\pscustom[fillstyle=gradient,linecolor=blue,gradend=white]{% + \code{1 1.5 scale} + \psarc(4.5,0){4.176}{-16.699}{16.699} + \psarc(12.5,0){4.176}{163.30}{196.699}} +\pspolygon[linestyle=none,fillstyle=vlines, + hatchcolor=yellow](S)(L'1)(E'1)(E1)(L1)(P)(L2)(E2)(E'2)(L'2) +\uput[90](4,1){$L'$}\uput[90](8.5,2){$L$} +\psdot(S)\uput[180](S){S} +\psline(S)(12,0)\psline[linewidth=2\pslinewidth](6,2)(6,0.5)\psline[linewidth=2\pslinewidth](6,-2)(6,-0.5) +\psline[linestyle=dashed](6,0.5)(6,-0.5)\psline(11.5,-3)(11.5,3)\psline(S)(L'1)(E'1)\psline(S)(L'2)(E'2) +\uput[0](P){P} +\psline(E1)(L1)(P)\psline(E2)(L2)(P)\psline[linestyle=dashed](8.5,0)(P) +%\rput(8.5,0){\psarc{->}(0,0){1.5}{0}{!1.25 3 atan}\uput[0](1.5;15){$\theta$}} +\uput[-90](10,0){$f$}\uput[0](6,2){E}\uput[135](6,0){T}\uput[45](11.5,0){O} +\end{pspicture} +\end{center} + +Monochromatic light rays diverging from the focal point S of a positive lens L' emerge parallel to +the axis and strike the aperture stop E with the aperture T. +The light bends behind the aperture, this bending is called diffraction: +Every point in the opening acts as if it was a point source (Huygens's principle) and the +light waves of all those points overlap and produce an interference pattern (diffraction +pattern) on a screen. When the screen is very far away, the observed patterns are called +Fraunhofer diffraction patterns. In this case one can assume that the rays from the aperture +striking the same point P on the screen are parallel.\\ +In practice one wants to realize a short distance between the aperture stop and the screen. +Hence one sets up a converging lens L after the opening and installs the screen +into the focal plane (containing the points P and O) of this lens. Parallel rays incident on +the lens are then focused at a point P in the focal plane. + +With the following PSTricks-commands we can draw the diffraction patterns for different +geometric forms +of apertures. It is understood that only monochromatic light is used. The aperture stops can +have rectangular, circular or triangular openings. + +The options available are the dimensions of the aperture under consideration and of the particular optical +setting, e.g. the radius in case of an circular opening. Moreover one can choose the wavelength +of the light (the associated color will be given automatically by the package). + +There are three commands, for rectangular, circular and triangular openings respectively: + +\begin{verbatim} +\psdiffractionRectangle[] +\psdiffractionCircular[] +\psdiffractionTriangle[] +\end{verbatim} + + +\section{The color} +The desired color is defined by specifying the associated wavelength $\lambda$ (in nanometers). +Red for instance one gets by the option \texttt{[lambda=632]} because +red light has the wavelength $\lambda_{\textrm{rot}}=632\,\textrm{nm}$. + +The conversion of the wavelength into the associated \texttt{RGB}-value is done by PostScript. +The code is similar to the code of a FORTRAN program which can be found here: \\ +\url{http://www.midnightkite.com/color.html} + +\clearpage + +\section{Diffraction from a rectangular aperture} + +\begin{center} +\begin{pspicture}(-2,-1)(2,1.5) +\psframe(-0.5,-1)(0.5,1) +\pcline{<->}(-0.5,1.1)(0.5,1.1) +\Aput{$a$} +\pcline{<->}(0.6,1)(0.6,-1) +\Aput{$h=k\times a$} +\end{pspicture} +\end{center} + +The width of the rectangle with the area $h=k\times a$ is defined by the letter \texttt{[a]}, +the height by \texttt{[k]}. +The focal length is specified by \texttt{[f]}, the desired resolution in pixels [pixel]. +With the option \texttt{[contrast]} one can improve the visibility of the minor secondary +maxima more.\\ +We get a black and white picture if we use the option \texttt{[colorMode=0]}, +the option \texttt{[colorMode=1]} provides the associated negative pattern. The options +\texttt{[colorMode=2]} and \texttt{[colorMode=3]} render color pictures in the +CMYK and RGB color model respectively. + +By default the settings are as follows: +\begin{itemize} + \item \texttt{[a=0.2e-3]} in m ; + \item \texttt{[k=1]} ; + \item \texttt{[f=5]} in m ; + \item \texttt{[lambda=650]} in nm ; + \item \texttt{[pixel=0.5]} ; + \item \texttt{[contrast=38]}, maximal value ; + \item \texttt{[colorMode=3]}. +\end{itemize} + +\begin{center} +\begin{pspicture}(-4,-4)(4,4) +\psdiffractionRectangle[f=2.5] +\uput[270](0,-3.5){$\backslash$\texttt{psdiffractionRectangle[f=2.5]}} +\end{pspicture} +\end{center} +\begin{center} +\begin{pspicture}(-2,-4.5)(2,4.5) +\psdiffractionRectangle[a=0.5e-3,k=0.5,f=4,pixel=0.5,colorMode=0] +\uput[270](0,-4.5){$\backslash$\texttt{psdiffractionRectangle[a=0.5e-3,k=0.5,f=4,colorMode=0]}} +\end{pspicture} +\end{center} +\begin{center} +\begin{pspicture}(-4,-2.5)(4,3) +\psdiffractionRectangle[a=0.5e-3,k=2,f=10,lambda=515,colorMode=1] +\uput[270](0,-2){$\backslash$\texttt{psdiffractionRectangle[a=0.5e-3,k=2,f=10,lambda=515,colorMode=1]}} +\end{pspicture} +\end{center} +\begin{center} +\begin{pspicture}(-4,-1)(4,1) +\psdiffractionRectangle[a=0.5e-3,k=20,f=10,pixel=0.5,lambda=450] +\uput[270](0,-0.5){$\backslash$\texttt{psdiffractionRectangle[a=0.5e-3,k=20,f=10,lambda=450]}} +\end{pspicture} +\end{center} + +\section{Diffraction from two rectangular apertures} + +%\begin{shaded} +%This simulation was provided by Julien +%\textsc{Cubizolles}. +%\end{shaded} +It is also possible to render the diffraction pattern of two congruent rectangles +(placed parallel such that their base is located on the $x$-axis) +by using the option \texttt{[twoSlit]}. +By default this option is deactivated. +The distance of the two rectangles is specified by the option $s$. +The default for $s$ is $\texttt{12e-3}\,\mathrm{m}$. +\begin{center} +\begin{pspicture}(-4,-1)(4,1) +\psdiffractionRectangle[a=0.5e-3,k=10,f=10,pixel=0.5,lambda=650,twoSlit,s=2e-3] +\uput[270](0,-0.5){$\backslash +$\texttt{psdiffractionRectangle[a=0.5e-3,k=10,f=10,pixel=0.5,lambda=650,twoSlit,s=2e-3]}} +\end{pspicture} +\end{center} +\clearpage + + + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\section{Diffraction from a circular aperture} +The radius of the circular opening can be chosen via the letter \texttt{r}, e.g. +\texttt{[r=1e-3]}. The default is $r=1$ mm. In the first quadrant +PSTricks displays the graph of the intensity distribution (the maximum in the center will be +cropped if its height exceeds the margin of the \texttt{pspicture}-environment). + +\begin{center} +\begin{pspicture}(-5,-5)(5,5) +\psdiffractionCircular[r=0.5e-3,f=10,pixel=0.5,lambda=520] +\uput[270](0,-5){$\backslash$\texttt{psdiffractionCircular[r=0.5e-3,f=10,lambda=520]}} +\end{pspicture} +\end{center} + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\section{Diffraction from two circular apertures} +Only the case of equal radii is provided, this common radius can be defined like in the +previous section via \texttt{[r=\dots]}. +Furthermore one has to give the half distance of the circles measured from their centers by +\texttt{[d=\dots]}, e.g. \texttt{[d=3e-3]}. Also the option +\texttt{[twoHole]} has to be used.\\ +The rendering process could take some time in this case\dots + +\begin{center} +\begin{pspicture}(-5,-5)(5,4) +\psdiffractionCircular[r=0.5e-3,f=10,d=3e-3,lambda=515,twoHole] +\uput[270](0,-4){$\backslash$\texttt{psdiffractionCircular[r=0.5e-3,f=10,d=3e-3,lambda=515,twoHole]}} +\end{pspicture} +\end{center} +\begin{center} +\begin{pspicture}(-6,-6)(6,6) +\psdiffractionCircular[r=0.5e-3,f=10,d=2e-3,lambda=700,twoHole,colorMode=0] +\uput[270](0,-5){$\backslash$\texttt{psdiffractionCircular[r=0.5e-3,f=10,d=2e-3,lambda=700,twoHole,colorMode=0]}} +\end{pspicture} +\end{center} + +Not in every case bands occur in the central circle. The number $N$ of those inner +bands is given by $N=2.44\frac{d}{r}$. Thus this effect is not observable until $N\geq2$ +or $d=\frac{2r}{1.22}$ (see \url{http://www.unice.fr/DeptPhys/optique/diff/trouscirc/diffrac.html}). + +\begin{center} +\begin{pspicture}(-5,-6)(5,5) +\psdiffractionCircular[r=0.5e-3,f=10,d=4.1e-4,lambda=632,twoHole] +\uput[270](0,-5){$\backslash$ +\texttt{psdiffractionCircular[r=0.5e-3,f=10,d=4.1e-4,lambda=632,twoHole]}} +\end{pspicture} +\end{center} + + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\section{Diffraction from a triangular aperture} + +Only the case of an equilateral triangle is provided, whose height \texttt{[h]} has to be +defined as an option. As is generally known, $h$ can be computed from the length $s$ of +its side by $h=\frac{\sqrt{3}}{2}s$. A black and white picture can be obtained by using the +option \texttt{[colorMode=0]}. + + +\begin{center} +\begin{pspicture}(-1,-1)(1,1) +\pspolygon*(0,0)(1;150)(1;210) +\pcline{|-|}(-0.732,-1)(0,-1) +\Aput{$h$} +\end{pspicture} + +\vspace{1cm} +$\backslash$\texttt{psdiffractionTriangle[f=10,h=1e-3,contrast=38,colorMode=]} + +\makebox[\linewidth]{% +\begin{pspicture}(-3,-3)(3,3) +\psdiffractionTriangle[f=10,h=1e-3,lambda=515,contrast=38] +\uput[270](0,-2.5){default color mode (>1)} +\end{pspicture} +\quad +\begin{pspicture}(-3,-3)(3,3) +\psdiffractionTriangle[f=10,h=1e-3,colorMode=1,contrast=38,lambda=515] +\uput[270](0,-2.5){\texttt{colorMode=1}} +\end{pspicture} +\quad +\begin{pspicture}(-3,-3)(3,3) +\psdiffractionTriangle[f=10,h=1e-3,colorMode=0,contrast=38,lambda=515] +\uput[270](0,-2.5){\texttt{colorMode=0}} +\end{pspicture}} + +\end{center} + + + + + +%\section{Credits} + + +\bgroup +\nocite{*} +\raggedright +\bibliographystyle{plain} +\bibliography{pst-diffraction-doc} +\egroup + + +\end{document} diff --git a/Master/texmf-dist/doc/generic/pst-diffraction/pst-diffraction-docFR.pdf b/Master/texmf-dist/doc/generic/pst-diffraction/pst-diffraction-docFR.pdf new file mode 100644 index 00000000000..17c89328f41 Binary files /dev/null and b/Master/texmf-dist/doc/generic/pst-diffraction/pst-diffraction-docFR.pdf differ diff --git a/Master/texmf-dist/doc/generic/pst-diffraction/pst-diffraction-docFR.tex b/Master/texmf-dist/doc/generic/pst-diffraction/pst-diffraction-docFR.tex new file mode 100644 index 00000000000..f7203cd4c19 --- /dev/null +++ b/Master/texmf-dist/doc/generic/pst-diffraction/pst-diffraction-docFR.tex @@ -0,0 +1,299 @@ +\documentclass[dvips,a4paper]{article} +\usepackage[latin9]{inputenc}% +\usepackage[T1]{fontenc} +\usepackage[bmargin=2cm,tmargin=2cm]{geometry} +% +\usepackage{pstricks,pst-node,pst-grad,url} +\usepackage{pst-diffraction} +\let\PSTfileversion\fileversion +\let\PSTfiledate\filedate +% +\usepackage{ccfonts} +\usepackage[euler-digits]{eulervm} +\usepackage[scaled=0.85]{luximono} +\def\UrlFont{\small\ttfamily} +\makeatletter +\def\verbatim@font{\small\normalfont\ttfamily} +\makeatother +\usepackage{prettyref} +\usepackage{fancyhdr} + +\pagestyle{fancy} +\def\Lcs#1{{\ttfamily\textbackslash #1}} +\lfoot{\small\ttfamily\jobname.tex} +\cfoot{Documentation} +\rfoot{\thepage} +\lhead{PSTricks} +\renewcommand{\headrulewidth}{0pt} +\renewcommand{\footrulewidth}{0pt} +\newcommand{\PS}{PostScript} +\newcommand\CMD[1]{\texttt{\textbackslash#1}} +\makeatother +\usepackage{framed} +\definecolor{shadecolor}{cmyk}{0.2,0,0,0} +\SpecialCoor + +\title{\texttt{pst-diffraction}\\[6pt] +Diffraction \`a l'infini +par un trou rectangulaire, +un trou circulaire, deux trous circulaires, +un trou triangulaire.\\[1cm] +---\\[10pt] +{\normalsize v. \PSTfileversion (\PSTfiledate)}} +\author{% + \tabular[t]{c}Manuel Luque\\[3pt] + \url{ml@PSTricks.de} + \endtabular \and + \tabular[t]{c}Herbert Vo\ss\thanks{% + Thanks to Julien Cubizolles}% + \\[3pt] + \url{hv@PSTricks.de}\endtabular% +} +\date{\today} +\begin{document} +\maketitle + +\tableofcontents + +\clearpage +\section{Présentation et Montage} +\begin{center} +\begin{pspicture}(0,-3)(12,3) +\pnode(0,0){S} \pnode(4,1){L'1} \pnode(4,-1){L'2} \pnode(6,1){E'1} \pnode(6,-1){E'2} +\pnode(6,0.5){E1}\pnode(6,-0.5){E2}\pnode(8.5,1.5){L1}\pnode(8.5,0.5){L2}\pnode(11.5,1.25){P} +% lentille L' +\pscustom[fillstyle=gradient,linecolor=blue,gradend=white]{% + \code{0.5 0.83333 scale} + \psarc(4,0){4.176}{-16.699}{16.699} + \psarc(12,0){4.176}{163.30}{196.699}} +% lentille L +\pscustom[fillstyle=gradient,linecolor=blue,gradend=white]{% + \code{1 1.5 scale} + \psarc(4.5,0){4.176}{-16.699}{16.699} + \psarc(12.5,0){4.176}{163.30}{196.699}} +\pspolygon[linestyle=none,fillstyle=vlines, + hatchcolor=yellow](S)(L'1)(E'1)(E1)(L1)(P)(L2)(E2)(E'2)(L'2) +\uput[90](4,1){$L'$}\uput[90](8.5,2){$L$} +\psdot(S)\uput[180](S){S} +\psline(S)(12,0)\psline[linewidth=2\pslinewidth](6,2)(6,0.5)\psline[linewidth=2\pslinewidth](6,-2)(6,-0.5) +\psline[linestyle=dashed](6,0.5)(6,-0.5)\psline(11.5,-3)(11.5,3)\psline(S)(L'1)(E'1)\psline(S)(L'2)(E'2) +\uput[0](P){P} +\psline(E1)(L1)(P)\psline(E2)(L2)(P)\psline[linestyle=dashed](8.5,0)(P) +\rput(8.5,0){\psarc{->}(0,0){1.5}{0}{!1.25 3 atan}\uput[0](1.5;15){$\theta$}} +\uput[-90](10,0){$f$}\uput[0](6,2){E}\uput[135](6,0){T}\uput[45](11.5,0){O} +\end{pspicture} +\end{center} +Ceci est la reproduction de montage +proposé par Henri \textsc{Bouasse} dans son livre sur la +diffraction, page 25, publié aux éditions Delagrave en 1\,925. Les commentaires dont il accompagne ce +schéma sont les suivants :\newline +\begin{shaded} +« Une source ponctuelle unique S, très éloignée ou placée dans le plan focal +principal de la lentille collimatrice $L'$, fournit un faisceau cylindrique +unique de rayons. On le reçoit sur le plan~E, percé d'un trou~T dont la +forme caractérise le phénomène étudié. +Au-delà de l'écran~E la lumière est diffractée \textit{une infinité de +directions}, ou si l'on veut suivant une infinité de faisceaux +cylindriques. +Les rayons diffractés dans chaque direction sont concentrés aux divers points +du plan focal image d'une lunette accommodée sur l'infini, où ils forment la +\textit{figure de diffraction} : d'où le nom de \textit{phénomène à +l'infini}. De chaque faisceau cylindrique diffracté, l'objectif~L de la +lunette donne une image au point~P de son plan focal principal. +[\ldots]Au point P correspond un faisceau cylindrique antérieur à l'objectif +qui fait avec l'axe optique l'angle $\theta$ tel que : +$\overline{OP}=f\tan\theta\approx\theta$ +» +\end{shaded} + +Ces quelques commandes réalisées avec \texttt{PSTricks} permettent d'obtenir +les figures de diffraction \textit{à l'infini}, en lumière monochromatique, +d'un trou rectangulaire, d'un trou circulaire, de deux trous circulaires et +d'un trou triangulaire. + +Les dimensions des ouvertures sont bien sûr paramétrables, ainsi que le +choix de la longueur d'onde : la couleur s'adapte automatiquement, et des +divers paramètres du montage. + +Il y a trois commandes, l'une pour les ouvertures rectangulaires, l'autre +pour les ouvertures circulaires et la dernière pour une ouverture +triangulaire. +\begin{verbatim} +\psdiffractionRectangle[] +\psdiffractionCircular[] +\psdiffractionTriangle[] +\end{verbatim} +Nous allons passer en revue ces différentes commandes et leurs paramètres. +\section{La couleur de la radiation} +La longueur d'onde est définie par le paramètres \texttt{[lambda=632]} (si +l'on veut du rouge de longueur d'onde~:~ $\lambda=632$~nm), cette valeur est donc en~nm. La +conversion de la longueur d'onde dans le système \texttt{rgb} est une adaptation en +postscript de celle qu'on trouve sur~: +\url{http://www.physics.sfasu.edu/astro/color.html}. + + + +\section{Diffraction par une ouverture rectangulaire} + +\begin{center} +\begin{pspicture}(-2,-1)(2,1.5) +\psframe(-0.5,-1)(0.5,1) +\pcline{<->}(-0.5,1.1)(0.5,1.1) +\Aput{$a$} +\pcline{<->}(0.6,1)(0.6,-1) +\Aput{$h=k\times a$} +\end{pspicture} +\end{center} +On donnera la largeur de la fente \texttt{[a]} et le paramètre \texttt{[k]} +qui déterminera la hauteur de la fente $h=k\times a$. On choisira aussi la +distance focale de la lentille \texttt{[a]}, la résolution du tracé par la dimension du +\texttt{[pixel]}. On pourra jouer sur le contraste pour rendre les franges +éloignées un peu plus visibles avec \texttt{[contrast]}et éventuellement, obtenir un tracé en niveaux de +gris en négatif inverse avec \texttt{[colorMode=0]} ou +negativ avec \texttt{[colorMode=1]} ou cmyk couleur avec \texttt{[colorMode=2]} ou +rgb avec \texttt{[colorMode=3]}. + +Par défaut les paramètres ont les valeurs suivantes : +\begin{itemize} + \item \texttt{[a=0.2e-3]} en m ; + \item \texttt{[k=1]} ; + \item \texttt{[f=5]} en m ; + \item \texttt{[lambda=650]} en nm ; + \item \texttt{[pixel=0.5]} ; + \item \texttt{[contrast=38]}, valeur maximale ; + \item \texttt{[colorMode=3]}. +\end{itemize} + +\begin{center} +\begin{pspicture}(-4,-4)(4,4) +\psdiffractionRectangle[f=2.5] +\uput[270](0,-3.5){$\backslash$\texttt{psdiffractionRectangle[f=2.5]}} +\end{pspicture} +\end{center} +\begin{center} +\begin{pspicture}(-2,-4.5)(2,4.5) +\psdiffractionRectangle[a=0.5e-3,k=0.5,f=4,pixel=0.5,colorMode=0] +\uput[270](0,-4.5){$\backslash$\texttt{psdiffractionRectangle[a=0.5e-3,k=0.5,f=4,colorMode=0]}} +\end{pspicture} +\end{center} +\begin{center} +\begin{pspicture}(-4,-2.5)(4,3) +\psdiffractionRectangle[a=0.5e-3,k=2,f=10,lambda=515,colorMode=1] +\uput[270](0,-2){$\backslash$\texttt{psdiffractionRectangle[a=0.5e-3,k=2,f=10,lambda=515,colorMode=1]}} +\end{pspicture} +\end{center} +\begin{center} +\begin{pspicture}(-4,-1)(4,1) +\psdiffractionRectangle[a=0.5e-3,k=20,f=10,pixel=0.5,lambda=450] +\uput[270](0,-0.5){$\backslash$\texttt{psdiffractionRectangle[a=0.5e-3,k=20,f=10,lambda=450]}} +\end{pspicture} +\end{center} + + +\section{Diffraction par deux ouverture rectangulaire} + +%\begin{shaded} +%This simulation was provided by Julien +%\textsc{Cubizolles}. +%\end{shaded} +\begin{center} +\begin{pspicture}(-4,-1)(4,1) +\psdiffractionRectangle[a=0.5e-3,k=10,f=10,pixel=0.5,lambda=650,twoSlit,s=2e-3] +\uput[270](0,-0.5){$\backslash +$\texttt{psdiffractionRectangle[a=0.5e-3,k=10,f=10,pixel=0.5,lambda=650,twoSlit,s=2e-3]}} +\end{pspicture} +\end{center} + + + +\section{Diffraction par une ouverture circulaire} +On donnera le rayon du trou : \texttt{[r=1e-3]}, $r=1$ mm par défaut. Les +variations de l'intensité sont superposées à la figure de diffraction dans +le premier quadrant (le maximum au centre a été écrêté). +\begin{center} +\begin{pspicture}(-5,-5)(5,5) +\psdiffractionCircular[r=0.5e-3,f=10,pixel=0.5,lambda=520] +\uput[270](0,-5){$\backslash$\texttt{psdiffractionCircular[r=0.5e-3,f=10,lambda=520]}} +\end{pspicture} +\end{center} + + +\section{Diffraction par deux trous circulaires} +Les deux trous sont identiques, outre le rayon commun des trous on fixera la +demi-distance entre les centres des deux trous avec : \texttt{[d]} et pour +ce cas de figure on activera l'option \texttt{[twoHole]}. On notera que +les temps de calculs d'allongent\ldots +\begin{center} +\begin{pspicture}(-5,-5)(5,4) +\psdiffractionCircular[r=0.5e-3,f=10,d=3e-3,lambda=515,twoHole] +\uput[270](0,-4){$\backslash$\texttt{psdiffractionCircular[r=0.5e-3,f=10,d=3e-3,lambda=515,twoHole]}} +\end{pspicture} +\end{center} +\begin{center} +\begin{pspicture}(-6,-6)(6,6) +\psdiffractionCircular[r=0.5e-3,f=10,d=2e-3,lambda=700,twoHole,colorMode=0] +\uput[270](0,-5){$\backslash$\texttt{psdiffractionCircular[r=0.5e-3,f=10,d=2e-3,lambda=700,twoHole,colorMode=0]}} +\end{pspicture} +\end{center} +Le cas limite d'obtention de franges se vérifie avec $\displaystyle d +=\frac{a}{1.22}$. Voir~: + +\url{http://www.unice.fr\DeptPhys\optique\optique.html}. +\begin{center} +\begin{pspicture}(-5,-6)(5,5) +\psdiffractionCircular[r=0.5e-3,f=10,d=4.1e-4,lambda=632,twoHole] +\uput[270](0,-5){$\backslash$\texttt{psdiffractionCircular[r=0.5e-3,f=10,d=4.1e-4,lambda=632,twoHole]}} +\end{pspicture} +\end{center} + +\section{Diffraction par un trou triangulaire équilatéral} +Le triangle équilatéral est défini par sa hauteur \texttt{[h]} en m. Pour le +triangle, on peut obtenir la figure en niveaux de gris avec l'option +\texttt{[colorMode=0]}. L'étude théorique de cette diffraction a été faite par +\textsc{Airy}, on la trouve dans le livre d'Henri \textsc{Bouasse} sur la +diffraction, pages 114 et 115. + +\begin{center} +\begin{pspicture}(-1,-1)(1,1) +\pspolygon*(0,0)(1;150)(1;210) +\pcline{|-|}(-0.732,-1)(0,-1) +\Aput{$h$} +\end{pspicture} + +\vspace{1cm} +$\backslash$\texttt{psdiffractionTriangle[f=10,h=1e-3,contrast=38,colorMode=]} + +\makebox[\linewidth]{% +\begin{pspicture}(-3,-3)(3,3) +\psdiffractionTriangle[f=10,h=1e-3,lambda=515,contrast=38] +\uput[270](0,-2.5){default color mode (>1)} +\end{pspicture} +% +\begin{pspicture}(-3,-3)(3,3) +\psdiffractionTriangle[f=10,h=1e-3,colorMode=1,contrast=38,lambda=515] +\uput[270](0,-2.5){\texttt{colorMode=1}} +\end{pspicture} +% +\begin{pspicture}(-3,-3)(3,3) +\psdiffractionTriangle[f=10,h=1e-3,colorMode=0,contrast=38,lambda=515] +\uput[270](0,-2.5){\texttt{colorMode=0}} +\end{pspicture}} + +\end{center} + + + + + +%\section{Credits} + + +\bgroup +\nocite{*} +\raggedright +\bibliographystyle{plain} +\bibliography{pst-diffraction-doc} +\egroup + + +\end{document} diff --git a/Master/texmf-dist/source/generic/pst-diffraction/Makefile b/Master/texmf-dist/source/generic/pst-diffraction/Makefile new file mode 100644 index 00000000000..e23675a5e5c --- /dev/null +++ b/Master/texmf-dist/source/generic/pst-diffraction/Makefile @@ -0,0 +1,48 @@ + +# `Makefile' for `pst-diffraction.pdf', hv, 2007/03/17 + +.SUFFIXES : .tex .ltx .dvi .ps .pdf .eps + +PACKAGE = pst-diffraction + +MAIN = $(PACKAGE)-docE + +LATEX = latex + +ARCHNAME = $(MAIN)-$(shell date +%y%m%d) + +ARCHFILES = $(PACKAGE).sty $(PACKAGE).tex $(PACKAGE).pro $(MAIN).tex README Changes Makefile + +all : doc clean +doc: $(MAIN).pdf + +$(MAIN).pdf : $(MAIN).ps + GS_OPTIONS=-dAutoRotatePages=/None ps2pdf $< + +$(MAIN).ps : $(MAIN).dvi + dvips $< + +$(MAIN).dvi : $(MAIN).tex + $(LATEX) $< + $(LATEX) $< + if ! test -f $(basename $<).glo ; then touch $(basename $<).glo; fi + if ! test -f $(basename $<).idx ; then touch $(basename $<).idx; fi + makeindex -s gglo.ist -t $(basename $<).glg -o $(basename $<).gls \ + $(basename $<).glo + makeindex -t $(basename $<).ilg -o $(basename $<).ind \ + $(basename $<).idx + bibtex $(basename $<) + $(LATEX) $< + $(LATEX) $< + +clean : + $(RM) $(addprefix $(MAIN), .log .aux .glg .glo .gls .ilg .idx .ind .tmp .toc .out .blg .Roessler .bbl ) + $(RM) $(addprefix $(MAIN), .dvi .ps) + +veryclean : clean + $(RM) $(addprefix $(MAIN), .pdf .bbl .blg) + +arch : + zip $(ARCHNAME).zip $(ARCHFILES) + +# EOF diff --git a/Master/texmf-dist/tex/generic/pst-diffraction/pst-diffraction.tex b/Master/texmf-dist/tex/generic/pst-diffraction/pst-diffraction.tex new file mode 100644 index 00000000000..d00c540e315 --- /dev/null +++ b/Master/texmf-dist/tex/generic/pst-diffraction/pst-diffraction.tex @@ -0,0 +1,387 @@ +%% +%% This is file `pst-diffraction.tex', +%% +%% IMPORTANT NOTICE: +%% +%% Package `pst-diffraction.tex' +%% +%% Manuel Luque +%% Herbert Voss +%% +%% with contributions of Julien Cubizolles +%% +%% 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. +%% +%% DESCRIPTION: +%% `pst-diffraction' is a PSTricks package to plot special diffractions +%% +%% +\csname PSTDiffractionLoaded\endcsname +\let\PSTDiffractionLoaded\endinput +% Require PSTricks +\ifx\PSTricksLoaded\endinput\else\input pstricks.tex\fi +\ifx\PSTXKeyLoaded\endinput\else \input pst-xkey \fi +% +\def\fileversion{2.10b}% +\def\filedate{2007/09/07}% +\message{`PST-diffraction v\fileversion, \filedate\space (ML,hv)}% +\edef\PstAtCode{\the\catcode`\@} \catcode`\@=11\relax +\pst@addfams{pst-diff} + +\define@key[psset]{pst-diff}{a}{\def\psk@Diffraction@Slit@A{#1 }} % largeur de la fente en m +\define@key[psset]{pst-diff}{k}{\pst@checknum{#1}\psk@Diffraction@Slit@k } +\define@key[psset]{pst-diff}{r}{\def\psk@Diffraction@Circular@r{#1 }} % rayon du trou en m +\define@key[psset]{pst-diff}{d}{\def\psk@Diffraction@Circular@d{#1 }} % demi-distance entre les trous en m +\define@key[psset]{pst-diff}{h}{\def\psk@Diffraction@Triangle@h{#1 }} % hauteur du triangle en m +\define@key[psset]{pst-diff}{s}{\def\psk@Diffraction@Slit@s{#1 }} % distance entre les fentes +\define@key[psset]{pst-diff}{lambda}{\pst@checknum{#1}\psk@Diffraction@Slit@Lambda }% en nm +\define@key[psset]{pst-diff}{f}{\pst@checknum{#1}\psk@Diffraction@Slit@F }% focus en m +\define@key[psset]{pst-diff}{gamma}{\pst@checknum{#1}\psk@Diffraction@gamma@G } +\define@key[psset]{pst-diff}{pixel}{\pst@checknum{#1}\psk@Diffraction@Slit@pixel } +\define@key[psset]{pst-diff}{colorMode}{\pst@getint{#1}\psk@Diffraction@colorMode } +% 0 black and white inverse +% 1 black and white +% 2 color cmyk +%>2 color RGB +% +\define@key[psset]{pst-diff}{contrast}{% + \pst@cnta=#1\relax + \ifnum\pst@cnta>38 + \typeout{!!! The contrast value is `\the\pst@cnta', but cannot be greater than 38. + Contrast=38 forced!}% + \pst@cnta=38 + \fi% + \edef\psk@Diffraction@Slit@contrast{\the\pst@cnta\space}} +% +\define@boolkey[psset]{pst-diff}[Pst@Diffraction@Circular@]{twoHole}[true]{} +\define@boolkey[psset]{pst-diff}[Pst@Diffraction@Rectangular@]{twoSlit}[true]{} +% +\psset[pst-diff]{a=0.2e-3,f=5,k=1,r=1e-3, + d=6e-3,s=12e-3,h=0.5e-3, + lambda=650,pixel=0.5, + contrast=38,gamma=0.8,twoHole=false,twoSlit=false,colorMode=3} +% +% load the pstricks-add.pro only, if not already done +\ifx\PSTricksAddLoaded\endinput\else\pstheader{pstricks-add.pro}\fi +% +\def\tx@RGBtoGRAY{ tx@addDict begin RGBtoGRAY end } +\def\tx@RGBtoCMYK{ tx@addDict begin RGBtoCMYK end } +% +\def\psdiffractionRectangle{\pst@object{psdiffractionRectangle}} +\def\psdiffractionRectangle@i{% + \begin@SpecialObj% + \addto@pscode{% + % les dimensions sont en mètres + /focus \psk@Diffraction@Slit@F def + /widthSlit \psk@Diffraction@Slit@A def + /heightSlit \psk@Diffraction@Slit@k widthSlit mul def + /Gamma \psk@Diffraction@gamma@G def + /pixel \psk@Diffraction@Slit@pixel def + /SlitSeparation \psk@Diffraction@Slit@s def + \psk@Diffraction@Slit@Lambda tx@addDict begin wavelengthToRGB Red Green Blue end + /Blue ED /Green ED /Red ED + 0 0 translate + /ondeLongueur \psk@Diffraction@Slit@Lambda 1e-9 mul def % en m + % les bornes sont en pt + % +- 4 fois le premier minimum + /bornexpt 1 widthSlit div focus mul ondeLongueur mul 2845 mul def + /borneypt 1 heightSlit div focus mul ondeLongueur mul 2845 mul def + % Les calculs commencent... + borneypt 4 mul neg pixel 4 borneypt mul { + /ordonneept exch def + % y en m + /ordonnee ordonneept 2845 div def + /argumenty ordonnee heightSlit mul ondeLongueur div focus div def + /argumentyRad argumenty Pi mul def + /argumentyDeg argumenty 180 mul def + /sincy argumentyRad 0 eq {1}{argumentyDeg sin argumentyRad div} ifelse def + bornexpt 4 mul neg pixel 4 bornexpt mul { + /abscissept exch def + % x en m + /abscisse abscissept 2845 div def + /argumentx abscisse widthSlit mul ondeLongueur div focus div def + /argumentcosx abscisse SlitSeparation mul ondeLongueur div focus div def + /argumentxRad argumentx Pi mul def + /argumentxDeg argumentx 180 mul def + /argumentcosxDeg argumentcosx 180 mul def + % sinus cardinal + /sincx argumentxRad 0 eq {1} { argumentxDeg sin argumentxRad div } ifelse def + % + 1 1e\psk@Diffraction@Slit@contrast sincx dup mul sincy dup mul + \ifPst@Diffraction@Rectangular@twoSlit mul argumentcosxDeg cos dup mul \fi + mul neg exp sub + dup dup Red mul 3 -1 roll Green mul 3 -1 roll Blue mul + \ifcase\psk@Diffraction@colorMode + \tx@RGBtoGRAY neg 1 add setgray \or + \tx@RGBtoGRAY setgray \or + \tx@RGBtoCMYK setcmykcolor + \else setrgbcolor \fi + % + % newpath abscissept ordonneept 1 0 360 arc closepath fill stroke + % 30 juillet 2004 + newpath + abscissept pixel 2 div sub ordonneept pixel 2 div sub moveto + pixel 0 rlineto + 0 pixel rlineto + pixel neg 0 rlineto closepath fill stroke + } for + } for + }% \addto@pscode + \end@OpenObj% +} +% +\def\psdiffractionCircular{\pst@object{psdiffractionCircular}} +\def\psdiffractionCircular@i{% + \begin@SpecialObj% + \addto@pscode{% + % les dimensions sont en mètres + /focus \psk@Diffraction@Slit@F def + /Gamma \psk@Diffraction@gamma@G def + /pixel \psk@Diffraction@Slit@pixel def + /contrast 1e\psk@Diffraction@Slit@contrast def + /r \psk@Diffraction@Circular@r def + /d \psk@Diffraction@Circular@d def + \psk@Diffraction@Slit@Lambda tx@addDict begin wavelengthToRGB Red Green Blue end + /Blue ED /Green ED /Red ED +% 0 0 translate + %% Handbook of mathematical functions + %% ED. M.ABRAMOWITZ & I.A. STEGUN + %% Chap. 9 : Bessel Functions of Integer Order + %% Adapté en ps d'après le code de D.Martin + %% http://perso.univ-rennes1.fr/daniel.martin/melina/www/code_html/specfct/bejy01.html + % + % les coefficients pour le calcul des fonctions de Bessel + /COSO {0.79788456 1 X div sqrt mul X 0.78539816 sub RadtoDeg cos mul} def + /SINO {.79788456 1 X div sqrt mul X 0.78539816 sub RadtoDeg sin mul} def + % + /PO { 0.209388721e-6 8 X div dup mul mul 0.207337064e-5 sub 8 X div dup mul mul + 0.273451041e-4 add 8 X div dup mul mul 0.109862863e-2 sub 8 X div dup mul mul 1 add } def + /QO {-0.934945152e-7 8 X div dup mul mul 0.762109516e-6 add 8 X div dup mul mul + 0.691114765e-5 sub 8 X div dup mul mul 0.143048876e-3 add 8 X div dup mul mul + 0.15624499998e-1 sub 8 X div mul } def + /P1 { -0.240337019e-6 8 X div dup mul mul 0.2457520174e-5 add 8 X div dup mul mul + 0.351639649e-4 sub 8 X div dup mul mul 0.183105e-2 add 8 X div dup mul mul 1 add } def + /Q1 { 0.105787412e-6 8 X div dup mul mul 0.88228987e-6 sub 8 X div dup mul mul + 0.8449199096e-5 add 8 X div dup mul mul 0.2002690873e-3 sub 8 X div dup mul mul + 0.4687499995e-1 add 8 X div mul } def + % les fonctions de Bessel + /J0 { + /X exch def + X 0 lt { /X X neg def } if + X 8 le { X 0 eq { 1 }{ + 0.33848331e-10 X X dup mul 0.2895532e-7 sub X dup mul mul + 0.113825372e-4 add X dup mul mul 0.258008068e-2 sub X dup mul mul + 0.351527847 add X dup mul mul 27.7849812 sub X dup mul mul + 0.114749848e4 add X dup mul mul 0.198342667e5 sub X dup mul mul + 0.813241206e5 add + X dup mul 0.49676332e3 add X dup mul mul 0.813241206e5 add div } ifelse + }{ PO COSO mul QO SINO mul sub } ifelse + } def + % + /J1 { + /X exch def + X 0 lt {/X X neg def /Signe {neg} def}{/Signe {} def} ifelse + X 8 le { X 0 eq {0}{ + -0.47427072618e-9 X dup mul mul 0.35236457401e-6 add X dup mul mul + -0.11764050281e-3 add X dup mul mul 0.21979683808e-1 add X dup mul mul + -0.23652383961e+1 add X dup mul mul 0.13812534164e+3 add X dup mul mul + -0.373650260707e+4 add X dup mul mul 0.31625993793e+5 add + X dup mul 0.433493017e+3 add X dup mul mul 0.6325198765e+5 add div X mul + Signe } ifelse + }{ P1 SINO mul Q1 COSO mul add Signe } ifelse + } def + % J1 cardinal au carré : (J1(x)/x)^2 + /J1Card { dup 0 eq {1}{J1 X div dup mul 4 mul} ifelse } def + % + /cm { 28.45 mul } def % centimétres -> pts + /m2pt { 284.5 mul } def % métres -> pts + /L { \psk@Diffraction@Slit@Lambda 1e-9 mul } bind def % longueur d'onde en m + /Coeff { TwoPi r mul L focus mul div } bind def + /Facteur { 180 d mul L focus mul div } bind def + /R_limite { 20 Coeff div 100 mul } bind def % en cm + % 05 08 2004 + \ifPst@Diffraction@Circular@twoHole + R_limite 10 ge { /R_limite 10 def } if + newpath + R_limite neg 1.2 mul cm dup moveto + R_limite 2.4 mul cm 0 rlineto + 0 R_limite 2.4 mul cm rlineto + R_limite neg 2.4 mul cm 0 rlineto + closepath + \ifnum\psk@Diffraction@colorMode=\z@ 1 \else 0 \fi + setgray fill + R_limite neg cm 1 R_limite cm { + /xPts exch def + /x { xPts 2845 div } bind def + R_limite neg cm 1 R_limite cm { + /yPts exch def + /y { yPts 2845 div } bind def + /R { x dup mul y dup mul add sqrt } bind def % R en m + /m Coeff R mul def + newpath + xPts 0.5 sub yPts 0.5 sub moveto + 1 0 rlineto + 0 1 rlineto + 1 neg 0 rlineto + closepath fill + 1 1e38 m J1Card Facteur x mul cos dup mul mul neg exp sub + dup dup + Red mul 3 -1 roll + Green mul 3 -1 roll + Blue mul + \ifcase\psk@Diffraction@colorMode + \tx@RGBtoGRAY neg 1 add setgray \or + \tx@RGBtoGRAY setgray \or + \tx@RGBtoCMYK setcmykcolor + \else setrgbcolor \fi + stroke + } for + } for + % + \else + newpath + R_limite neg 1.5 mul cm dup moveto + R_limite 3 mul cm 0 rlineto + 0 R_limite 3 mul cm rlineto + R_limite neg 3 mul cm 0 rlineto + closepath + \ifnum\psk@Diffraction@colorMode=\z@ 1 \else 0 \fi setgray fill + 0 0.01 R_limite { + /Rayon exch def + /m Coeff Rayon 0.01 mul mul def + newpath + 0 0 Rayon cm 0 360 arc + 1 1e38 m J1Card neg exp sub Red mul % R + 1 1e38 m J1Card neg exp sub Green mul % G + 1 1e38 m J1Card neg exp sub Blue mul % B + \ifcase\psk@Diffraction@colorMode + \tx@RGBtoGRAY neg 1 add setgray \or + \tx@RGBtoGRAY setgray \or + \tx@RGBtoCMYK setcmykcolor + \else setrgbcolor \fi + stroke + } for + newpath + 0 0 moveto + R_limite 1.5 mul cm 0 rlineto + 0 R_limite 1.5 mul cm rlineto + R_limite neg 1.5 mul cm 0 rlineto + closepath + clip + 0.95 setgray fill + newpath + 0 0 J1Card 1000 mul moveto + 0 0.01 R_limite { + /Rayon exch def + /m Coeff Rayon 0.01 mul mul def + Rayon cm m J1Card 1000 mul lineto + } for + \ifnum\psk@Diffraction@colorMode=\z@ 1 \else 0 \fi setgray + \pst@number\pslinewidth setlinewidth + stroke + \pst@number\pslinewidth 2 div setlinewidth + /grille { + -10 1 10 { + /X exch def + X cm -10 cm moveto + X cm 10 cm lineto + X 0 eq { 0 1 0 }{ 0 0 1 } ifelse + \ifcase\psk@Diffraction@colorMode + \tx@RGBtoGRAY neg 1 add setgray \or + \tx@RGBtoGRAY setgray \or + \tx@RGBtoCMYK setcmykcolor + \else setrgbcolor \fi + stroke + } for + -10 1 10 { + /Y exch def + -10 cm Y cm moveto + 10 cm Y cm lineto + Y 0 eq { 0 1 0 }{ 0 0 1 } ifelse + \ifcase\psk@Diffraction@colorMode + \tx@RGBtoGRAY neg 1 add setgray \or + \tx@RGBtoGRAY setgray \or + \tx@RGBtoCMYK setcmykcolor + \else setrgbcolor \fi + stroke + } for + } def + newpath + grille + \fi + }% \addto@pscode + \end@SpecialObj% +} +%% +% +\def\psdiffractionTriangle{\pst@object{psdiffractionTriangle}} +\def\psdiffractionTriangle@i{% + \begin@SpecialObj + \addto@pscode{% + 0 0 translate + % les dimensions sont en mètres + /f \psk@Diffraction@Slit@F def + /h \psk@Diffraction@Triangle@h def + /Gamma \psk@Diffraction@gamma@G def + /L { \psk@Diffraction@Slit@Lambda 1e-9 mul} bind def % longueur d'onde en m + /pixel \psk@Diffraction@Slit@pixel def + /k { TwoPi f L mul div } bind def + /p { 30 dup sin exch cos div } bind def + \psk@Diffraction@Slit@Lambda tx@addDict begin wavelengthToRGB Red Green Blue end + /Blue ED /Green ED /Red ED + % les bornes sont en pt + % +- 4 fois le premier minimum + /bornexpt 1 h div f mul L mul 2845 mul def + /borneypt 1 h div f mul L mul 2845 mul def + /P { + 1 k y mul x p y mul sub mul div + 1 k h mul x p y mul sub mul RadtoDeg cos sub + mul + 1 k y mul x p y mul add mul div + 1 k h mul x p y mul add mul RadtoDeg cos sub + mul sub + } def + /Q { + 1 k y mul x p y mul sub mul div + k h mul x p y mul sub mul RadtoDeg sin + mul + 1 k y mul x p y mul add mul div + k h mul x p y mul add mul RadtoDeg sin + mul sub + } def + /I { P dup mul Q dup mul add } def + /I_max 0 store + % Les calculs commencent... + borneypt 4 mul neg pixel 4 borneypt mul { + /ordonneept exch def + % y en m + /y ordonneept 2845 div def + bornexpt 4 mul neg pixel 4 bornexpt mul { + /abscissept exch def + % x en m + /x abscissept 2845 div def + I_max I le { /I_max I def } if + % + 1.05 1e\psk@Diffraction@Slit@contrast I neg exp sub + dup dup + Red mul 3 -1 roll Green mul 3 -1 roll Blue mul + \ifcase\psk@Diffraction@colorMode + \tx@RGBtoGRAY neg 1 add setgray \or + \tx@RGBtoGRAY setgray \or + \tx@RGBtoCMYK setcmykcolor + \else setrgbcolor \fi + % + newpath abscissept pixel 2 div sub ordonneept pixel 2 div sub moveto + pixel 0 rlineto + 0 pixel rlineto + pixel neg 0 rlineto closepath fill stroke + } for + } for + }% addto@pscode + \end@SpecialObj% +} +% +\catcode`\@=\PstAtCode\relax +\endinput diff --git a/Master/texmf-dist/tex/latex/pst-diffraction/pst-diffraction.sty b/Master/texmf-dist/tex/latex/pst-diffraction/pst-diffraction.sty new file mode 100644 index 00000000000..441908f3a57 --- /dev/null +++ b/Master/texmf-dist/tex/latex/pst-diffraction/pst-diffraction.sty @@ -0,0 +1,14 @@ +\RequirePackage{pstricks} +\RequirePackage{pst-xkey} +\ProvidesPackage{pst-diffraction}[2009/09/04 package wrapper for + pst-diffraction.tex (hv)] +\input{pst-diffraction.tex} +\ProvidesFile{pst-diffraction.tex} + [\filedate\space v\fileversion\space `PST-diffraction' (ml,hv)] +\IfFileExists{pst-diffraction.pro}{\@addtofilelist{pst-diffraction.pro}}{}% +\InputIfFileExists{pst-diffraction.cfg}{% + \PackageInfo{pst-diffraction}% + {Local config file pst-diffraction.cfg used} +}{} +\endinput + diff --git a/Master/tlpkg/tlpsrc/collection-pstricks.tlpsrc b/Master/tlpkg/tlpsrc/collection-pstricks.tlpsrc index 8c49608001e..4f963b9354f 100644 --- a/Master/tlpkg/tlpsrc/collection-pstricks.tlpsrc +++ b/Master/tlpkg/tlpsrc/collection-pstricks.tlpsrc @@ -14,6 +14,7 @@ depend Package/pst-blur depend Package/pst-circ depend Package/pst-coil depend Package/pst-dbicons +depend Package/pst-diffraction depend Package/pst-eps depend Package/pst-eucl depend Package/pst-fill diff --git a/Master/tlpkg/tlpsrc/pst-diffraction.tlpsrc b/Master/tlpkg/tlpsrc/pst-diffraction.tlpsrc new file mode 100644 index 00000000000..5bc25545dab --- /dev/null +++ b/Master/tlpkg/tlpsrc/pst-diffraction.tlpsrc @@ -0,0 +1,2 @@ +name pst-diffraction +category Package -- cgit v1.2.3