Bonjour j'ai essayé de représenter un cylindre combiné à deux ellipsoïde, mon code fonctionne,mais je dois me tromper dans la méthode vu que j’obtiens n'importe quoi.
Bien cordialement,Code:%nombre de nœud selon x, y, et z nx = 100; ny = 100; nz = 100; %côtes xmin = 0; xmax = 1; ymax = 0.05; ymin = -0.05; zmax = 0.05; zmin = -0.05; l = 1; %pas d'espace dx = (xmax - xmin) / (nx-1); dy = (ymax - ymin) /(nx-1); dz = (zmax - zmin) /(nz-1); %domaine x = xmin : dx : xmax; y = ymin : dy : ymax; z= zmin : dz : zmax; N = length(x); %100 éléments %figure %Pour les demi-ellipsoides %phi u = 0 : pi/99 : pi; %size(1*100) %teta v = -pi/2 : pi/99 : pi/2; %size(1*100) % pour le cylindre %omega w = 0 : (2*pi)/99 : 2*pi; X = zeros(1,nx); Y = zeros(1,ny); Z = zeros(1,nz); for i = 1 :(nx-1) for j = 1 :(ny-1) if (x(i)>= 0 && x(i)<0.05) %partie ellipsoide X(i,j) = x(i).*cos(v(1,i)).*cos(u(1,i)); Y(i,j) = y(i).*cos(v(1,i)).*sin(u(1,i)); Z(i,j) = z(i).*sin(v(1,i)); elseif (x(i)>=0.05 && x(i) <0.99) %partie cylindrique X(i,j) = repmat(x(i)*cos(w(1,i)),1,1); Y(i,j) = repmat(y(i)*sin(w(1,i)),1, 1); Z(i,j) = repmat(z(i) ,1,1); else (x(i)>=0.99 && x(i)<=1); %partie elllipsoide X(i,j) = x(i).*cos(v(1,i)).*cos(u(1,i)); Y(i,j) = y(i).*cos(v(1,i)).*sin(u(1,i)); Z(i,j) = z(i).*sin(v(1,i)); end end end surf(X,Y,Z)
Marsu23
-----

