%! (lenses2.inc) run 72 72 scale 0.01 setlinewidth 4 8 translate -.65 0 1 310 50 arc stroke .65 0 1 130 230 arc stroke /c -.3 def 5{ /intersect1 [-2 c][1 0][.65 0] 1 hit def /x0 intersect1 0 get def /y0 intersect1 1 get def newpath -2 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] 1 hit def /x1 intersect2 0 get def /y1 intersect2 1 get def newpath 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 .15 add def }repeat showpage