Cartoon of circling around a cemetery
Matlab code 

% Cartoon showing a circular path above a cemetery, highlighting the

% different crystal planes between crosses 

 

clear; close all;

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

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

vid.Quality = 100;

vid.FrameRate = 30;

open(vid);

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

set(gca,'linewidth',7);

 

set(gca, 'Projection','perspective');

set(gca,'View',[0,20]);

campos([50 50 4]);

lp = [-0.7 -0.5 0.5];

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

axis equal

axis off

LL = 25*1.42;

xlim([-LL LL]);

ylim([-LL LL]);

zlim([-0.02 2.1]);

gray = [0.3 0.3 0.3];

%gray = [0.3 0.28 0.55];

lightgray = [0.7 0.7 0.7];

 

[x,y,z] = sphere;

 

for theta = 0:0.25:359.75

    hold off

    newplot

    set(gca, 'Projection','perspective');

    %set(gca,'View',[0,20]);

    campos([0 22 3.2]);

    axis equal

    axis off

    

    for i = -25:2:25

        for j = -25:2:25

            

            hold on

            l1 = plot3([i i],[j j],[0 1.4],'LineWidth',4,'Color',gray);

            l2 = plot3([i i],[j+0.002 j+0.002],[0 1.4],'LineWidth',4,'Color',gray);

            l3 = plot3([i i],[j+0.004 j+0.004],[0 1.4],'LineWidth',4,'Color',gray);

            l4 = plot3([i i],[j+0.006 j+0.006],[0 1.4],'LineWidth',4,'Color',gray);

            c1 = plot3([i-0.25 i+0.25],[j j],[1 1],'LineWidth',4,'Color',gray);

            c2 = plot3([i-0.25 i+0.25],[j+0.002 j+0.002],[1 1],'LineWidth',4,'Color',gray);

            c3 = plot3([i-0.25 i+0.25],[j+0.004 j+0.004],[1 1],'LineWidth',4,'Color',gray);

            c4 = plot3([i-0.25 i+0.25],[j+0.006 j+0.006],[1 1],'LineWidth',4,'Color',gray);

            ls = plot3([i i+1],[j j+1],[0 0],'LineWidth',3,'Color',lightgray);

            cs = plot3([i+0.45 i+0.95],[j+0.7 j+0.7],[0 0],'LineWidth',3,'Color',lightgray);

            rotate(l1,[0 0 1],theta,[0,0,0]);

            rotate(l2,[0 0 1],theta,[0,0,0]);

            rotate(l3,[0 0 1],theta,[0,0,0]);

            rotate(l4,[0 0 1],theta,[0,0,0]);

            rotate(c1,[0 0 1],theta,[0,0,0]);

            rotate(c2,[0 0 1],theta,[0,0,0]);

            rotate(c3,[0 0 1],theta,[0,0,0]);

            rotate(c4,[0 0 1],theta,[0,0,0]);

            rotate(ls,[0 0 1],theta,[0,0,0]);

            rotate(cs,[0 0 1],theta,[0,0,0]);

        end

    end

    surf(0.01*x+LL,0.01*y+LL,0.01*z+0.5,'FaceAlpha',0.01,...

        'FaceColor','blue','LineStyle','none');

    surf(0.01*x-LL,0.01*y-LL,0.01*z+0.5,'FaceAlpha',0.01,...

        'FaceColor','blue','LineStyle','none');

    surf(0.01*x+LL,0.01*y-LL,0.01*z+0.5,'FaceAlpha',0.01,...

        'FaceColor','blue','LineStyle','none');

    surf(0.01*x-LL,0.01*y+LL,0.01*z+0.5,'FaceAlpha',0.01,...

        'FaceColor','blue','LineStyle','none');

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

    theta 

    

    frame = getframe(gcf);

    writeVideo(vid,frame);

    

end

% Output the movie as an mpg file

close(vid);