MATLAB下坐标系变换(1)

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

MATLAB下坐标系变换(1)_第1张图片

 

2)旋转复合,用矩阵R=rotx(pi/2)*roty(pi/2)代替上面程序中的R。下面的角度我给的是pi。

MATLAB下坐标系变换(1)_第2张图片

 

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

MATLAB下坐标系变换(1)_第3张图片

 

 

 

 

 

 

 

 

 

 

你可能感兴趣的:(MATLAB下坐标系变换(1))