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
| % je crée une sphère :
k=5;
n=2^k-1;
[Xs,Ys,Zs] = sphere(n);
% je la déforme suivant les trois axes
Xe = 1.2*L0x*Xs;
Ye = 5*Ys;
Ze = (3*L0zb/4)*Zs;
% je lui applique ma matrice de rotation suivant l'axe x d'une valeur de "tb1" et suivant l'axe z d'une valeur de "tb2"
mat_rot = [1 0 0; 0 cos(tb1) -sin(tb1); 0 sin(tb1) cos(tb1)]*[cos(tb2) -sin(tb2) 0; sin(tb2) cos(tb2) 0; 0 0 1];
for frer=1:size(Xs,1)
Xer(frer,:)=mat_rot(1,:)*[Xe(:,frer)';Ye(:,frer)';Ze(:,frer)'];
Yer(frer,:)=mat_rot(2,:)*[Xe(:,frer)';Ye(:,frer)';Ze(:,frer)'];
Zer(frer,:)=mat_rot(3,:)*[Xe(:,frer)';Ye(:,frer)';Ze(:,frer)'];
end
% je calcule sa position dans l'espace
Xc = 0;
Yc = -L0zb*sin(tb1)/2;
Zc = L0zb*cos(tb1)/2;
% je translate tous mes points
Xer=Xer'+Xc;
Yer=Yer'+Yc;
Zer=Zer'+Zc;
% Et enfin je trace mon ellipsoïde
hold on
c = hadamard(2^k);
colormap([1 1 0; 1 1 0]);
surf(Xer,Yer,Zer,c); |
Partager