Animation of wavelength of light v photon energy
Matlab code 

% Cartoon of a magnon wave in 1-D or 2-D

 

clear; close all;

 

prompt = '1-D wave (1), or 2-D wave (2)? ';

d12 = input(prompt);

 

figure('units','pixels','position',[0 0 1920 1080],'ToolBar','none');

vid = VideoWriter('magnon.mp4','MPEG-4');

vid.Quality = 100;

vid.FrameRate = 30;

open(vid);

set(0,'defaultfigurecolor',[1 1 1]);

set(gca,'linewidth',7);

lp = [0.4 -0.4 0.7];

lp2 = [0 0 2];

r = 0.25;

[x,y,z] = sphere(70);

LL = 1.6;

if (d12 == 1)

    kkmax = 0;

else

    kkmax = 23;

end

for jj = 0:0.25:23.75

    hold off;

    for ii = 0:23

        for kk = 0:kkmax

            newplot

            spin = mArrow3([ii kk -1],[ii kk 1.4],'color','r','stemWidth',0.08,'tipWidth',0.14,'facealpha',1); 

            rotate(spin,[1 0 0],30,[ii,kk,0]);

            rotate(spin,[0 0 1],(ii+jj+kk)*180/12,[ii,kk,0]);

            hold on

            surf(ii+x*r,kk+y*r,z*r,'FaceColor',[0.28 0.32 0.64],'EdgeColor','none');

        end

    end

    axis equal

    axis off

    xlim([-2 26]);

    if (d12 == 1)

        ylim([-LL LL]);

    else

        ylim([-2 26]);

    end

    zlim([-LL LL]);

    view(25,20);

    light('Position',lp,'Style','infinite');

    light('Position',lp2,'Style','infinite');

    frame = getframe(gcf);

    writeVideo(vid,frame);

end

hold off;

% Output the movie as an mpg file

close(vid);