1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64
| %fixe les rapports de longueur entre les axes x y z
daspect([1,1,1])
%fixe les bornes sur les axes x et y
xlim([0,120])
ylim([2,45])
%récupère le handle du système d'axe
ax=gca;
%CONDITIONNEMENTS
%on définit une transformation homogène (hg homogeneous transform)
t = hgtransform('Parent',ax);
%on crée une matrice 10x4 avec les coordonnées de 10 rectangles
coord=ones(10,4);
%les ordonnées restent fixées à 3
coord(:,2)=3*coord(:,2);
%la largeur des rectangles est fixée à 12
coord(:,3)=12*coord(:,3);
%la hauteur des rectangles est fixée à 16
coord(:,4)=16*coord(:,4);
%les abscisses sont décalées de 3 en 3
for k=2:10
coord(k,1)=coord(k-1,1)-13;
end
%trace dix rectangles rouge
for k=1:10
h_rect(k)=rectangle('Position',coord(k,:),...
'Curvature',[0,0],...
'Parent',t,...
'FaceColor','cyan')
end
%STEAK HACHE
%on définit une transformation homogène (hg homogeneous transform)
s = hgtransform('Parent',ax);
%on crée une matrice 10x4 avec les coordonnées de 10 steaks
coord=ones(10,4);
%les ordonnées varient entre 25 et 33
coord(:,2)=25*coord(:,2);
%on définit l'arrivee des steaks (aleatoire):
%random(25,35);
%la largeur des steak est fixée à 10
coord(:,3)=10*coord(:,3);
%la hauteur des steak est fixée à 7
coord(:,4)=7*coord(:,4);
%les abscisses sont aleatoires
for l=2:10
coord(l,1)=coord(l-1,1)-13;
end
%trace des steaks hachés
for l=1:10
h_ellips=rectangle('Position',coord(l,:),...
'Curvature',[1,1],...
'Parent',s,...
'FaceColor','r')
end
%on démarre une boucle d'animation
for k=1:1000
%on définit les paramètres de la translation
Txy = makehgtform('translate',[k/1 0 0]);
%la commande précédente crée la matrice de transformation homogène!!
set(t,'Matrix',Txy);
set(s,'Matrix',Txy);
%on met à jour l'affichage
drawnow
pause(0.5)
end |
Partager