% COLOMB

% Ce script nécessite les fonctions: fcolor, fcone, fcone2, fsol, fsphere2, ftore2 et ftube 2

%PARAMETRES D'EXECUTION
intro = 1; %1 = on / 0 = off
anim = 1; %1 = on / 0 = off
    randmode = 1; %0 = rien / 1 = hasard / 2 = tous
    pas = 0.5; %normal: 0.5
fine = 1; %1 = on / 0 = off



%A) TEXTE DU DÉBUT
if intro == 1
    
    %décompte
    for i = 1:16
        az2 = (i-1)/(16-1)*2*pi;
        [ph,th] = meshgrid(0:pi/10:pi/2,0:az2/50:az2);
        x = cos(ph).*cos(th);
        y = cos(ph).*sin(th);
        z = 0*ph;
        surf(x,y,z)
        
        text(0,0,1,'5','FontSize',200,'HorizontalAlignment','center')
        
        colormap ([1 0 0])
        shading interp
        axis ([-1.31 1.31 -1 1])
        axis off
        view(0,90)
        drawnow
    end
    for i = 1:16
        az2 = (i-1)/(16-1)*2*pi;
        [ph,th] = meshgrid(0:pi/10:pi/2,0:az2/50:az2);
        x = cos(ph).*cos(th);
        y = cos(ph).*sin(th);
        z = 0*ph;
        surf(x,y,z)
        
        text(0,0,1,'4','FontSize',200,'HorizontalAlignment','center')
        
        colormap ([1 1 0])
        shading interp
        axis ([-1.31 1.31 -1 1])
        axis off
        view(0,90)
        drawnow
    end
    for i = 1:16
        az2 = (i-1)/(16-1)*2*pi;
        [ph,th] = meshgrid(0:pi/10:pi/2,0:az2/50:az2);
        x = cos(ph).*cos(th);
        y = cos(ph).*sin(th);
        z = 0*ph;
        surf(x,y,z)
        
        text(0,0,1,'3','FontSize',200,'HorizontalAlignment','center')
        
        colormap ([0 1 0])
        shading interp
        axis ([-1.31 1.31 -1 1])
        axis off
        view(0,90)
        drawnow
    end
    for i = 1:16
        az2 = (i-1)/(16-1)*2*pi;
        [ph,th] = meshgrid(0:pi/10:pi/2,0:az2/50:az2);
        x = cos(ph).*cos(th);
        y = cos(ph).*sin(th);
        z = 0*ph;
        surf(x,y,z)
        
        text(0,0,1,'2','FontSize',200,'HorizontalAlignment','center')
        
        colormap ([0.25 0.75 1])
        shading interp
        axis ([-1.31 1.31 -1 1])
        axis off
        view(0,90)
        drawnow
    end
    for i = 1:16
        az2 = (i-1)/(16-1)*2*pi;
        [ph,th] = meshgrid(0:pi/10:pi/2,0:az2/50:az2);
        x = cos(ph).*cos(th);
        y = cos(ph).*sin(th);
        z = 0*ph;
        surf(x,y,z)
        
        text(0,0,1,'1','FontSize',200,'HorizontalAlignment','center')
        
        colormap ([1 0 1])
        shading interp
        axis ([-1.31 1.31 -1 1])
        axis off
        view(0,90)
        drawnow
    end
    
    
    %effacement de l'écran
    clf
    
    %cadrage et couleur du fond de l'écran
    axis([0 2 0 2])
    scrsz = get(0,'ScreenSize');
    set(gcf,'Color',[0 0 0.4],'Position',[1 1 scrsz(3) scrsz(4)])
    
    %descente de "1492"
    h  = text(1,2.2,'1492','FontSize',80,'HorizontalAlignment','center','color','w');
    axis off
    xh = get(h,'Position');
    xt = 0:0.05:0.8;
    for i = 1:length(xt)
        set(h,'Position',xh-[0 xt(i) 0])
        set(h,'FontSize',1+xt(i)*100)
        pause(0.1)
    end
    pause(1)
    
    %texte "Christophe Colomb..."
    text(1,0.85,'Christophe Colomb','FontSize',40,'HorizontalAlignment','center', ...
    'FontAngle','italic','color','w')
    text(1,0.50,'découvre l''Amérique','FontSize',40,'HorizontalAlignment','center', ...
    'FontAngle','italic','color','w')
    pause(0.8)
    
    %disparition du texte
    for i = 1:16
        text(1,1.4,'1492','FontSize',81,'HorizontalAlignment','center', ...
        'color',[(16-i)/15 (16-i)/15 (26-i)/25])
        text(1,0.85,'Christophe Colomb','FontSize',40,'HorizontalAlignment','center', ...
        'FontAngle','italic','color',[(16-i)/15 (16-i)/15 (26-i)/25])
        text(1,0.50,'découvre l''Amérique','FontSize',40,'HorizontalAlignment','center', ...
        'FontAngle','italic','color',[(16-i)/15 (16-i)/15 (26-i)/25])
        pause(0.125)
    end
    
    %couleur du fond de l'écran
    set(gcf,'Color',[0.8 0.8 0.8])
end %end intro

%------------------------------------------------------------------------------------------

%B) ANIMATION
if anim == 1
    
    %B I) DESSIN DES ÉLÉMENTS
    
    %DESSIN DE LA MER AGITÉE
    a = -20;
    b = 40.9;
    c = -35;
    d = 35;
    [x,y] = meshgrid(a:(b-a)/50:b,c:(d-c)/50:d);
    z = sin(3*x).*cos(2*y)/5-0.4;
    o61 = surfl(x,y,2*z);
    
    hold on
    
    
    
    %DESSIN DE LA PLAGE
    o62 = ftore2(71.008*pi/72,72.992*pi/72,0,pi,805,805,5,0.5,+850,0,-0.6,3,50,2);
    
    
    
    %DESSIN DES PALMIERS
    %premier palmier
    A = rand(1,9);
    
    %apparition du palmier
    switch randmode
    case 0
        P1 = 0;
    case 1
        if A(1)>0.33
            P1 = 1;
        else
            P1 = 0;
        end
    case 2
        P1 = 1;
    end
    
    if P1 == 1
        %position du palmier
        dx = 42+7*A(2);
        dy = 26.5+7.5*A(3);
        dz = -0.4;
        
        %dessin du palmier
        o63 = fsphere2(0, 2*pi, -pi/2, pi/2, 1,   0.4, 0.1, -0.8+dx, 0+dy,    3+dz, 50, 2);
        o64 = fsphere2(0, 2*pi, -pi/2, pi/2, 1,   0.4, 0.1, 0.8+dx,  0+dy,    3+dz, 50, 2);
        o65 = fsphere2(0, 2*pi, -pi/2, pi/2, 0.4, 1,   0.1, 0+dx,    -0.8+dy, 3+dz, 50, 2);
        o66 = fsphere2(0, 2*pi, -pi/2, pi/2, 0.4, 1,   0.1, 0+dx,    0.8+dy,  3+dz, 50, 2);
        rotate(o63,[0 1 0],-30,[-0.8+dx 0+dy    3+dz])
        rotate(o64,[0 1 0], 30,[0.8+dx  0+dy    3+dz])
        rotate(o65,[1 0 0], 30,[0+dx    -0.8+dy 3+dz])
        rotate(o66,[1 0 0],-30,[0+dx    0.8+dy  3+dz])
        rotate(o63,[0 0 1],45*A(4)-20*A(9)+40*A(9)*A(5),[dx dy dz])
        rotate(o64,[0 0 1],45*A(4)-20*A(9)+40*A(9)*A(6),[dx dy dz])
        rotate(o65,[0 0 1],45*A(4)-20*A(9)+40*A(9)*A(7),[dx dy dz])
        rotate(o66,[0 0 1],45*A(4)-20*A(9)+40*A(9)*A(8),[dx dy dz])
        
        o67 = ftube(0.2,3.3,0+dx,0+dy,0+dz,3,2);
    end
    
    
    %deuxième palmier
    A = rand(1,9);
    
    %apparition du palmier
    switch randmode
    case 0
        P2 = 0;
    case 1
        if A(1)>0.33
            P2 = 1;
        else
            P2 = 0;
        end
    case 2
        P2 = 1;
    end
    
    if P2 == 1
        %position du palmier
        dx = 42+7*A(2);
        dy = 17+7.5*A(3);
        dz = -0.4;
        
        %dessin du palmier
        o68 = fsphere2(0, 2*pi, -pi/2, pi/2, 1,   0.4, 0.1, -0.8+dx, 0+dy,    3+dz, 50, 2);
        o69 = fsphere2(0, 2*pi, -pi/2, pi/2, 1,   0.4, 0.1, 0.8+dx,  0+dy,    3+dz, 50, 2);
        o70 = fsphere2(0, 2*pi, -pi/2, pi/2, 0.4, 1,   0.1, 0+dx,    -0.8+dy, 3+dz, 50, 2);
        o71 = fsphere2(0, 2*pi, -pi/2, pi/2, 0.4, 1,   0.1, 0+dx,    0.8+dy,  3+dz, 50, 2);
        rotate(o68,[0 1 0],-30,[-0.8+dx 0+dy    3+dz])
        rotate(o69,[0 1 0], 30,[0.8+dx  0+dy    3+dz])
        rotate(o70,[1 0 0], 30,[0+dx    -0.8+dy 3+dz])
        rotate(o71,[1 0 0],-30,[0+dx    0.8+dy  3+dz])
        rotate(o68,[0 0 1],45*A(4)-20*A(9)+40*A(9)*A(5),[dx dy dz])
        rotate(o69,[0 0 1],45*A(4)-20*A(9)+40*A(9)*A(6),[dx dy dz])
        rotate(o70,[0 0 1],45*A(4)-20*A(9)+40*A(9)*A(7),[dx dy dz])
        rotate(o71,[0 0 1],45*A(4)-20*A(9)+40*A(9)*A(8),[dx dy dz])
        
        o72 = ftube(0.2,3.3,0+dx,0+dy,0+dz,3,2);
    end
    
    
    %troisième palmier
    A = rand(1,9);
    
    %apparition du palmier
    switch randmode
    case 0
        P3 =0 ;
    case 1
        if A(1)>0.33
            P3 = 1;
        else
            P3 = 0;
        end
    case 2
        P3 = 1;
    end
    
    if P3 == 1
        %position du palmier
        dx = 42+7*A(2);
        dy = -11.5+7.5*A(3);
        dz = -0.4;
        
        %dessin du palmier
        o73 = fsphere2(0, 2*pi, -pi/2, pi/2, 1,   0.4, 0.1, -0.8+dx, 0+dy,    3+dz, 50, 2);
        o74 = fsphere2(0, 2*pi, -pi/2, pi/2, 1,   0.4, 0.1, 0.8+dx,  0+dy,    3+dz, 50, 2);
        o75 = fsphere2(0, 2*pi, -pi/2, pi/2, 0.4, 1,   0.1, 0+dx,    -0.8+dy, 3+dz, 50, 2);
        o76 = fsphere2(0, 2*pi, -pi/2, pi/2, 0.4, 1,   0.1, 0+dx,    0.8+dy,  3+dz, 50, 2);
        rotate(o73,[0 1 0],-30,[-0.8+dx 0+dy    3+dz])
        rotate(o74,[0 1 0], 30,[0.8+dx  0+dy    3+dz])
        rotate(o75,[1 0 0], 30,[0+dx    -0.8+dy 3+dz])
        rotate(o76,[1 0 0],-30,[0+dx    0.8+dy  3+dz])
        rotate(o73,[0 0 1],45*A(4)-20*A(9)+40*A(9)*A(5),[dx dy dz])
        rotate(o74,[0 0 1],45*A(4)-20*A(9)+40*A(9)*A(6),[dx dy dz])
        rotate(o75,[0 0 1],45*A(4)-20*A(9)+40*A(9)*A(7),[dx dy dz])
        rotate(o76,[0 0 1],45*A(4)-20*A(9)+40*A(9)*A(8),[dx dy dz])
        
        o77 = ftube(0.2,3.3,0+dx,0+dy,0+dz,3,2);
    end
    
    
    %quatrième palmier
    A = rand(1,9);
    
    %apparition du palmier
    switch randmode
    case 0
        P4 = 0;
    case 1
        if A(1)>0.33
            P4 = 1;
        else
            P4 = 0;
        end
    case 2
        P4 = 1;
    end
    
    if P4 == 1
        %position du palmier
        dx = 42+4*A(2);
        dy = -30+4.5*A(3);
        dz = -0.4;
        
        %dessin du palmier
        o78 = fsphere2(0, 2*pi, -pi/2, pi/2, 1,   0.4, 0.1, -0.8+dx, 0+dy,    3+dz, 50, 2);
        o79 = fsphere2(0, 2*pi, -pi/2, pi/2, 1,   0.4, 0.1, 0.8+dx,  0+dy,    3+dz, 50, 2);
        o80 = fsphere2(0, 2*pi, -pi/2, pi/2, 0.4, 1,   0.1, 0+dx,    -0.8+dy, 3+dz, 50, 2);
        o81 = fsphere2(0, 2*pi, -pi/2, pi/2, 0.4, 1,   0.1, 0+dx,    0.8+dy,  3+dz, 50, 2);
        rotate(o78,[0 1 0],-30,[-0.8+dx 0+dy    3+dz])
        rotate(o79,[0 1 0], 30,[0.8+dx  0+dy    3+dz])
        rotate(o80,[1 0 0], 30,[0+dx    -0.8+dy 3+dz])
        rotate(o81,[1 0 0],-30,[0+dx    0.8+dy  3+dz])
        rotate(o78,[0 0 1],45*A(4)-20*A(9)+40*A(9)*A(5),[dx dy dz])
        rotate(o79,[0 0 1],45*A(4)-20*A(9)+40*A(9)*A(6),[dx dy dz])
        rotate(o80,[0 0 1],45*A(4)-20*A(9)+40*A(9)*A(7),[dx dy dz])
        rotate(o81,[0 0 1],45*A(4)-20*A(9)+40*A(9)*A(8),[dx dy dz])
        
        o82 = ftube(0.2,3.3,0+dx,0+dy,0+dz,3,2);
    end
    
    
    
    %DESSIN DES HUTTES
    %première hutte
    A = rand(1,3);
    
    %apparition de la hutte
    switch randmode
    case 0
        H1 = 0;
    case 1
        if A(1)>0.33
            H1 = 1;
        else
            H1 = 0;
        end
    case 2
        H1 = 1;
    end
    
    if H1 == 1
        %position du la hutte
        dx = 43+5*A(2);
        dy = -22.5+8*A(3);
        dz = -0.4;
        
        %dessin de la hutte
        o91 = ftube(1.5,1.5,0+dx,0+dy,0+dz,3,2);
        o92 = fcone(1.8,0.6,0+dx,0+dy,1.5+dz,31,2);
    end
    
    
    %deuxième hutte
    A = rand(1,3);
    
    %apparition de la hutte
    switch randmode
    case 0
        H2 = 0;
    case 1
        if A(1)>0.33
            H2 = 1;
        else
            H2 = 0;
        end
    case 2
        H2 = 1;
    end
    
    if H2 == 1
        %position de la hutte
        dx = 43+5*A(2);
        dy = 6+8*A(3);
        dz = -0.4;
        
        %dessin de la hutte
        o93 = ftube(1.5,1.5,0+dx,0+dy,0+dz,3,2);
        o94 = fcone(1.8,0.6,0+dx,0+dy,1.5+dz,31,2);
    end
    
    
    
    %DESSIN DU PREMIER BATEAU
    %position initiale du premier bateau
    dx = 0;
    dy = 0;
    
    %dessin des parties du bateau
    t = 2;
    
    %coque
    o1 = fcone2(  0,      1,      1,       3,       pi,    2*pi,  0+dx,  0+dy,     0,    11,   50, t);
    o2 = fcone2(  0.999,  1,      1,       4,       pi,    2*pi,  -4+dx, 0+dy,     0,    11,   50, t);
    o3 = fsphere2(pi/2,   3*pi/2, -pi/2,   0,       1,     1,     1,     -4+dx,    0+dy, 0,    50, t);
    
    %pont
    o4 = fsol(    4,      1.92,   -4+dx,   -1+dy,   -0.2,  3,     t);
    o5 = fsphere2(pi/2,   3*pi/2, -pi/2,   0,       0.96,  0.96,  0,     -4+dx,    0+dy, -0.2, 50, t);
    o6 = fcone2(  0,      0.96,   0,       2.4,     0,     2*pi,  0+dx,  0+dy,     -0.2, 11,   50, t);
    
    %mat
    o7 = ftube(   0.05,   4,      -0.5+dx, 0+dy,    0,     3,     t);
    o9 = ftube(   0.05,   2.6,    -0.4+dx, -1.3+dy, 3.8,   2,     t);
    o10= ftube(   0.05,   2.6,    -0.4+dx, -1.3+dy, 0.8,   2,     t);
    
    %voile
    o8 = fsphere2(-pi/5,  pi/5,   -pi/5,   pi/5,    3,     2.5,   2.61,  -2.36+dx, 0+dy,  2.32, 50, t); 
    o16= fsphere2(-pi/20, pi/20,  -pi/10,  pi/10,   3.05,  2.55,  2.66,  -2.36+dx, 0+dy,  2.32, 50, t);
    
    %cabine
    o11= fsol(    2,      1.2,    -4+dx,   -0.6+dy, 0.8,   3,     t);
    o12= fsol(    2,      1,      -4+dx,   -0.6+dy, -0.2,  2,     t);
    o13= fsol(    2,      1,      -4+dx,   0.6+dy,  -0.2,  2,     t);
    o14= fsol(    1.2,    1,      -4+dx,   -0.6+dy, -0.2,  1,     t);
    o15= fsol(    1.2,    1,      -2+dx,   -0.6+dy, -0.2,  1,     t);
    
    
    
    %DESSIN DU DEUXIEME BATEAU
    %position initiale du deuxième bateau
    dx = -5;
    dy = 7;
    
    %dessin des parties du bateau
    %coque
    o21= fcone2(  0,      1,      1,       3,       pi,    2*pi,  0+dx,  0+dy,     0,    11,   50, t);
    o22= fcone2(  0.999,  1,      1,       4,       pi,    2*pi,  -4+dx, 0+dy,     0,    11,   50, t);
    o23= fsphere2(pi/2,   3*pi/2, -pi/2,   0,       1,     1,     1,     -4+dx,    0+dy, 0,    50, t);
    
    %pont
    o24= fsol(    4,      1.92,   -4+dx,   -1+dy,   -0.2,  3,     t);
    o25= fsphere2(pi/2,   3*pi/2, -pi/2,   0,       0.96,  0.96,  0,     -4+dx,    0+dy, -0.2, 50, t);
    o26= fcone2(  0,      0.96,   0,       2.4,     0,     2*pi,  0+dx,  0+dy,     -0.2, 11,   50, t);
    
    %mat
    o27= ftube(   0.05,   4,      -0.5+dx, 0+dy,    0,     3,     t);
    o29= ftube(   0.05,   2.6,    -0.4+dx, -1.3+dy, 3.8,   2,     t);
    o30= ftube(   0.05,   2.6,    -0.4+dx, -1.3+dy, 0.8,   2,     t);
    
    %voile
    o28= fsphere2(-pi/5,  pi/5,   -pi/5,   pi/5,    3,     2.5,   2.61,  -2.36+dx, 0+dy,  2.32, 50, t); 
    o36= fsphere2(-2*pi/15,-pi/30,-pi/10,  pi/10,   3.05,  2.55,  2.66,  -2.36+dx, 0+dy,  2.32, 50, t);
    o37= fsphere2(pi/30,  2*pi/15,-pi/10,  pi/10,   3.05,  2.55,  2.66,  -2.36+dx, 0+dy,  2.32, 50, t);
    
    %cabine
    o31= fsol(    2,      1.2,    -4+dx,   -0.6+dy, 0.8,   3,     t);
    o32= fsol(    2,      1,      -4+dx,   -0.6+dy, -0.2,  2,     t);
    o33= fsol(    2,      1,      -4+dx,   0.6+dy,  -0.2,  2,     t);
    o34= fsol(    1.2,    1,      -4+dx,   -0.6+dy, -0.2,  1,     t);
    o35= fsol(    1.2,    1,      -2+dx,   -0.6+dy, -0.2,  1,     t);
    
    
    
    %DESSIN DU TROISIEME BATEAU
    %position initiale du troisième bateau
    dx = -10;
    dy = -7;
    
    %dessin des parties du bateau
    %coque
    o41= fcone2(  0,      1,      1,       3,       pi,    2*pi,  0+dx,  0+dy,     0,    11,   50, t);
    o42= fcone2(  0.999,  1,      1,       4,       pi,    2*pi,  -4+dx, 0+dy,     0,    11,   50, t);
    o43= fsphere2(pi/2,   3*pi/2, -pi/2,   0,       1,     1,     1,     -4+dx,    0+dy, 0,    50, t);
    
    %pont
    o44= fsol(    4,      1.92,   -4+dx,   -1+dy,   -0.2,  3,     t);
    o45= fsphere2(pi/2,   3*pi/2, -pi/2,   0,       0.96,  0.96,  0,     -4+dx,    0+dy, -0.2, 50, t);
    o46= fcone2(  0,      0.96,   0,       2.4,     0,     2*pi,  0+dx,  0+dy,     -0.2, 11,   50, t);
    
    %mat
    o47= ftube(   0.05,   4,      -0.5+dx, 0+dy,    0,     3,     t);
    o49= ftube(   0.05,   2.6,    -0.4+dx, -1.3+dy, 3.8,   2,     t);
    o50= ftube(   0.05,   2.6,    -0.4+dx, -1.3+dy, 0.8,   2,     t);
    
    %voile
    o48= fsphere2(-pi/5,  pi/5,   -pi/5,   pi/5,    3,     2.5,   2.61,  -2.36+dx, 0+dy,  2.32, 50, t); 
    o56= fsphere2(-pi/30, pi/30,  -pi/10,  pi/10,   3.05,  2.55,  2.66,  -2.36+dx, 0+dy,  2.32, 50, t);
    o57= fsphere2(-3*pi/20,-pi/12,-pi/10,  pi/10,   3.05,  2.55,  2.66,  -2.36+dx, 0+dy,  2.32, 50, t);
    o58= fsphere2(pi/12,  3*pi/20,-pi/10,  pi/10,   3.05,  2.55,  2.66,  -2.36+dx, 0+dy,  2.32, 50, t);
    
    %cabine
    o51= fsol(    2,      1.2,    -4+dx,   -0.6+dy, 0.8,   3,     t);
    o52= fsol(    2,      1,      -4+dx,   -0.6+dy, -0.2,  2,     t);
    o53= fsol(    2,      1,      -4+dx,   0.6+dy,  -0.2,  2,     t);
    o54= fsol(    1.2,    1,      -4+dx,   -0.6+dy, -0.2,  1,     t);
    o55= fsol(    1.2,    1,      -2+dx,   -0.6+dy, -0.2,  1,     t);
    
    %--------------------------------------------------------------------------------------------------
    
    %B II) COULEURS DES ÉLÉMENTS
    
    %données de couleurs initiales
    co61 = get(o61,'CData');
    
    co62 = get(o62,'CData');
    
    if P1 == 1
        co63 = get(o63,'CData');
        co64 = get(o64,'CData');
        co65 = get(o65,'CData');
        co66 = get(o66,'CData');
        co67 = get(o67,'CData');
    end
    
    if P2 == 1
        co68 = get(o68,'CData');
        co69 = get(o69,'CData');
        co70 = get(o70,'CData');
        co71 = get(o71,'CData');
        co72 = get(o72,'CData');
    end
    
    if P3 == 1
        co73 = get(o73,'CData');
        co74 = get(o74,'CData');
        co75 = get(o75,'CData');
        co76 = get(o76,'CData');
        co77 = get(o77,'CData');
    end
    
    if P4 == 1
        co78 = get(o78,'CData');
        co79 = get(o79,'CData');
        co80 = get(o80,'CData');
        co81 = get(o81,'CData');
        co82 = get(o82,'CData');
    end
    
    if H1 == 1
        co91 = get(o91,'CData');
        co92 = get(o92,'CData');
    end
    
    if H2 == 1
        co93 = get(o93,'CData');
        co94 = get(o94,'CData');
    end
    
    co1 = get(o1,'CData');
    co2 = get(o2,'CData');
    co3 = get(o3,'CData');
    co4 = get(o4,'CData');
    co5 = get(o5,'CData');
    co6 = get(o6,'CData');
    co7 = get(o7,'CData');
    co8 = get(o8,'CData');
    co9 = get(o9,'CData');
    co10= get(o10,'CData');
    co11= get(o11,'CData');
    co12= get(o12,'CData');
    co13= get(o13,'CData');
    co14= get(o14,'CData');
    co15= get(o15,'CData');
    co16= get(o16,'CData');
    
    %création de la palette de couleur personnalisée
    cRouges =    fcolor(1,0.5,0,0,0,0);
    cBrunclair = fcolor(0.6,0.4,0.4,0.2,0.2,0);
    cBrunfonce = fcolor(0.5,0.2,0.3,0,0,0);
    cBlancs =    fcolor(0.8,1,0.8,1,0.8,1);
    cBleus =     fcolor(0,0,0.2,0,1,0.6);
    cJaunes =    fcolor(1,1,1,0,0,0);
    cBeiges =    fcolor(0.5,1,0.3,1,0,0);
    cVerts =     fcolor(0,0.2,0.4,0.8,0,0.2);
    cPerso =     [cRouges ; cBrunclair ; cBrunfonce ; cBlancs ; cBleus ; cJaunes ; cBeiges ; cVerts];
    
    
    
    %ATTRIBUTION DES COULEURS PERSONNELLES AUX DIFFÉRENTS ÉLÉMENTS
    
    %couleur du la mer
    set(o61,'CData',co61+4);
    
    
    %couleur de la plage
    set(o62,'CData',co62+6);
    
    
    %couleur du premier palmier
    if P1 == 1
        set(o63,'CData',co63+7); %les feuilles
        set(o64,'CData',co64+7);
        set(o65,'CData',co65+7);
        set(o66,'CData',co66+7);
        
        set(o67,'CData',co67+2); %le tronc
    end
    
    %couleur du deuxième palmier
    if P2 == 1
        set(o68,'CData',co68+7); %les feuilles
        set(o69,'CData',co69+7);
        set(o70,'CData',co70+7);
        set(o71,'CData',co71+7);
        
        set(o72,'CData',co72+2); %le tronc
    end
    
    %couleur du troisième palmier
    if P3 == 1
        set(o73,'CData',co73+7); %les feuilles
        set(o74,'CData',co74+7);
        set(o75,'CData',co75+7);
        set(o76,'CData',co76+7);
        
        set(o77,'CData',co77+2); %le tronc
    end
    
    %couleur du quatrième palmier
    if P4 == 1
        set(o78,'CData',co78+7); %les feuilles
        set(o79,'CData',co79+7);
        set(o80,'CData',co80+7);
        set(o81,'CData',co81+7);
        
        set(o82,'CData',co82+2); %le tronc
    end
    
    
    %couleur de la première hutte
    if H1 == 1
        set(o91,'CData',co91+1);
        set(o92,'CData',co92+2);
    end
    
    %couleur de la première hutte
    if H2 == 1
        set(o93,'CData',co93+1);
        set(o94,'CData',co94+2);
    end
    
    
    %couleurs du premier bateau
    set(o1,'CData',co1+0); %la coque
    set(o2,'CData',co2+0);
    set(o3,'CData',co3+0);
    
    set(o4,'CData',co4+1); %le pont
    set(o5,'CData',co5+1);
    set(o6,'CData',co6+1);
    
    set(o7,'CData',co7+2); %le mat
    set(o9,'CData',co9+2);
    set(o10,'CData',co10+2);
    
    set(o8,'CData',co8+3); %la voile
    set(o16,'CData',co16+5); %le dessin sur la voile
    
    set(o11,'CData',co11+2); %la cabine
    set(o12,'CData',co12+2);
    set(o13,'CData',co13+2);
    set(o14,'CData',co14+2);
    set(o15,'CData',co15+2);
    
    
    %couleurs du deuxième bateau
    set(o21,'CData',co1+0); %la coque
    set(o22,'CData',co2+0);
    set(o23,'CData',co3+0);
    
    set(o24,'CData',co4+1); %le pont
    set(o25,'CData',co5+1);
    set(o26,'CData',co6+1);
    
    set(o27,'CData',co7+2); %le mat
    set(o29,'CData',co9+2);
    set(o30,'CData',co10+2);
    
    set(o28,'CData',co8+3); %la voile
    set(o36,'CData',co16+5); %le dessin sur la voile
    set(o37,'CData',co16+5);
    
    set(o31,'CData',co11+2); %la cabine
    set(o32,'CData',co12+2);
    set(o33,'CData',co13+2);
    set(o34,'CData',co14+2);
    set(o35,'CData',co15+2);
    
    
    %couleurs du troisème bateau
    set(o41,'CData',co1+0); %la coque
    set(o42,'CData',co2+0);
    set(o43,'CData',co3+0);
    
    set(o44,'CData',co4+1); %le pont
    set(o45,'CData',co5+1);
    set(o46,'CData',co6+1);
    
    set(o47,'CData',co7+2); %le mat
    set(o49,'CData',co9+2);
    set(o50,'CData',co10+2);
    
    set(o48,'CData',co8+3); %la voile
    set(o56,'CData',co16+5); %le dessin sur la voile
    set(o57,'CData',co16+5);
    set(o58,'CData',co16+5);
    
    set(o51,'CData',co11+2); %la cabine
    set(o52,'CData',co12+2);
    set(o53,'CData',co13+2);
    set(o54,'CData',co14+2);
    set(o55,'CData',co15+2);
    
    
    
    %APPLICATION DE LA PALETTE PERSO, LISSAGE DU QUADRILLAGE, PARAMETRAGE DES AXES
    colormap (cPerso)
    caxis([0 8])
    shading interp
    axis image
    axis off
    
    hold off
    
    %------------------------------------------------------------------------------------------
    
    %B III) MOUVEMENT DES BATEAUX ET DE LA CAMERA
    
    %position et ligne de visée initiales de la caméra
    campos([-12,-30,15])
    camtarget([15,0,0])
    
    
    
    %POSITIONS INITIALES DES PARTIE DES BATEAUX
    %positions initiales des parties du premier bateau
    xo1 = get(o1,'XData');
    xo2 = get(o2,'XData');
    xo3 = get(o3,'XData');
    xo4 = get(o4,'XData');
    xo5 = get(o5,'XData');
    xo6 = get(o6,'XData');
    xo7 = get(o7,'XData');
    xo8 = get(o8,'XData');
    xo9 = get(o9,'XData');
    xo10= get(o10,'XData');
    xo11= get(o11,'XData');
    xo12= get(o12,'XData');
    xo13= get(o13,'XData');
    xo14= get(o14,'XData');
    xo15= get(o15,'XData');
    xo16= get(o16,'XData');
    
    %positions initiales des parties du deuxième bateau
    xo21= get(o21,'XData');
    xo22= get(o22,'XData');
    xo23= get(o23,'XData');
    xo24= get(o24,'XData');
    xo25= get(o25,'XData');
    xo26= get(o26,'XData');
    xo27= get(o27,'XData');
    xo28= get(o28,'XData');
    xo29= get(o29,'XData');
    xo30= get(o30,'XData');
    xo31= get(o31,'XData');
    xo32= get(o32,'XData');
    xo33= get(o33,'XData');
    xo34= get(o34,'XData');
    xo35= get(o35,'XData');
    xo36= get(o36,'XData');
    xo37= get(o37,'XData');
    
    %positions initiales des parties du troisième bateau
    xo41= get(o41,'XData');
    xo42= get(o42,'XData');
    xo43= get(o43,'XData');
    xo44= get(o44,'XData');
    xo45= get(o45,'XData');
    xo46= get(o46,'XData');
    xo47= get(o47,'XData');
    xo48= get(o48,'XData');
    xo49= get(o49,'XData');
    xo50= get(o50,'XData');
    xo51= get(o51,'XData');
    xo52= get(o52,'XData');
    xo53= get(o53,'XData');
    xo54= get(o54,'XData');
    xo55= get(o55,'XData');
    xo56= get(o56,'XData');
    xo57= get(o57,'XData');
    xo58= get(o58,'XData');
    
    
    
    %zoom avant pour le cadrage initial
    zoom(2)
    
    
    %MOUVEMENT
    %définition de la trajectoire du bateau
    xt = 0:pas:30; %le pas est défini à la ligne 6
    
    for i = 1:length(xt)
        %mouvement du premier bateau
        set(o1,'XData',xo1+xt(i)-xt(1))
        set(o2,'XData',xo2+xt(i)-xt(1))
        set(o3,'XData',xo3+xt(i)-xt(1))
        set(o4,'XData',xo4+xt(i)-xt(1))
        set(o5,'XData',xo5+xt(i)-xt(1))
        set(o6,'XData',xo6+xt(i)-xt(1))
        set(o7,'XData',xo7+xt(i)-xt(1))
        set(o8,'XData',xo8+xt(i)-xt(1))
        set(o9,'XData',xo9+xt(i)-xt(1))
        set(o10,'XData',xo10+xt(i)-xt(1))
        set(o11,'XData',xo11+xt(i)-xt(1))
        set(o12,'XData',xo12+xt(i)-xt(1))
        set(o13,'XData',xo13+xt(i)-xt(1))
        set(o14,'XData',xo14+xt(i)-xt(1))
        set(o15,'XData',xo15+xt(i)-xt(1))
        set(o16,'XData',xo16+xt(i)-xt(1))
        
        %mouvement du deuxième bateau
        set(o21,'XData',xo21+xt(i)-xt(1))
        set(o22,'XData',xo22+xt(i)-xt(1))
        set(o23,'XData',xo23+xt(i)-xt(1))
        set(o24,'XData',xo24+xt(i)-xt(1))
        set(o25,'XData',xo25+xt(i)-xt(1))
        set(o26,'XData',xo26+xt(i)-xt(1))
        set(o27,'XData',xo27+xt(i)-xt(1))
        set(o28,'XData',xo28+xt(i)-xt(1))
        set(o29,'XData',xo29+xt(i)-xt(1))
        set(o30,'XData',xo30+xt(i)-xt(1))
        set(o31,'XData',xo31+xt(i)-xt(1))
        set(o32,'XData',xo32+xt(i)-xt(1))
        set(o33,'XData',xo33+xt(i)-xt(1))
        set(o34,'XData',xo34+xt(i)-xt(1))
        set(o35,'XData',xo35+xt(i)-xt(1))
        set(o36,'XData',xo36+xt(i)-xt(1))
        set(o37,'XData',xo37+xt(i)-xt(1))
        
        %mouvement du troisième bateau
        set(o41,'XData',xo41+xt(i)-xt(1))
        set(o42,'XData',xo42+xt(i)-xt(1))
        set(o43,'XData',xo43+xt(i)-xt(1))
        set(o44,'XData',xo44+xt(i)-xt(1))
        set(o45,'XData',xo45+xt(i)-xt(1))
        set(o46,'XData',xo46+xt(i)-xt(1))
        set(o47,'XData',xo47+xt(i)-xt(1))
        set(o48,'XData',xo48+xt(i)-xt(1))
        set(o49,'XData',xo49+xt(i)-xt(1))
        set(o50,'XData',xo50+xt(i)-xt(1))
        set(o51,'XData',xo51+xt(i)-xt(1))
        set(o52,'XData',xo52+xt(i)-xt(1))
        set(o53,'XData',xo53+xt(i)-xt(1))
        set(o54,'XData',xo54+xt(i)-xt(1))
        set(o55,'XData',xo55+xt(i)-xt(1))
        set(o56,'XData',xo56+xt(i)-xt(1))
        set(o57,'XData',xo57+xt(i)-xt(1))
        set(o58,'XData',xo58+xt(i)-xt(1))
        
        %mouvement de la caméra
        camorbit(132/length(xt),-15/length(xt))
        zoom(4.5^(1/length(xt)))
        
        drawnow
    end
    pause(2)
    
end %end anim

%------------------------------------------------------------------------------------------

%C) TEXTE DE LA FIN
if fine ==1
    
    %effacement de l'écran
    clf
    
    %texte qui défile de bas en haut
    h = text(1,-0.5,'Une réalisation','FontSize',40,'HorizontalAlignment','center');
    g = text(1,-0.9,'CBL Pictures','FontSize',50,'HorizontalAlignment','center',...
        'FontAngle','italic','color',[0 0 0.65]);
    j = text(1,-2.5,'© CBL Pictures  -  25.11.2001','FontSize',20,'HorizontalAlignment','center',...
        'FontAngle','italic');
    axis([0 2 0 2])
    axis off
    
    xh = get(h,'Position');
    xg = get(g,'Position');
    xj = get(j,'Position');
    
    xt = 0:0.05:3.5;
    for i = 1:length(xt)
        set(h,'Position',xh+[0 xt(i) 0])
        set(g,'Position',xg+[0 xt(i) 0])
        set(j,'Position',xj+[0 xt(i) 0])
        pause(0.1)
    end
    
end %end fine
pause(1)
close