%! (lenses2.inc) run 72 72 scale 4 4 translate 0.01 setlinewidth 0 0 0 setrgbcolor newpath -2 0 moveto 2.5 0 lineto stroke /r 1 def -.65 0 1 310 50 arc stroke .65 0 1 130 230 arc stroke /c -.3 def 2{ newpath /intersect1 [-1.5 c][1 0][.65 0] r hit def /x0 intersect1 0 get def /y0 intersect1 1 get def 0 0 0 setrgbcolor -1.5 c moveto x0 y0 lineto stroke /n1 [.65 0] intersect1 gradient normalized def /v1 n1 [1 0] 1.5 refraction def /intersect2 [x0 y0]v1[-.65 0] r hit def /x1 intersect2 0 get def /y1 intersect2 1 get def 1 0 0 setrgbcolor x0 y0 moveto x1 y1 lineto stroke /n2 [-.65 0] intersect2 gradient normalized def /v2 n2 v1 1 1.5 div refraction def /intersect3 [x1 y1]v2[1 0 -2] line-intersection def /x2 intersect3 0 get def /y2 intersect3 1 get def newpath x1 y1 moveto x2 y2 lineto stroke /c c .6 add def }repeat /c -.3 def 2{ newpath /intersect1 [-1.5 c][1 0][.65 0] r hit def /x0 intersect1 0 get def /y0 intersect1 1 get def 0 0 0 setrgbcolor -1.5 c moveto x0 y0 lineto stroke /n1 [.65 0] intersect1 gradient normalized def /v1 n1 [1 0] 1.6 refraction def /intersect2 [x0 y0]v1[-.65 0] r hit def /x1 intersect2 0 get def /y1 intersect2 1 get def 0 0 1 setrgbcolor x0 y0 moveto x1 y1 lineto stroke /n2 [-.65 0] intersect2 gradient normalized def /v2 n2 v1 1 1.6 div refraction def /intersect3 [x1 y1]v2[1 0 -2] line-intersection def /x2 intersect3 0 get def /y2 intersect3 1 get def newpath x1 y1 moveto x2 y2 lineto stroke /c c .6 add def }repeat showpage