Code covered by the BSD License  

Highlights from
AnimateLaTeX

image thumbnail
from AnimateLaTeX by Per Bergström
Generates animation source code in LaTeX.

animateEx
function animateEx
% Function illustrating animateinlineLaTeX

runEx1=1;
runEx2=1;

if runEx1

    % Example 1, moving sine and cosine curves

    AniLaTeX=[];
    frameContent='';
    figureDirectory='';
    figcounter=0;
    filename='example1';
    frmps=6;

    loops=140;

    points=200;

    phi=linspace(0,2*pi*(1-1/loops),loops);

    theta=linspace(0,14,points);

    for i=1:loops

        y1=sin(theta-phi(i));
        y2=0.64*cos(1.42*theta+2*phi(i));

        figure(1),plot(theta,y1,'r',theta,y2,'b');

        figcounter=figcounter+1;
        saveas(gcf,[filename,'_',num2str(figcounter),'.eps'],'psc2');
        AniLaTeX=animategraphicsLaTeX(AniLaTeX,[filename,'_',num2str(figcounter),'.eps'],figureDirectory,frameContent,frmps,[]);

    end

    figure(1),close;
    animategraphicsLaTeX(AniLaTeX,filename,'autoplay,loop,width=4in');

    clear AniLaTeX filename figureDirectory includegraphicsOptions frmps;

end

if runEx2

    % Example 2, Set of rotating points in R^3 on a unit sphere colored in
    % different colors

    AniLaTeX=[];
    includegraphicsOptions='';
    figureDirectory='';
    figcounter=0;
    filename='example2';
    frmps=5;

    loops=150;

    numpnt=69;

    p=randn(3,numpnt);
    for i=1:numpnt
        p(:,i)=p(:,i)/norm(p(:,i));
    end
    clr=rand(numpnt,3);

    [R0,tra]=qr(randn(3));
    R0inv=inv(R0);
    R1=R0(:,[2 1 3]);
    R1inv=inv(R1);

    alphavec=pi*cos(linspace(0,pi*(1-1/loops),loops));
    alphavec1=linspace(0,2*pi*(1-1/loops),loops);

    for i=1:loops

        figure(1),hold on;

        ptemp=(R1inv*[cos(alphavec1(i)) -sin(alphavec1(i)) 0;sin(alphavec1(i)) cos(alphavec1(i)) 0;0 0 1]*R1)*(R0inv*[cos(alphavec(i)) -sin(alphavec(i)) 0;sin(alphavec(i)) cos(alphavec(i)) 0;0 0 1]*R0)*p;
        for i=1:numpnt
            plot3(ptemp(1,i),ptemp(2,i),ptemp(3,i),'.','color',clr(i,:),'markersize',9);
        end
        
        axis equal;
        view(2);
        axis([-1.1 1.1 -1.1 1.1 -1.1 1.1]);
        set(gca,'Visible','off');

        figcounter=figcounter+1;
        saveas(gcf,[filename,'_',num2str(figcounter),'.eps'],'psc2');
        AniLaTeX=animateinlineLaTeX(AniLaTeX,[filename,'_',num2str(figcounter),'.eps'],figureDirectory,includegraphicsOptions,frmps,[]);

        figure(1),hold off,close;

    end

    animateinlineLaTeX(AniLaTeX,filename,'autoplay,loop,width=3.5in');
    
    clear AniLaTeX filename figureDirectory includegraphicsOptions frmps;

end

Contact us at files@mathworks.com