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
|
请发表评论