% 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