%! (lenses2.inc) run 72 72 scale 0.01 setlinewidth 4 8 translate 1.2 1.2 scale newpath 1 0 .9 150 210 arc stroke .22 -.45 moveto -.22 -.45 lineto stroke -1 0 .9 330 30 arc stroke -.22 .45 moveto .22 .45 lineto stroke /d -.2 def 5{ /intersect1 [-1 d][1 0][-1 0] .9 hit def /x0 intersect1 0 get def /y0 intersect1 1 get def -1.7 d moveto x0 y0 lineto stroke /n1 [-1 0] intersect1 gradient normalized def /v1 n1 [1 0] 1.5 refraction def /intersect2 [x0 y0]v1[1 0] .9 hit def /x1 intersect2 0 get def /y1 intersect2 1 get def x0 y0 moveto x1 y1 lineto stroke 0 0 1 setrgbcolor .001 setlinewidth /nn1 [1 0] intersect2 gradient normalized def /vv1 nn1 [-1 0] 1 1.5 div refraction def /intersectt2 [x1 y1]vv1[-1 0] .9 hit def /xx1 intersectt2 0 get def /yy1 intersectt2 1 get def x1 y1 moveto xx1 yy1 lineto stroke /nn2 [-1 0] intersectt2 gradient normalized def /vv2 nn2 vv1 1.5 refraction def /intersect3 [xx1 yy1]vv2[1 0 1.3] line-intersection def /xx2 intersect3 0 get def /yy2 intersect3 1 get def xx1 yy1 moveto xx2 yy2 lineto stroke 0 0 0 setrgbcolor 0.01 setlinewidth /n2 [1 0] intersect2 gradient normalized def /v2 n2 v1 1 1.5 div refraction def /intersect3 [x1 y1]v2[1 0 -1.5] line-intersection def /x2 intersect3 0 get def /y2 intersect3 1 get def x1 y1 moveto x2 y2 lineto stroke /d d .1 add def }repeat showpage