%% Para generar la figura de difraccion, en funcion del numero de rendijas.
close all;
N=50; % El numero de rendijas. 
M=(5*2*pi)/N; % El limite de hasta donde dibujar. 
fi=[-M/2:M/10000:M/2] % En este caso considerar la curva simetrica (positivos y negativos(.
t=sin(N*fi/2)./(sin(fi/2));  % La funcion para la amplitud, de difraccion de n fuentes desfasadas en fi.
Y=t.*t; % La intensidad, el cuadrado de la amplitud. 
plot(fi,Y,'LineWidth',3,'Color','r'); % Plotear y arreglar la figura.
box off;set(gcf,'Color','w')
 set(gca,'xlim',[-0.3 0.3])

axis off
 set(gcf,'Position',[360 506 512 192])


%% 
% Plotear la sucesion de maximos con patro de difraccion. Esto no lo di
% finalmente en la teorica (pero esta en las diapositivas(.
close all;
N=30;
M=(5*2*pi)/N;
fi=[M/1000:M/100:4*pi+M]
t=sin(N*fi/2)./(sin(fi/2));
Y=t.*t;
plot(fi,Y,'LineWidth',2);
box off;set(gcf,'Color','w')


%% inteferencia  Generar la curva de interferencia (usado para generar la itnerferencia de dos rendijas) 
close all;
N=50;
M=(5*2*pi)/N;
fi=[-M/2:M/10000:M/2]
R=105;
t=cos(R*fi/2);
IN=t.*t;
plot(fi,IN,'LineWidth',3);
box off;set(gcf,'Color','w')
 set(gca,'xlim',[-0.3 0.3])
set(gcf,'Position',[360 506 512 192])

axis off; box off;
axis off

% interference and diffraction (tomar Y de arriba de todo).

plot(fi,Y,'--','LineWidth',2,'Color','r'); % Y esta tomada del primer segmento de cogido, corresponde a la envolvente de difraccion.
hold on
plot(fi,IN.*Y,'LineWidth',3); % El producto de interferencia y difraccion. 
box off;set(gcf,'Color','w')
 set(gca,'xlim',[-0.3 0.3])
set(gcf,'Position',[360 506 512 192])
axis off


%% Polarizacion, grafos.
% Generar vectores de polarizacion para distintas relaciones de fase. 
close all;
T=[0,0.15,0.3,0.5] % Los tiempos (en ciclos, 0.5 es medio ciclo) en los que se va a mirar el estado del campo.
for i=1:4
 figure;
a1=line([-1.1,1.1],[0,0]);set(a1,'Color','k'); % Los ejes. 
a2=line([0,0],[-1.1,1.1]);set(a2,'Color','k');

t=T(i);fi=pi/8;
A=cos(2*pi*t); B=cos(2*pi*t+fi); % El valor del campo a tiempo t, dada fi. 
h1=line([0,A],[0,0]);set(h1,'Color','b');set(h1,'LineWidth',3); % comp x
h2=line([0,0],[0,B]);set(h2,'Color','g');set(h2,'LineWidth',3); % copm y
h3=line([0,A],[0,B]);set(h3,'Color','r');set(h3,'LineWidth',3); % resultante. 
 set(gca,'xlim',[-1.1 1.1]);set(gca,'ylim',[-1.1 1.1]);
set(gcf,'Position',[360   524   242   174])
axis off;set(gcf,'Color','w')
hold on;
for ii=1:200
    tt=ii*(2*pi/200);
    AA(ii)=cos(2*pi*tt); BB(ii)=cos(2*pi*tt+fi); % aca dibujar la trayectoria de todo el campo, en negro.
end
ci=plot(AA,BB)
set(ci,'Color','k')
end

% Birrefrigencia
%% Igual que antes con dos diferencias. Kx puede ser distinto de K y graba
%% los frames para generar un gif y una animcaino. 

close all;
T=[0:0.05:2]
for i=1:length(T)
 figure;
a1=line([-1.1,1.1],[0,0]);set(a1,'Color','k');
a2=line([0,0],[-1.1,1.1]);set(a2,'Color','k');
t=T(i);fi=pi/2;
DIFVEL=1; % Distinto de 1 si es birref.
A=cos(2*pi*t*DIFVEL); B=cos(2*pi*t+fi);
h1=line([0,A],[0,0]);set(h1,'Color','b');set(h1,'LineWidth',3);
h2=line([0,0],[0,B]);set(h2,'Color','g');set(h2,'LineWidth',3);
h3=line([0,A],[0,B]);set(h3,'Color','r');set(h3,'LineWidth',3);
 set(gca,'xlim',[-1.1 1.1]);set(gca,'ylim',[-1.1 1.1]);
set(gcf,'Position',[360   524   242   174])
axis off;set(gcf,'Color','w')
hold on;
file=sprintf('Frame%d.png', 1000+i);
      disp(sprintf('Saving to %s', file));
      print('-dpng',  '-zbuffer',  '-r100', file);
      pause(0.1);
end


