Source: https://melusine.eu.org/syracuse/pstricks/pc/pst-diffraction/pst-diffraction-doc.pdf