1)、坐标旋转,旋转矩阵为R=rotx(pi/2),绕x轴旋转90度,用函数trplot(R)显示;tranimate(R)制作旋转动画。但是保存为GIF格式没有很好的解决,用了如下粗糙方式实现的。如果不保存为GIF格式
tranimate(R)就足够了,具体的程序如下:
filename = 'xuanzhuang.gif';
for i=0:0.1:pi
R=rotx(i);%绕x轴旋转180度
frame = getframe(gcf);
tranimate(R);
drawnow;
im=frame2im(frame);
[imind,cm] = rgb2ind(im,256);
if i ==0
imwrite(imind,cm,filename,'gif', 'Loopcount',inf,'DelayTime',0.2);
else
imwrite(imind,cm,filename,'gif','WriteMode','append','DelayTime',0.2);
end
end
2)旋转复合,用矩阵R=rotx(pi/2)*roty(pi/2)代替上面程序中的R。下面的角度我给的是pi。
3)平移,旋转复合。同理将R变换为R= R=transl(1,0,0)*trotx(i)*transl(0,1,0)即可,程序如下:
filename = 'PYxuanzhuang.gif';
for i=0:0.1:pi/2
R=transl(1,0,0)*trotx(i)*transl(0,1,0);
frame = getframe(gcf);
tranimate(R);
drawnow; % 刷新屏幕 ?
im=frame2im(frame);
[imind,cm] = rgb2ind(im,256);
if i ==0
imwrite(imind,cm,filename,'gif', 'Loopcount',inf,'DelayTime',0.05);
else
imwrite(imind,cm,filename,'gif','WriteMode','append','DelayTime',0.05);
end
end