Effacer les filtres
Effacer les filtres

How do I rotate the 3D plot around one of the axis

11 vues (au cours des 30 derniers jours)
Thuan
Thuan le 12 Mar 2017
Réponse apportée : Jan le 12 Mar 2017
Need Help Rotating 3D plot I was wondering if you guys can give me some guidances on how to create a plot rotation. I need to create a video of the plot rotate around any of the axis. The rotating command need to be within the code. So when I run the function it would create a plot then start to rotate without any other input from me.
Thanks Guys.
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% function spheremap
close all
clear all
r=1;
x1=zeros(81,81);
x2=zeros(81,81);
x3=zeros(81,81);
c=zeros(81,81);
x1new=zeros(81,81);
x2new=zeros(81,81);
x3new=zeros(81,81);
for i=1:1:81
theta=(i-1)*2*pi/80;
for j=1:1:81
phi=(j-1)*pi/80;
x1(i,j)=r*cos(theta)*sin(phi);
x2(i,j)=r*sin(theta)*sin(phi);
x3(i,j)=r*cos(phi);
hold on
end
end
surf(x1,x2,x3,'EdgeColor','c')
colormap winter
view (3)
% A = [2 2 2; 2 2 2;2 2 2]
A = [2 2 2; 2 2 2;2 2 1]
% A = [2.7 2 2; 2 2.7 2;2 2 1]
% A = [2.7 2 2; 2 2.7 .2;.2 .2 1]
lambda=eig(A)
[V,D]=eig(A)
for i=1:1:81
theta=(i-1)*2*pi/80;
for j=1:1:81
phi=(j-1)*pi/80;
x1=r*cos(theta)*sin(phi);
x2=r*sin(theta)*sin(phi);
x3=r*cos(phi);
B=[x1;x2;x3];
X=A*B;
x1new(i,j)=X(1);
x2new(i,j)=X(2);
x3new(i,j)=X(3);
hold on
end
end
surf(x1new,x2new,x3new,'EdgeColor','none')
camlight('headlight')
axis equal
grid on
grid minor
title('Stretch Transform')
set(gca,'fontsize',12)
xlabel('x')
ylabel('y')
zlabel('z')
axis([-4 4 -4 4 -4 4])
hold off;
end
  2 commentaires
Rik
Rik le 12 Mar 2017
I think the easiest way is to write your figure for each angle to an animated GIF.
Jan
Jan le 12 Mar 2017
Modifié(e) : Jan le 12 Mar 2017
Start with omitting the useless "close all; clear all". Especially the last is a waste of time only. Please read an apply https://www.mathworks.com/matlabcentral/answers/13205-tutorial-how-to-format-your-question-with-markup#answer_18099.
Do you want to rotate the axes or the objects only?

Connectez-vous pour commenter.

Réponses (1)

Jan
Jan le 12 Mar 2017
Perhaps you want something like this at the end of your code:
for AZ = 0:5:360
view(AZ, 30);
pause(0.1);
end
for EL = -90:2:90
view(45, EL);
pause(0.1);
end
The detail "around any of the axis" is not clear.

Catégories

En savoir plus sur Colormaps dans Help Center et File Exchange

Tags

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by