Cartoon of stretching mode of a diatomic molecular vibration
Matlab code
% Cartoon of a vibrating diatomic molecule
clear; close all;
vid = VideoWriter('vibratingMolecule.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];
ec = [0.25 0.28 0.5]; % Phil blue
fc = [1.0 0.83 0]; % Gold
LL= 7;
for i=0:29
hold off;
newplot;
xlim([-LL LL]);
ylim([-LL LL]);
zlim([-LL LL]);
axis equal;
axis off;
light('Position',lp,'Style','infinite');
set(gca, 'Projection','perspective');
axis equal
axis off
view(20,40);
hold on;
xlim([-LL LL]);
ylim([-LL LL]);
zlim([-LL LL]);
wavex0 = -2.5:0.00025:2.5;
ampl = 1 + 0.2*sin(2*pi*i/30);
wavex = ampl*wavex0;
wavey = sin(5*pi*wavex/ampl);
wavez = cos(5*pi*wavex/ampl);
plot3(wavex,wavey,wavez,'color',ec, 'LineWidth', 3.0);
r = 2;
xpos = max(wavex)+r
[x,y,z] = sphere(70); surf(xpos+x*r,y*r,z*r,'FaceColor',ec,'EdgeColor','none');
[x,y,z] = sphere(70); surf(-xpos+x*r,y*r,z*r,'FaceColor',ec,'EdgeColor','none');
frame = getframe(gcf);
writeVideo(vid,frame);
end
frame = getframe(gcf);
writeVideo(vid,frame);
close(vid);