%! (lenses2.inc) run 72 72 scale 4 4 translate 0.01 setlinewidth 0 0 0 setrgbcolor newpath -2.8 0 moveto 3 0 lineto stroke /r 1 def -.65 0 1 310 50 arc stroke .65 0 1 130 230 arc stroke .1 .4 1 setrgbcolor /a -15 def 2{ newpath /intersect1 [-2 0][a cos a sin][.65 0] r hit def /x0 intersect1 0 get def /y0 intersect1 1 get def -2 0 moveto x0 y0 lineto stroke /n1 [.65 0] intersect1 gradient normalized def /v1 n1 [a cos a sin] 1.5 refraction def /intersect2 [x0 y0]v1[-.65 0] r hit def /x1 intersect2 0 get def /y1 intersect2 1 get def 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 /a a 30 add def }repeat 0 0 .7 setrgbcolor /a -10 def 2{ newpath /intersect1 [-2 0][a cos a sin][.65 0] r hit def /x0 intersect1 0 get def /y0 intersect1 1 get def -2 0 moveto x0 y0 lineto stroke /n1 [.65 0] intersect1 gradient normalized def /v1 n1 [a cos a sin] 1.5 refraction def /intersect2 [x0 y0]v1[-.65 0] r hit def /x1 intersect2 0 get def /y1 intersect2 1 get def 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 -3] line-intersection def /x2 intersect3 0 get def /y2 intersect3 1 get def newpath x1 y1 moveto x2 y2 lineto stroke /a a 20 add def }repeat showpage