What is the function to plot a rotating 3-D ellipsoid

I want to make a rotating ellips using mathematical equations on matlab, i must also be able to control rotating speed and direrection

 采纳的回答

function [] = visualizeDTrot(C,M,speed,Dir,time)
%%C: the covariance matrix.
%%Dir: direction of the estimate, to be plotted together with the DT ellipsoid.
%%M: the mean vector, usually 0 in case of DT.
%%speed: time to pause between plotting, lowervalue = faster.
%%Dir: 1 or -1 for clockwise, anticlockwise.
%%time: number of iterations for which rotation is needed, higher = longer.
%%example: visualizeDTrot(diag([17 2 2]),[0 0 0],0.4,1,100)
[U,L] = eig(C);
% For N standard deviations spread of data, the radii of the eliipsoid will
% be given by N*SQRT(eigenvalues).
N = 1; % choose your own N
radii = N*sqrt(diag(L));
% generate data for "unrotated" ellipsoid
[xc,yc,zc] = ellipsoid(0,0,0,radii(1),radii(2),radii(3));
% rotate data with orientation matrix U and center M
a = kron(U(:,1),xc); b = kron(U(:,2),yc); c = kron(U(:,3),zc);
data = a+b+c; n = size(data,2);
x = data(1:n,:)+M(1); y = data(n+1:2*n,:)+M(2); z = data(2*n+1:end,:)+M(3);
% now plot the rotated ellipse
if Dir == 1
i = 1:time;
else
i = time:-1:1;
end
for j = i
sc = mesh(x,y,z);
colormap copper
shading interp
zdir = [1 0 0];
axis equal
rotate(sc,zdir,j)
pause(speed)
title('actual ellipsoid represented by data: C and M')
axis equal
xlabel('x axis ---->')
ylabel('y axis ---->')
zlabel('z axis ---->')
alpha(0.5)
end
%%This should do the job!

更多回答(0 个)

类别

在 帮助中心 和 File Exchange 中查找有关 Creating, Deleting, and Querying Graphics Objects 的更多信息

Community Treasure Hunt

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

Start Hunting!

Translated by