%! gsave /w 640 def /h 160 def /page-begin { gsave w 2 div h 2 div translate 24 dup scale 1 8 div setlinewidth newpath 0 0 0 setrgbcolor /Times-Bold findfont 1 scalefont setfont -6 2 moveto (Destructive Interference) show } def /page-end { grestore showpage } def /N 400 def /llx -30 def /urx 30 def /dx urx llx sub N div def /Pi 3.14159265358979 def /Cos { //Pi div 180 mul cos } def /phase 0 def /dp 0.25 def { page-begin gsave 0.8 setgray newpath /x llx def /y x Cos def x y moveto N { /x x dx add def /y x Cos def x y lineto } repeat stroke grestore gsave newpath /x llx def /y x phase sub Cos def x y moveto N { /x x dx add def /y x phase sub Cos def x y lineto } repeat stroke grestore % gsave currentlinewidth 2 div setlinewidth /n phase 2 //Pi mul div cvi def /P phase 2 //Pi mul n mul sub def P urx gt { /P phase 10 //Pi mul sub def } if -3 1 3 { /i exch def % } for grestore /phase phase dp add def page-end } loop grestore