%! 48 dup scale 1 48 div setlinewidth 4 4 translate (lenses.inc) run gsave newpath 0.05 setlinewidth -3 1.25 moveto 2 1.25 lineto -3 -1.25 moveto 2 -1.25 lineto stroke grestore gsave newpath 0.01 setlinewidth 0 1.15 moveto 4 1.15 lineto 0 -1.15 moveto 4 -1.15 lineto stroke grestore gsave newpath /x .90 def /y 1 def 8 { 0 y moveto 0 x lineto stroke /y y .3 sub def /x x .3 sub def } repeat grestore gsave newpath 1 0 1 270 90 arc closepath stroke newpath 4 0 1 90 270 arc closepath stroke grestore gsave newpath /x -0.4 def /s -3 def /Po [-3 x] def /Vo [s cos s sin] def /P1 Po Vo [1 0 0] line-intersection def Po 0 get Po 1 get moveto P1 0 get P1 1 get lineto stroke /po P1 def /vo [2 0] def /p1 po vo [1 0 -1] line-intersection def po 0 get po 1 get moveto p1 0 get p1 1 get lineto /n1 [1 0] P1 gradient normalized def /v1 n1 vo 1.4 refraction def /p2 p1 v1 [1 0] 1 hit def p2 0 get p2 1 get lineto /n2 [1 0] P1 gradient normalized def /v2 n2 v1 1 refraction def /p3 p2 v2 [4 0] 1 hit def p3 0 get p3 1 get lineto /n3 [4 0] P1 gradient normalized def /v3 n3 v2 1.5 refraction def /p4 p3 v3 [1 0 -4] line-intersection def p4 0 get p4 1 get lineto /n4 [4 0] P1 gradient normalized def /v4 n4 v3 .6 refraction def /p5 p4 v4 [1 0 -6] line-intersection def p5 0 get p5 1 get lineto stroke grestore gsave newpath /x 0.4 def /s 3 def /Po [-3 x] def /Vo [s cos s sin] def /P1 Po Vo [1 0 0] line-intersection def Po 0 get Po 1 get moveto P1 0 get P1 1 get lineto stroke /po P1 def /vo [2 0] def /p1 po vo [1 0 -1] line-intersection def po 0 get po 1 get moveto p1 0 get p1 1 get lineto /n1 [1 0] P1 gradient normalized def /v1 n1 vo 1.4 refraction def /p2 p1 v1 [1 0] 1 hit def p2 0 get p2 1 get lineto /n2 [1 0] P1 gradient normalized def /v2 n2 v1 1 refraction def /p3 p2 v2 [4 0] 1 hit def p3 0 get p3 1 get lineto /n3 [4 0] P1 gradient normalized def /v3 n3 v2 1.5 refraction def /p4 p3 v3 [1 0 -4] line-intersection def p4 0 get p4 1 get lineto /n4 [4 0] P1 gradient normalized def /v4 n4 v3 .6 refraction def /p5 p4 v4 [1 0 -6] line-intersection def p5 0 get p5 1 get lineto stroke grestore gsave /Helvetica-Bold findfont .3 scalefont setfont 1 -1.5 moveto ( ocular system) show grestore gsave /Helvetica-Bold findfont .2 scalefont setfont -3 1 moveto (rays produced by obective) show grestore gsave /Helvetica-Bold findfont .25 scalefont setfont -3 1.75 moveto ( image produced ) show grestore gsave /Helvetica-Bold findfont .25 scalefont setfont -3 1.5 moveto ( by objective) show grestore