MATLAB:三维空间图形旋转代码
%生成三维空间的圆t= 0:0.01:2*pi;%圆滑性设置
x = 3*sin(t);
y = 3*cos(t);
z = 2+zeros(size(t));
% x = zeros(size(t));
% y = 3*sin(t);
% z = 3*cos(t);
l = plot3(x,y,z);
axis('equal','on',[-5,5,-5,5,-5,5]);
%绕轴旋转
l = plot3(x,y,z);
lineNum = 500;
axis('equal','on',[-5,5,-5,5,-5,5]);
theta = linspace(0,2*pi,lineNum);
c = colormap(jet(lineNum));%以一个三列数组的形式返回颜色图,包含行数与当前图窗的颜色图相同。
for ii = 1:lineNum
hGroup1(ii) = hgtransform('Parent',gca);
hGroup1(ii).Matrix = makehgtform('yrotate',theta(ii));
lGroup1(ii) = copyobj(l,gca);
lGroup1(ii).Color = c(ii,:);
lGroup1(ii).Parent = hGroup1(ii);
drawnow %旋转动图,如果不需要可删。
if ii ==1
= rgb2ind(frame2im(getframe(gcf)),256);
imwrite(A,map,'1.gif','LoopCount',65535,'DelayTime',0);
else if mod(ii,5) == 0
= rgb2ind(frame2im(getframe(gcf)),256);
imwrite(A,map,'1.gif','WriteMode','append','DelayTime',0);
end
end
end
页:
[1]