%! 30 48 scale 1 48 div setlinewidth 4 4 translate (lenses.inc) run % first lens gsave newpath 0 0 1 120 240 arc 30 sin neg 2 mul 0 1 300 60 arc 0.9 setgray fill grestore gsave newpath 0 0 1 120 240 arc 30 sin neg 2 mul 0 1 300 60 arc stroke grestore % second lens gsave newpath 4 0 1 120 240 arc 30 sin neg 2 mul 4 add 0 1 300 60 arc gsave 0.9 setgray fill grestore gsave newpath 4 0 1 120 240 arc 30 sin neg 2 mul 4 add 0 1 300 60 arc gsave stroke grestore gsave newpath 30 sin neg 2 mul 0 1.1 300 60 arc 1.5 0 1.1 120 240 arc closepath stroke grestore gsave newpath 30 sin neg 2 mul 4 add 0 1.1 300 60 arc 5.5 0 1.1 120 240 arc closepath stroke grestore gsave newpath -3 -.7 moveto -3 .7 lineto 12 -2 moveto 12 2 lineto -.8 1.1 moveto 4.8 1.1 lineto -.8 -1.1 moveto 4.8 -1.1 lineto stroke grestore gsave newpath /x -0.7 def /s 20 def /Po [-3 x] def /Vo [s cos s sin] def /P1 Po Vo [0 0] 1 hit def Po 0 get Po 1 get moveto P1 0 get P1 1 get lineto /n [0 0] P1 gradient normalized def /v1 n Vo 1.5 refraction def /P2 P1 v1 [30 sin neg 2 mul 0] 1 hit def P2 0 get P2 1 get lineto /n1 [30 sin neg 2 mul 0] P2 gradient normalized def /V2 n1 v1 .8 refraction def /P3 P2 V2 [30 sin neg 2 mul 0] 1.1 hit def P3 0 get P3 1 get lineto /n2 [1.5 0] P3 gradient normalized def /V3 n2 V2 1.2 refraction def /P4 P3 V3 [1.5 0] 1.1 hit def P4 0 get P4 1 get lineto /n3 [4 0] P4 gradient normalized def /V4 n3 V3 1.2 refraction def /P5 P4 V4 [4 0] 1 hit def P5 0 get P5 1 get lineto /n4 [4 0] P5 gradient normalized def /V5 n4 V4 1.5 refraction def /P6 P5 V5 [30 sin neg 2 mul 4 add 0] 1 hit def P6 0 get P6 1 get lineto /n5 [30 sin neg 2 mul 4 add 0] P6 gradient normalized def /V6 n5 V5 0.8 refraction def /P7 P6 V6 [30 sin neg 2 mul 4 add 0] 1.1 hit def P7 0 get P7 1 get lineto /n6 [5.5 0] P7 gradient normalized def /V7 n6 V6 1.5 refraction def /P8 P7 V7 [5.5 0] 1.1 hit def P8 0 get P8 1 get lineto /n7 [7 0] P8 gradient normalized def /v8 n7 V7 2 refraction def /P9 P8 v8 [1 0 -12] line-intersection def P9 0 get P9 1 get lineto stroke grestore gsave /x 0.7 def /s -20 def /Po [-3 x] def /Vo [s cos s sin] def /P1 Po Vo [0 0] 1 hit def Po 0 get Po 1 get moveto P1 0 get P1 1 get lineto /n [0 0] P1 gradient normalized def /v1 n Vo 1.5 refraction def /P2 P1 v1 [30 sin neg 2 mul 0] 1 hit def P2 0 get P2 1 get lineto /n1 [30 sin neg 2 mul 0] P2 gradient normalized def /V2 n1 v1 .8 refraction def /P3 P2 V2 [30 sin neg 2 mul 0] 1.1 hit def P3 0 get P3 1 get lineto /n2 [1.5 0] P3 gradient normalized def /V3 n2 V2 1.2 refraction def /P4 P3 V3 [1.5 0] 1.1 hit def P4 0 get P4 1 get lineto /n3 [4 0] P4 gradient normalized def /V4 n3 V3 1.2 refraction def /P5 P4 V4 [4 0] 1 hit def P5 0 get P5 1 get lineto /n4 [4 0] P5 gradient normalized def /V5 n4 V4 1.5 refraction def /P6 P5 V5 [30 sin neg 2 mul 4 add 0] 1 hit def P6 0 get P6 1 get lineto /n5 [30 sin neg 2 mul 4 add 0] P6 gradient normalized def /V6 n5 V5 0.8 refraction def /P7 P6 V6 [30 sin neg 2 mul 4 add 0] 1.1 hit def P7 0 get P7 1 get lineto /n6 [5.5 0] P7 gradient normalized def /V7 n6 V6 1.5 refraction def /P8 P7 V7 [5.5 0] 1.1 hit def P8 0 get P8 1 get lineto /n7 [7 0] P8 gradient normalized def /v8 n7 V7 2 refraction def /P9 P8 v8 [1 0 -12] line-intersection def P9 0 get P9 1 get lineto stroke grestore gsave /Helvetica-Bold findfont .3 scalefont setfont 0 1.5 moveto (Objective) show grestore gsave /Helvetica-Bold findfont .3 scalefont setfont -3 .8 moveto (Object) show grestore gsave /Helvetica-Bold findfont .3 scalefont setfont 10.5 0 moveto ( Image - ) show grestore