Estou tentando plotar uma superfície 3D de revolução obtida da função 2D r=sin^2(theta). O gráfico 2D está correto (Figura 1), mas a superfície 3D (na minha opinião) não está correta (Figura 2) (para esclarecer: eu esperaria uma superfície "donut", sem nenhum "spike"):
O roteiro é (desculpe pelos comentários em francês):
theta=linspace(-pi,pi,200);
f=sin(theta).^2;
x=f.*cos(theta);
y=f.*sin(theta);
figure;
plot(x,y);
axis equal;
% Création des points pour la surface de révolution
u = linspace(-pi, pi, 200); % Angles de révolution
[U, T] = meshgrid(u, theta); % Création des grilles pour les coordonnées
% Coordonnées x, y et z pour la surface de révolution
X = R .* cos(U); % Coordonnée x après rotation
Y = R .* sin(U); % Coordonnée y après rotation
%Z = repmat(theta', 1, length(u)); % Coordonnée z reste alpha
% Tracé de la surface de révolution
figure;
surf(X, Y, Z);
xlabel('X'); ylabel('Y'); zlabel('Z');
title('Surface de révolution: r = sin^2(theta)');
shading interp;
Você poderia me ajudar a entender o que está acontecendo aqui?