%! (lenses.inc) run 48 dup scale 0.01 setlinewidth 4 5 translate 0 0 0 setrgbcolor %show axis gsave 2 2 translate -3.5 0 moveto 6 0 lineto stroke newpath 0 -3 moveto 0 3 lineto stroke grestore newpath 0.8 0.8 1 setrgbcolor 2 2 1 0 360 arc fill 0 0 0 setrgbcolor 2 2 1 0 360 arc stroke % red ray gsave 1 0 0 setrgbcolor /x 2.9 def /Po [0 x] def /Vo [1 0] def /P1 Po Vo [2 2] 1 hit def 0 x moveto P1 0 get P1 1 get lineto /n [2 2] P1 gradient normalized def /v1 n [1 0] 1.05 refraction def /P2 P1 v1 [2 2] 1 hit def P2 0 get P2 1 get lineto /v2 [1 0] v1 0.326 refraction def /p3 P2 v2 [1 0 -16 3 div] line-intersection def p3 0 get p3 1 get lineto /Po [0 1.1] def /Vo [1 0] def /P1 Po Vo [2 2] 1 hit def 0 1.1 moveto P1 0 get P1 1 get lineto /n [2 2] P1 gradient normalized def /v1 n [1 0] 1.05 refraction def /P2 P1 v1 [2 2] 1 hit def P2 0 get P2 1 get lineto /v2 [1 0] v1 .327 refraction def /p3 P2 v2 [1 0 -16 3 div] line-intersection def p3 0 get p3 1 get lineto stroke grestore % blue ray gsave 0 0 1 setrgbcolor /x 2.9 def /Po [0 x] def /Vo [1 0] def /P1 Po Vo [2 2] 1 hit def 0 x moveto P1 0 get P1 1 get lineto /n [2 2] P1 gradient normalized def /v1 n [1 0] 1.05 refraction def /P2 P1 v1 [2 2] 1 hit def P2 0 get P2 1 get lineto /v2 [1 0] v1 .215 refraction def /p3 P2 v2 [1 0 -13 3 div] line-intersection def p3 0 get p3 1 get lineto /Po [0 1.1] def /Vo [1 0] def /P1 Po Vo [2 2] 1 hit def 0 1.1 moveto P1 0 get P1 1 get lineto /n [2 2] P1 gradient normalized def /v1 n [1 0] 1.05 refraction def /P2 P1 v1 [2 2] 1 hit def P2 0 get P2 1 get lineto /v2 [1 0] v1 .215 refraction def /p3 P2 v2 [1 0 -13 3 div] line-intersection def p3 0 get p3 1 get lineto stroke grestore gsave 1 0 0 setrgbcolor /Helvetica findfont .3 scalefont setfont 4 2.5 moveto (red ray) show grestore gsave 0 0 1 setrgbcolor /Helvetica findfont .3 scalefont setfont 2.5 2.25 moveto (blue ray) show grestore gsave /Helvetica-Bold findfont .3 scalefont setfont 1 4 moveto (chormatic aberration) show grestore gsave /Helvetica findfont .25 scalefont setfont 0.5 2.2 moveto (lens ) show grestore