Az interferencia-zaj kiesett a +dphase segítségével. Ez eltolja a hullámot, hogy ne mindig ugyan olyan fázisban induljon a QWP-ről. Ez okozta a képeken a zajt.
A quarterwaveplate függvény részletesebben. Adott két tengely, a gyors és a lassú. A lassú irányú komponense a hullámnak el fog tolódni 90 fokkal. (a fázisa). Ekkor a hullám forogni fog, ha addig polarizált volt. Ha a fény polarizációs iránya egybe esik a gyors tengellyel, akkor nincs lassú komponens, így nincs ami eltolódjon.
A gyors tengely:
add_amp(&axis_fast,qwp,1.0,1.0);
A lassú:
add_amp(&axis_slow,qwp+90.0/radian,1.0,1.0);
A bejövő fény, phase a polari
add_amp(&input_wave,phase,1.0,1.0);
Ennek a két tengelyre eső komponense:
double amp_fast=dot(&axis_fast,&input_wave);
double amp_slow=dot(&axis_slow,&input_wave);
A két tengely irányú új hullám:
amp_fast=cos(dist+dphase)*amp_fast;
amp_slow=sin(dist+dphase)*amp_slow;//-+90 phase shift
A sin() hullám az ugyan az mint a cos(), de 90 fokkal el van tolva a fázisa.
És ezek összege:
v->x += (axis_fast.x*amp_fast + axis_slow.x*amp_slow)*ax;
v->y += (axis_fast.y*amp_fast + axis_slow.y*amp_slow)*ay;