Lenses and Mirrors: PST-optic v0.7

Manuel Luque^{∗}  Herbert Voß^{†}

2003/01/23

Contents

I Lenses and Mirrors 3

1 General Options 3

2 \lens  4

2.1 The Coordinates of the

predefined Nodes . . . . . 4 2.2 The Lens Type . . . . . . 5

3 \eye  7
4 \Arrows  7
5 \psOutLine  8
6 \psBeforeLine  9
7 \Parallel  9
8 \Transform  10
9 \rayInterLens  12

10 Mirrors 13 10.1 \mirrorCVG . . . . . . . . 13 10.2 \mirrorDVG . . . . . . . . 13 10.3 Drawing Rays in the Mir-

ror Macros . . . . . . . . . 14

                                      10.4 \planMirrorRay . . . . . 15

10.5 \symPlan . . . . . . . . . 15 11 Beam Light 17

                                   12 \telescope  17

II Additional Macros 20

                                   13 \ABinterCD  20
                                   14 \nodeBetween  20

III Examples 21

15 A simple colored System 21 16 A Magnifier 22 17 Two Lenses 23

∗Mluque5130@aol.com

†voss@perce.de

18 Divergent Lenses 25 18.1 Real Image . . . . . . . . 25 18.2 Virtual Image . . . . . . . 26

19 A Microscope 28 20 Beam Light 30

20.1 High Beam Light . . . . . 30

20.2 Low Beam Light . . . . . 31

21 Telescope 32

Introduction

pstricks writes pure PostScript[2] code, so it is not possible to run TEX files with pdfL^{A}TEX when there are pstricks macros in the document. If you still need a PDF output use the package pdftricks.sty[4] or the for Linux free available program

vlatex (http://www.micropress-inc.com/linux/) or build the PDF with ps2pdf
(dvi→ps→pdf).

If you need package graphicx.sty load it before any pstricks package. You do not need to load pstricks.sty, it will be done by pst-optic by default.

This PDF file was created with the vlatex program from the free available VTeX/Lnx v7.530 - the VTeX distribution for Linux (x86).

Part I

Lenses and Mirrors

1 General Options

All options are by default documentwide valid but not supported by all macros. Table 1 shows the general ones. Others are shown in table 2 and 5.

Option  Name Default
Left value of the picture in cm xLeft -7.5
Right value of the picture in cm xRight 7.5
Lowest value of the picture in cm xBottom -3
Highest value of the picture in cm xTop  3
x-Offset  XO  0
y-Offset  YO  0
Node A as string  nameA A
Angle A in degrees spotA 270
Node B as string  nameB B
Angle B in degrees spotB 270
Node F as string  nameF F
Angle F in degrees spotF 270
Node O as string  nameO O
Angle O in degrees spotO 225
Node A’ as string  nameAi A’
Angle A’ in degrees  spotAi 90
Node B’ as string  nameBi B’
Angle B’ in degrees spotBi 270
Node F’ as string  nameFi B’
Angle F’ in degrees spotFi 270
Ray color  rayColor black

Table 1: General options and the defaults

pst-optic puts the lens and mirror macros in an own pspicture environment. The star version enables the clipping option of pstricks:

1 \begin{pspicture}*(xLeft,yBottom)(xRight,yTop)
2  \lens[%
3  focus=2,OA=-3,AB=1,XO=0,YO=0,%

4  xLeft=-7.5,xRight=7.5,yBottom=-3,yTop=3]
5 \end{pspicture}

If you need other values for the pspicture environment, then use the \rput command to place the macro at any position.

1 \begin{pspicture}(-5,-1.5)(7,4)
2  \rput(1.5,1.5){%
3  \lens[lensType=DVG,lensGlass=true,%
4  lensWidth=0.5,rayColor=red]}
5 \end{pspicture}

A B A_{′} B_{′} O

  2 \lens

There are macros for the convergent and divergent lens

\lens[CVG] Convergent (Collecting lens ) - default \lens[DVG] Divergent (Scatter lens )

2.1 The Coordinates of the predefined Nodes

Figure 1 shows the coordinates of the predefined nodes (see table 1).

1 \begin{pspicture}*(-8,-3.25)(8,3.25)
2  \rput(0,0){%
3  \lens[drawing=false]
4  \psline[linewidth=1pt](xLeft)(xRight)
5  \qdisk(A){1.5pt}
6  \qdisk(B){1.5pt}

 7  \qdisk(A'){1.5pt}\qdisk(B'){1.5pt}
 8  \qdisk(F){1.5pt}\qdisk(F'){1.5pt}
 9  \qdisk(O){1.5pt}\qdisk(I){1.5pt}
10  \qdisk(I'){1.5pt}\qdisk(I1){1.5pt}
11  \qdisk(I2){1.5pt}
12  \uput[270](A){A}\uput[90](B){B}
13  \uput[270](F){F}\uput[0](I){I}
14  \uput[0](I'){$\mathrm{I'}$}\uput[270](F'){$\mathrm{F'}$}
15  \uput[270](B'){$\mathrm{B'}$}\uput[90](A'){$\mathrm{A'}$}
16  \uput[180](I1){I1}\uput[0](I2){I2}%

17  }

18 \end{pspicture}

A B FII_{′} F_{′} B_{′} A_{′} I1 I2

Figure 1: Coodinates of the predefined Nodes

2.2 The Lens Type

Using \lens[<lensType>] gives the in figure 2 and 3 shown lenses with the default values from table 2.

The origin of the coordinate system is by default vertically and horinzontally symmetric. If you want to place the lens at another coordinates then define your own pspicture-environment and use the \rput-command:

 1 \begin{pspicture}*(-7.5,-3)(7.5,3)
 2  \rput(0,0){\lens[...]}
 3 \begin{pspicture}

The star version enables the clipping option.

F_{′} F A B A_{′} B_{′} O

Figure 2: \lens[lensType=CVG] (Collecting lens)

A B A_{′} B_{′} O

Figure 3: \lens[lensType=DVG] (Scatter lens)

Option  Name  Default
Lense type  lensType  CVG
Lense height in cm  lensHeight  5cm
Lense width in cm  lensWidth  0.5cm^{1}
vertical scale (obsolet) lensScale  1
View the lens  lensGlass  false
Second lens  lensTwo  false
Focus in cm  focus  2
Distance \overline{OA}  OA  -4
Distance \overline{AB}  AB  1.5
Lens color  lenscolor  black
Arrow length in cm  lensarrowsize 0.2
Arrow inset in cm  lensarrowinset 0.5

Table 2: Available options for lenses with the defaults

1 only for lensGlass=true, otherwise set to 2\pslinewidth

3 \eye

Syntax:

\eye

There are no Options for this symbol of an human eye (figure 4).

Figure 4: The \eye-Macro

Use the \rput-macro to put the eye elsewhere:

1 \begin{pspicture}(-1,-0.75)(1,0.75)
2  \rput(1,0){\eye}
3 \end{pspicture}

4 \Arrows

Syntax:

\Arrows[Options](NodeA)(NodeB)

Option  Name Standard
Offset for arrow start in cm posStart 0
Length of the arrow in cm length 2

Table 3: Options for the Arrows-Macro

The code for figure 5:

1 \Arrows[posStart=2,length=4](-3,-3)(3,3)
2 \Arrows[linewidth=3pt,length=2](0,-3)(0,0.5)
3 \Arrows[linewidth=5pt,linestyle=dashed](3,0)(2,3)
4 \Arrows[posStart=1,linewidth=5pt,linestyle=dotted,length=4](-3,2)(1,2)

A B A B A B A B Figure 5: Arrows Demo

5 \psOutLine

Syntax:

\psOutLine[Options](NodeA)(NodeB){EndNode}

The only special option is length=<avlue>. All other which are possible for \psline can be used, too.

A B END B A START Figure 6: psOutLine and psBeforeLine Demo

The code for figure 6:

1 \psOutLine[length=3](-2,-2)(0,0){End}

  6 \psBeforeLine

Syntax:

  \psBeforeLine[Options](NodeA)(NodeB){StartNode}

The only special option is length=<value>. All other which are possible for \psline can be used, too.

The code for figure 6:

1 \psBeforeLine[length=3](0,0)(2,2){START}

  7 \Parallel

Syntax:

  \Parallel[Options](NodeA)(NodeB)(Start node){End node}

The only special option for Parallel is length=<value>. The nodes nodeA and nodeB are known nodes of a given line and Start node is the given node of a parallel line. End node is the name of the calculated line end. The use of Parallel is shown for an example (figure 7).

1 \begin{pspicture}*(-5,-3.5)(5,3.5)
2  \psgrid[subgriddiv=0,griddots=5]
3  \pnode(2,-2){FF}\qdisk(FF){1.5pt}
4  \pnode(-5,5){A}
5  \pnode(0,0){O}
6  \multido{\nCountA=-2.4+0.4}{9}{%
7  \Parallel[linecolor=red,length=9](O)(A)(0,\nCountA){P1}
8  \psline[linecolor=red](0,\nCountA)(FF)
9  \psOutLine[linecolor=red,length=9](0,\nCountA)(FF){P2}

10  }

11  \psline[linecolor=blue](A)(FF)
12  \psOutLine[linecolor=blue,length=5](A)(FF){END1}
13  \rput(0,0){%
14  \lens[yBottom=-3.5,yTop=3.5,lensGlass=true,%
15  lensHeight=6.5,%
16  drawing=false,spotFi=315,lensWidth=0.5]%

17  \psline[linewidth=1pt](xLeft)(xRight)
18  \psline[length=2,linewidth=2pt,arrows=->](F')(FF)

19  }

20 \end{pspicture}

Figure 7: The \Parallel-Macro

8 \Transform

The Transform-macro renames all existing nodes in names with an additional "1". Table 4 shows a list of all nodes. Transform also defines a new node factice with the coordinates (XO1,YO1). The renaming of all nodes makes it easier to handle objects with more than one lens. With the option lensTwo=true it is possible to chain the different rays of the lenses (figure 8).

Alt A B A’ B’ O F F’ I I’ XO YO OA’ A’B’ Neu A1 B1 A’1 B’1 O1 F1 F’1 I1 I’1 XO1 YO1 O1A1’ A’1B’1

Table 4: Renaming of the nodes after calling the macro \Transform

1 \begin{pspicture}*(-7.5,-3)(7.5,3)
2 \rput(0,0){%
3  \lens[lensScale=0.6,XO=-4,%

F_{′} F A B A_{′} B_{′} O

F_{′} F A B A_{′} B_{′} O

(a) Definition of two unchained lenses

F_{′} F A B A_{′} B_{′} O

F_{′} F A B A_{′} B_{′} O

(b) Definition of two chained lenses with

                                             \lens[...]  \Transform \lens[...]  and
                                             lensTwo-Option

\begin{matrix}F′_{1} \\ F_{1} \\ A_{1} \\ B_{1} \\ O_{1} \end{matrix} F′_{2} F_{2} A′_{1} B′_{1} A′_{2} B′_{2} O_{2}

(c) Definition of two chained lenses and an additional modification of the node labels.

Figure 8: The meaning of the \Transform-Macro with the default labels

 4  nameF=F_1,nameA=A_1,nameB=B_1,%
 5  nameFi=F'_1,nameAi={ },nameBi={},nameO=O_1,
 6  focus=1,OA=-2,lensGlass=true, lensWidth=0.5]%
 7 }
 8 \pspolygon[style=rayuresJaunes,linestyle=none](B)(I)(B')(I')(B)
 9 \Transform
10 \rput(0,0){%
11  \lens[lensScale=1.2,XO=2,focus=2,%
12  nameA=A'_1,spotA=90,nameB=B'_1,spotB=270,%
13  nameO=O_2,nameAi=A'_2,spotAi=270,%
14  nameBi=B'_2,spotBi=90,nameF=F_2,nameFi=F'_2,%
15  lensTwo=true,%
16  lensGlass=true,lensWidth=0.5]%

17 }

18 \pspolygon[style=rayuresJaunes,linestyle=none](B)(I)(B')(I')(B)

19 \end{pspicture}

9 \rayInterLens

This macro is only useful for a two-lens-system. Figure 9 shows such a system. The nodes B1, I11, F'1, B'1 are predefined by the lens-macro. To draw the two rays from the left lense via the node B'1 to the second lens, we need the coordinates of these points. \rayInterLense defines such nodes. The Syntax:

\rayInterLense(StartNode)(IntermediatNode)(LensDistance){LensNode}

For the node of figure 9 we have

1 \rayInterLens(I11)(B'1){4}{Inter1L2}
2 \psline(B1)(I11)(B'1)(Inter1L2)
3 \rayInterLens(O1)(B'1){4}{Inter2L2}
4 \psline(B1)(O1)(B'1)(Inter2L2)

The two parallel lines are drawn with the \Parallel-Macro.

B1 O O1 I11 B′_{1} Inter1L2

Figure 9: Demonstration of \rayInterLens

10 Mirrors

Figure 10 shows the available mirrors and table 5 the possible options.

Option  Name  Default

Left value of the picture in cm

xLeft -0.5

Right value of the picture in cm

xRight 11

Lowest value of the picture in cm

xBottom -6

Highest value of the picture in cm

xTop 2.5

Mirror height in cm  mirrorHeight  5
Mirror depth in cm  mirrorDepth  1
Mirror width in cm  mirrorWidth  0.25
Mirror color  mirrorColor  lightgray
Ray color  rayColor  black

Focus in cm (only together with the option

posMirrorTwo senseful)

mirrorFocus 8

Position of the 2. mirror in cm

posMirrorTwo 8

Inclination of the 2. mirror in degrees

mirrorTwoAngle 45

Draw lines  drawing  true

Table 5: List of options for mirrors with the predefines values

10.1 \mirrorCVG

Figure 11 shows the default for the mirrorCVG-macro with the predefined nodes anf three default rays.

10.2 \mirrorDVG

Figure 13 shows the defaults for the macro mirrorDVG-Makros.

1 2 −1 ^{12} \begin{matrix}−1 \\ −2 \\ −3 \end{matrix} Focus mirrorHeight mirrorDepth mirrorWidth mirrorColor

(a)

−1 ; −2 ; −3 ; −4 ^{12} \begin{matrix}−1 \\ −2 \\ −3 \end{matrix} Focus mirrorHeight mirrorDepth mirrorWidth mirrorColor

(b)

M_{1} M_{2} A A_{′}_{(c)}

Figure 10: The different mirror macros: a) \mirrorCVG b) \mirrorDVG c)

\planMirrorRay

F A B P P” M M’ FR FR”

Figure 11: Parabolic Mirror \mirrorCVG

Figure 12: Example

10.3 Drawing Rays in the Mirror Macros

There are two different macros for drawing rays:

   \mirrorCVGRay[options](Node1)(Node2){MirrorNode}
   \mirrorDVGRay[options](Node1)(Node2){MirrorNode}

F A B P P’ M M’ FR FR’

       Figure 13: \mirrorDVG

{G \atop G’}

Figure 14: Example as a magnifier

   The MirrorNode maybe

MirrorNode first point on the mirror

MirrorNode’ end node or second point on the mirror if one more reflection hap-

pens

MirrorNode” end node for a second reflection

If there are only one reflection, then MirrorNode' and MirrorNode'' are the same.

10.4 \planMirrorRay

The planMirrorRay-Macro caculates the coordinates of a mirrored point. In figure 10(c) is a given node A, whereas A' is calculated by the macro. The syntax is:

   \planMirrorRay(Mirrorbegin)(Mirrorend)(Originalpoint){New point}

The macro doesn’t draw any lines, only the coordinates of the new point are saved by the new node name.

10.5 \symPlan

\symPlan allows to mirroring complete plain graphical objects along a virtual center line. Figure 15 shows that this mirroring is a mathematical one and not a physical one. For more examples look at [3]. The syntax is:

     \symPlan(node1)(node2){Graphicobject}

The two nodes define the mirror axis and the graphics object is in most cases a user defined macro, f.ex:

1 \newcommand{\dtk}{%
2  \pstextpath(0,0){%
3  \psplot[linestyle=none]{0}{8}{x sqrt  sqrt 2 mul}}%
4  {\Large  Die \TeX{}nische  Komödie  von  DANTE}%
5 }
6 \begin{pspicture}(-4.5,-2)(2.5,5)
7  \pnode(-4,-2){M1}   \uput[-90](M1){M1}
8  \pnode(4,4){M2}\uput[90](M2){M2}
9  \psline[linewidth=5\pslinewidth,linecolor=lightgray](M1)(M2)
10  \rput(-3.5,-1.75){\dtk}% Original  schreiben
11  \symPlan(M1)(M2){\rput(-3.5,-1.75){\dtk}}% Spiegelbild  schreiben
12 \end{pspicture}

This example needs the package pst-text.sty for the \pstextpath macro (

  CTAN:/graphics/pstricks/generic/pst-text.tex).

M1_{M2}Die TEXnische Komödie von DANTE Die TEXnische Komödie von DANTE

Figure 15: Demonstration of the \symPlan-Macro

11 Beam Light

This macro is useful for the demonstration of high and low beam light. The syntax for this macro is:

   \beamLight[<Options>]

The predefined options especially for the pspicture-coordinates are

1 \setkeys{psset}{xLeft=-5,xRight=5,yBottom=-5,yTop=5,drawing=false}% the  default

You can place this macro with the \rput-command at any place in your own pspicture-environment.

Examples are in section 20.

12 \telescope

Figure 18 shows the configuration of a telescope and table 5 the special options for the \telescop-Macro.

1 \begin{pspicture}(-1,-3)(3,3)
2  \rput(0,0){\beamLight}
3 \end{pspicture}

Figure 16: \beamLight without any Options

1 \begin{pspicture}(-1,-5.5)(5,5.5)
2  \rput(0,0){%
3  \beamLight[mirrorDepth=4.75,%
4  mirrorWidth=0.1,%
5  mirrorHeight=10,%
6  linecolor=lightgray]}
7 \end{pspicture}%

Figure 17: \beamLight with Options

{F_{1} \atop F_{2}}

Figure 18: \telescope-Macro

Part II

Additional Macros

13 \ABinterCD

This macro is used by the \telescop macro. It determines the intersection point of two lines, in this case a ray and the mirror axis. Figure 19 shows a part of figure 18. Given are the points A, B (focus), C/D (mirror axis). We need the point E to draw the other rays for the ocular, which can be done with the \ABinterCD macro. The syntax is:

   \ABinterCD(A)(B)(C)(D){E}

A B C D E M

Figure 19: \ABinterCD-Makro

14 \nodeBetween

This macro determines the coordinates of the center of a line. The syntax is:

   \nodeBetween(A)(B){C}

Figure 19 shows an example, where the node M was determined by the \nodeBetween macro.

Part III

Examples

15 A simple colored System

• \overline{AB} = 2 cm
• \overline{OA} = −10 cm
• \overline{OF′} = 3, 333 cm
• \overline{XO} = 2 cm

F_{′} F A B A_{′} B_{′} O

F_{′} F A B A_{′} B_{′} O

1 \begin{pspicture}(-8.5,-3)(8.5,3)
2 \rput(0,0){%
3  \lens[focus=3.333,%
4  OA=-10,AB=2,XO=2,%
5  xLeft=-8.5,xRight=8.5,%
6  rayColor=red]%
7 }
8 \pnode(!XO 2.5){L1}%extrémité  supérieure  de la  lentille
9 \pnode(!XO  -2.5){L2}%extrémité  inférieure  de la  lentille
10 \psOutLine[length=2](L1)(B'){END}
11 \psBeforeLine[length=2](B')(L2){START}
12 \pspolygon[style=rayuresJaunes,linestyle=none](B)(L1)(END)(START)(L2)
13 \rput(0,0){%
14  \lens[%
15  focus=3.333,%
16  OA=-10,AB=2,%
17  XO=2,%

18  xLeft=-8.5,xRight=8.5,%
19  rayColor=red,arrowsize=0.2]%

20 }

21 \end{pspicture}

16 A Magnifier

A B A_{′} B_{′}

 1 \begin{pspicture}(-8,-5)(8,3)
 2  \rput(0,0){%
 3  \lens[%
 4  lensGlass=true,lensWidth=0.4,%
 5  focus=4,AB=0.5,OA=-2.8,XO=2,drawing=false]%
 6  \psline[linewidth=0.5pt](xLeft)(xRight)
 7  }
 8  \pnode(!XO 2.5){L1}%     extrémité  supérieure  de la  lentille
 9  \pnode(!XO  -2.5){L2}%    extrémité  inférieure  de la  lentille
10  \psOutLine[length=5.5,linestyle=none](B')(L1){END1}
11  \psBeforeLine[length=6,linestyle=none](L2)(B'){START}
12  \pspolygon[style=rayuresJaunes,linestyle=none](B)(L1)(END1)(START)(L2)
13  \psline[linewidth=1.5\pslinewidth,arrowinset=0]{->}(A)(B)
14  \uput[270](A){A}
15  \uput[90](B){B}
16  \psline[linewidth=1.5\pslinewidth,%
17  arrowinset=0,linestyle=dashed]{->}(A')(B')
18  \uput[270](A'){$\mathrm{A'}$}
19  \uput[90](B'){$\mathrm{B'}$}

20  \psset{linecolor=red,arrowsize=0.2}
21  \pcline[nodesepB=-4](B')(O)
22  \psline(B)(I)(F')
23  \psOutLine(I)(F'){END2}
24  \Arrows(I)(F')
25  \Arrows(B)(I)
26  \psOutLine[length=1,linestyle=dashed](I')(B'){END3}
27  \psline[linestyle=dashed](B)(F)
28  \psline(B)(I')
29  \Arrows[arrows=->>](B)(I')
30  \psline[linestyle=dashed](B')(I')
31  \psline[linestyle=dashed](B')(I)
32  \psOutLine[length=2,arrows=->>](B')(I'){END4}
33  \psOutLine[length=4](B')(I'){END5}
34  \rput(8,0){\psset{linecolor=black}\eye}
35 \end{pspicture}%

17 Two Lenses

This is a simple system with two lenses, where the \lens macro is used only once. The second lense (the left one) is drawn by the \psline macro.

A_{′} B_{′} A_{1} B_{1} O1 O2 F_{2} F′_{2} F′_{1}

 1 \begin{pspicture}(-8,-3)(8,3)
 2 %on place l'oculaire  dès le début
 3  \rput(0,0){%
 4  \lens[%

 5  lensScale=0.6,drawing=false,%
 6  focus=1.5,OA=-1,XO=5,nameF={},nameFi={},AB=-1]%
 7  \psline[linewidth=1pt](xLeft)(xRight)
 8  }
 9 %image  intermédiaire A1B1 au foyer F'1
10  \psline{->}(4,0)(4,-1)
11 %lentille 2
12 %         \psline[linewidth=2\pslinewidth,linecolor=blue]{<->}(5,1.5)(5,-1.5)
13 %On place  les  points  essentiels
14  \pnode(-6,0){O1}
15  \pnode(-6,2.5){E1L1}%extrémité  sup de L1
16  \pnode(-6,-2.5){E2L1}%extrémité  inf de L1
17  \pnode(4,0){A1}
18  \pnode(4,-1){B1}
19 %intersection  de O1 avec la  lentille L2
20  \rayInterLens(O1)(B1){5}{Inter1L2}
21 %rayon  venant  de l'infini  jusqu'à la  lentille L2
22  \pcline[nodesepB=-2](Inter1L2)(O1)
23 %rayon  parallèle  au  précédent  et  passant  par E1L1
24  \Parallel(B1)(O1)(E1L1){B1infty}
25 %rayon  parallèle  au  précédent  et  passant  par E2L2
26  \Parallel(B1)(O1)(E2L1){B2infty}
27 %intersection  de la  droite  passant  par E1L1 et B1 avec la  lentille L2
28  \rayInterLens(E1L1)(B1){5}{InterE1B1L2}
29  \psline(E1L1)(InterE1B1L2)
30 %intersection  de la  droite  passant  par E2L2 et B1 avec la  lentille L2
31  \rayInterLens(E2L1)(B1){5}{InterE2B1L2}
32  \psline(E2L1)(InterE2B1L2)
33  \psline[linestyle=dashed]{->}(A')(B')
34  \psline[linestyle=dashed](InterE1B1L2)(B')
35  \psline[linestyle=dashed](InterE2B1L2)(B')
36  \psline[linestyle=dotted](B')(O)
37  \psOutLine[length=3](B')(InterE1B1L2){END}
38  \psBeforeLine[length=3](InterE2B1L2)(B'){START}
39  \pspolygon[%
40  style=rayuresJaunes,%
41  linestyle=none]%
42  (B1infty)(E1L1)(InterE1B1L2)%
43  (END)(START)(InterE2B1L2)%
44  (E2L1)(B2infty)
45  \uput[90](A'){$\mathrm{A'}$}
46  \uput[270](B'){$\mathrm{B'}$}
47  \uput[90](A1){$\mathrm{A_1}$}
48  \uput[270](B1){$\mathrm{B_1}$}
49  \uput[225](O1){O1}
50  \uput[45](O){O2}

51  \uput[90](F){$\mathrm{F_2}$}
52  \uput{0.4}[150](F'){$\mathrm{F'_2}$}
53  \uput{0.6}[90](A1){$\mathrm{F'_1}$}
54  \psline[linecolor=red](B1infty)(E1L1)(InterE1B1L2)(END)
55  \psline[linecolor=red](B2infty)(E2L1)(InterE2B1L2)(START)
56  \rput(8,0){\eye}
57 %lentille 1
58  \psline[%
59  linewidth=2\pslinewidth,%
60  linecolor=blue,%
61  arrowsize=0.2,arrowinset=0.5]{<->}(-6,-2.5)(-6,2.5)
62 \end{pspicture}

18 Divergent Lenses

18.1 Real Image

A B A_{′} B_{′} O

 1 \begin{pspicture}*(-7.5,-3)(7.5,3)
 2 \rput(0,0){%
 3  \lens[lensGlass=true,lensType=DVG,lensWidth=0.5,%
 4  XO=0,AB=2,OA=-4,focus=-6,spotAi=270,spotBi=90]%
 5 }
 6 \psOutLine[length=7](B')(I){END}
 7 % pour  prolonger au-delà de B' permet  de  définir  END
 8 \psBeforeLine[length=7](I')(B'){START}
 9 % permet  de  définir  START
10 \pspolygon[style=rayuresJaunes,linestyle=none](B)(I)(END)(START)(I')
11 \psline(B)(I)(END)
12 \psline(B)(I')(START)

18.2 Virtual Image

B B_{′} A A_{′}

1 \begin{pspicture}*(-7.5,-6.5)(7.5,7.5)
2  \rput(0,0){%
3  \lens[lensType=DVG,lensWidth=0.75,lensHeight=8,%
4  focus=-2,OA=1.5,AB=1,XO=-1,lensGlass=true,%
5  rayColor=red,yBottom=-5,yTop=5,drawing=false]%
6  \psline[linewidth=1pt](xLeft)(xRight)
7  }

 8  \pnode(!XO 2.5){L1}%extrémité  de la  lentille  sup
 9  \pnode(!XO  -2.5){L2}%extrémité  de la  lentille  inf
10  {%
11  \psset{linecolor=red,linestyle=dashed}
12  \psline(L1)(B)
13  \psline(L2)(B)%
14  }{%
15  \psset{length=4,linestyle=none}
16  \psOutLine(B)(L1){A1}
17  \psOutLine(B)(L2){A4}
18  \psOutLine(L1)(B'){A2}
19  \psOutLine(L2)(B'){A3}
20  \pspolygon[style=rayuresJaunes]%
21  (A1)(L1)(A2)(A3)(L2)(A4)

22  }

23  \psline[linestyle=dashed]{->}(A)(B)
24  \psline{->}(A')(B')
25  \uput[90](B){B}
26  \uput[90](B'){$\mathrm{B'}$}
27  \uput[270](A){A}
28  \uput[270](A'){$\mathrm{A'}$}
29  {%
30  \psset{linecolor=red}
31  \psline(A1)(L1)(A2)
32  \psline(A4)(L2)(A3)}
33 \end{pspicture}

19 A Microscope

A B B_{1} A_{1}

 1 \begin{pspicture}(-7.5,-5.5)(7.5,3)
 2 \rput(0,0){%
 3  \lens[focus=1.5,OA=-2,AB=0.5,XO=-5,lensGlass=true,lensWidth=0.4,%
 4  yBottom=-4,yTop=4,drawing=false,lensScale=0.4,%
 5  nameF=F_1,nameFi=F'_1]%
 6  \psline[linewidth=1pt](xLeft)(xRight)
 7 }
 8 \pnode(! XO 1){UPlens1}
 9 \pnode(! XO  -1){DOWNlens1}
10 \Transform
11 \rput(0,0){%
12  \lens[focus=2,XO=3,lensGlass=true,lensWidth=0.4,%
13  yBottom=-4,yTop=4,drawing=false,%
14  nameF=F_2,nameFi=F'_2,spotF=90,spotFi=90]%

15 }

16 \psline{->}(A1)(B1)
17 \psline{->}(A'1)(B'1)
18 \uput[270](A1){A}
19 \uput[90](B1){B}
20 \uput[270](B'1){$\mathrm{B_1}$}
21 \uput{0.7}[90](A'1){$\mathrm{A_1}$}
22 {\psset{linecolor=red}
23 \rayInterLens(I11)(B'1){3}{Inter1L2}

24 \rayInterLens(B1)(O1){3}{Inter2L2}
25 \rayInterLens(UPlens1)(B'1){3}{Inter3L2}
26 \rayInterLens(DOWNlens1)(B'1){3}{Inter4L2}
27 \psline(B1)(I11)(B'1)(Inter1L2)
28 \psline(B1)(Inter2L2)
29 \psline(B1)(UPlens1)(Inter3L2)
30 \psline(B1)(DOWNlens1)(Inter4L2)
31 \psset{length=5}
32 \Parallel(B'1)(O)(Inter3L2){B1inftyRigth}
33 \Parallel(B'1)(O)(Inter4L2){B2inftyRigth}
34 \Parallel(B'1)(O)(Inter2L2){B3inftyRigth}
35 \Parallel(B'1)(O)(Inter1L2){B3inftyRigth}
36 {\psset{length=-5,linestyle=dashed}
37 \Parallel(B'1)(O)(Inter3L2){B1inftyLeft}
38 \Parallel(B'1)(O)(Inter4L2){B2inftyLeft}
39 \Parallel(B'1)(O)(Inter2L2){B3inftyLeft}
40 \Parallel(B'1)(O)(Inter1L2){B3inftyLeft}
41 \pcline[nodesep=6](B'1)(O)}
42 \pspolygon[style=rayuresJaunes,linestyle=none]%
43  (B1)(UPlens1)(Inter3L2)%
44  (B1inftyRigth)(B2inftyRigth)(Inter4L2)(DOWNlens1)
45 \psline(B1)(UPlens1)(Inter3L2)(B1inftyRigth)
46 \psline(B2inftyRigth)(Inter4L2)(DOWNlens1)(B1)}
47 \rput(7,0){\eye}
48 \end{pspicture}

20 Beam Light

20.1 High Beam Light

1 \begin{pspicture}(-1.5,-5.5)(10,5.5)
2  \rput(0,0){%
3  \beamLight[drawing=false,%
4  mirrorDepth=4.75,%
5  mirrorWidth=0.1,%
6  mirrorHeight=10,%
7  linecolor=lightgray]}
8  \makeatletter
9  \pst@getcoor{Focus}\pst@tempf
10  \psset{linewidth=1pt,linecolor=red}
11  \multido{\n=60+5}{18}{%
12  \mirrorCVGRay[linecolor=red,%
13  mirrorDepth=4.75,%
14  mirrorHeight=10,%
15  linewidth=1pt](Focus)(!%

16  /XF \pst@tempf  pop \pst@number\psxunit  div  def
17  \n\space  cos XF add \n\space  sin  neg){Endd1}
18  \psOutLine[arrows=->,length=.25](Endd1)(Endd1''){Endd2}%
19  \mirrorCVGRay[linecolor=red,%
20  mirrorDepth=4.75,%
21  mirrorHeight=10,%
22  linewidth=1pt](Focus)(!%
23  /XF \pst@tempf  pop \pst@number\psxunit  div  def
24  \n\space  cos XF add \n\space  sin ){End1}
25  \psOutLine[arrows=->,length=.25](End1)(End1''){End2}%

26  }

27  \makeatletter
28 \end{pspicture}

20.2 Low Beam Light

 1 \begin{pspicture}(-1.5,-5)(10,5)
 2  \rput(0,0){%
 3  \beamLight[drawing=false,%
 4  mirrorDepth=4.75,%
 5  mirrorWidth=0.1,%

 6  mirrorHeight=10,%
 7  linecolor=lightgray]}
 8  {%
 9  \psset{linewidth=1pt,linecolor=red}
10  \multido{\n=70+5}{20}{%
11  \psline(2.75,-0.2)(! \n\space  cos 2.75 add \n\space  sin )
12  \mirrorCVGRay[linecolor=red,%
13  mirrorDepth=4.75,%
14  mirrorHeight=10,%
15  linewidth=1pt](2.75,-0.2)%
16  (!   \n\space  cos 2.75 add \n\space  sin ){End1}
17  \psOutLine[arrows=->,length=.25](End1)(End1''){End2}%
18  }}
19 \end{pspicture}

21 Telescope

{F_{1} \atop F_{2}}

 1 \telescope[mirrorFocus=10,posMirrorTwo=8,yBottom=-8]

{F_{1} \atop F_{2}}

1 \telescope[mirrorFocus=6,posMirrorTwo=5,yBottom=-5]

References

[1] Denis Girou and Manuel Luque. PST-lens - PostScript macros for Generic TeX.

ftp://ftp.dante.de/tex-archive/graphics/pstricks/contrib/pst-lens/,

2001.

[2] Nikolai G. Kollock. PostScript richtig eingesetzt: vom Konzept zum praktischen Einsatz. IWT, Vaterstetten, 1989.

[3] Manuel Luque. Lentilles convergentes: PST-optic v. 0.2. http://members.aol.

com/ManuelLuque2/optique.htm, 2001.

[4] Herbert Voss. PSTricks Support for pdf. http://www.educat.hu-berlin.de/

~voss/lyx/pdf/pdftricks.phtml, 2002.

[5] Michael Wiedmann and Peter Karp. References for TEX and Friends. http:

//www.miwie.org/tex-refs/, 2003.

[6] Timothy Van Zandt. PSTricks - PostScript macros for Generic TeX. http:

//www.tug.org/application/PSTricks, 1993.