%*****************************************
%******直角坐标系的转换及动画演示************
%*****************************************
clear all;
Iz_a=[0 0 1]';%原坐标系下的Z轴
Iy_a=[0 1 0]';%原坐标系下的Y轴
Ix_a=[1 0 0]';%原坐标系下的X轴
%绘制原三维坐标系O-XYZ的XYZ轴
for t=-10:0.1:10plot3(Iz_a(1),Iz_a(2),t*Iz_a(3));%绘制Z轴plot3(Iy_a(1),t*Iy_a(2),Iy_a(3));%绘制Y轴plot3(t*Ix_a(1),Ix_a(2),Ix_a(3));%绘制X轴hold on;
end
r_x=deg2rad(60);%原坐标系绕X轴旋转60度
r_y=deg2rad(60);%原坐标系绕Y轴旋转60度
r_z=deg2rad(60);%原坐标系绕Z轴旋转60度
%坐标系绕X轴旋转的转换矩阵Tx
Tx=[1 0 0;0 cos(r_x) sin(r_x);0 -sin(r_x) cos(r_x)];
%坐标系绕Y轴旋转的转换矩阵Ty
Ty=[cos(r_x) 0 -sin(r_x);0 1 0;0 sin(r_x) cos(r_x)];
%坐标系绕Z轴旋转的转换矩阵Tz
Tz=[ cos(r_x) sin(r_x) 0;-sin(r_x) cos(r_x) 0;0 0 1];
Iz_b=Tx*Iz_a;%绕X轴旋转后新坐标系下的Z轴
Iy_b=Tx*Iy_a;%绕X轴旋转后新坐标系下的Y轴
Ix_b=Tx*Ix_a;%绕X轴旋转后新坐标系下的X轴
for t=-10:0.1:10plot3(t*Iz_b(1),t*Iz_b(2),t*Iz_b(3),'r');%绘制Z轴plot3(t*Iy_b(1),t*Iy_b(2),t*Iy_b(3),'r');%绘制Y轴plot3(t*Ix_b(1),t*Ix_b(2),t*Ix_b(3),'r');%绘制X轴hold on;
end
%********************************************
%******动画演示坐标系绕X轴旋转过程**************
%********************************************
clear all;
Iz_a=[0 0 1]';%原坐标系下的Z轴
Iy_a=[0 1 0]';%原坐标系下的Y轴
Ix_a=[1 0 0]';%原坐标系下的X轴
for rx=0:5:60Rx=deg2rad(rx);%坐标系绕X轴旋转的转换矩阵TxTx=[1 0 0;0 cos(Rx) sin(Rx);0 -sin(Rx) cos(Rx)];Iz_b=Tx*Iz_a;%绕X轴旋转后新坐标系下的Z轴Iy_b=Tx*Iy_a;%绕X轴旋转后新坐标系下的Y轴Ix_b=Tx*Ix_a;%绕X轴旋转后新坐标系下的X轴for t=-10:0.1:10plot3(t*Iz_b(1),t*Iz_b(2),t*Iz_b(3),'r');%绘制Z轴plot3(t*Iy_b(1),t*Iy_b(2),t*Iy_b(3),'b');%绘制Y轴plot3(t*Ix_b(1),t*Ix_b(2),t*Ix_b(3),'g');%绘制X轴hold on;endpause(0.1);
end
%************************************************
%******动画演示坐标系绕Z-Y-X轴旋转过程**************
%************************************************
clear all;
Iz_a=[0 0 1]';%原坐标系下的Z轴
Iy_a=[0 1 0]';%原坐标系下的Y轴
Ix_a=[1 0 0]';%原坐标系下的X轴
for rx=0:5:60Rx=deg2rad(rx);%坐标系绕X轴旋转的转换矩阵TxTx=[1 0 0;0 cos(Rx) sin(Rx);0 -sin(Rx) cos(Rx)];%坐标系绕Y轴旋转的转换矩阵TyTy=[cos(Rx) 0 -sin(Rx);0 1 0;0 sin(Rx) cos(Rx)];%坐标系绕Z轴旋转的转换矩阵TzTz=[ cos(Rx) sin(Rx) 0;-sin(Rx) cos(Rx) 0;0 0 1]; Iz_b=Tx*Ty*Tz*Iz_a;%绕ZYX轴旋转后新坐标系下的Z轴Iy_b=Tx*Ty*Tz*Iy_a;%绕ZYX轴旋转后新坐标系下的Y轴Ix_b=Tx*Ty*Tz*Ix_a;%绕ZYX轴旋转后新坐标系下的X轴for t=-10:0.1:10plot3(t*Iz_b(1),t*Iz_b(2),t*Iz_b(3),'r');%绘制Z轴plot3(t*Iy_b(1),t*Iy_b(2),t*Iy_b(3),'b');%绘制Y轴plot3(t*Ix_b(1),t*Ix_b(2),t*Ix_b(3),'g');%绘制X轴hold on;endhold off;pause(0.1);
end
%************************************************
%******动画演示坐标系分别绕Z-Y-X轴旋转过程**********
%************************************************
clear all;
Iz_a=[0 0 1]';%原坐标系下的Z轴
Iy_a=[0 1 0]';%原坐标系下的Y轴
Ix_a=[1 0 0]';%原坐标系下的X轴
%坐标系先绕Z轴旋转
for rx=0:5:60Rx=deg2rad(rx);%坐标系绕Z轴旋转的转换矩阵TzTz=[ cos(Rx) sin(Rx) 0;-sin(Rx) cos(Rx) 0;0 0 1]; Iz_b=Tz*Iz_a;%绕Z轴旋转后新坐标系下的Z轴Iy_b=Tz*Iy_a;%绕Z轴旋转后新坐标系下的Y轴Ix_b=Tz*Ix_a;%绕Z轴旋转后新坐标系下的X轴for t=-10:0.1:10plot3(t*Iz_b(1),t*Iz_b(2),t*Iz_b(3),'r');%绘制Z轴plot3(t*Iy_b(1),t*Iy_b(2),t*Iy_b(3),'b');%绘制Y轴plot3(t*Ix_b(1),t*Ix_b(2),t*Ix_b(3),'g');%绘制X轴hold on;endpause(0.1);hold off;
end
%坐标系再绕Y轴旋转
for rx=0:5:60Rx=deg2rad(rx);%坐标系绕Y轴旋转的转换矩阵TyTy=[cos(Rx) 0 -sin(Rx);0 1 0;0 sin(Rx) cos(Rx)];Iz_c=Ty*Iz_b;%绕Z轴旋转后新坐标系下的Z轴Iy_c=Ty*Iy_b;%绕Z轴旋转后新坐标系下的Y轴Ix_c=Ty*Ix_b;%绕Z轴旋转后新坐标系下的X轴for t=-10:0.1:10plot3(t*Iz_c(1),t*Iz_c(2),t*Iz_c(3),'r');%绘制Z轴plot3(t*Iy_c(1),t*Iy_c(2),t*Iy_c(3),'b');%绘制Y轴plot3(t*Ix_c(1),t*Ix_c(2),t*Ix_c(3),'g');%绘制X轴hold on;endpause(0.1);hold off;
end
%最后坐标系绕X轴旋转
for rx=0:5:60Rx=deg2rad(rx);%坐标系绕X轴旋转的转换矩阵TxTx=[1 0 0;0 cos(Rx) sin(Rx);0 -sin(Rx) cos(Rx)];Iz_d=Tx*Iz_c;%绕Z轴旋转后新坐标系下的Z轴Iy_d=Tx*Iy_c;%绕Z轴旋转后新坐标系下的Y轴Ix_d=Tx*Ix_c;%绕Z轴旋转后新坐标系下的X轴for t=-10:0.1:10plot3(t*Iz_d(1),t*Iz_d(2),t*Iz_d(3),'r');%绘制Z轴plot3(t*Iy_d(1),t*Iy_d(2),t*Iy_d(3),'b');%绘制Y轴plot3(t*Ix_d(1),t*Ix_d(2),t*Ix_d(3),'g');%绘制X轴hold on;endpause(0.1);hold off;
end
MATLAB坐标系变换动画演示
最新推荐文章于 2024-07-17 02:19:51 发布