【发布时间】:2015-02-20 10:22:52
【问题描述】:
我正在编写由其他人在 Matlab 中编写的代码。 基本上,他从欧拉角开始计算旋转矩阵。 这个旋转矩阵用于在相机透视图中变换世界(如果我没有弄乱术语,它就是视图矩阵)。
MatRotX = [1 0 0; 0 cos(X_ang) -sin(X_ang); 0 sin(X_ang) cos(X_ang);];
MatRotY = [cos(Y_ang) 0 sin(Y_ang); 0 1 0; -sin(Y_ang) 0 cos(Y_ang)];
MatRotZ = [cos(Z_ang) sin(Z_ang) 0; -sin(Z_ang) cos(Z_ang) 0; 0 0 1;];
RAxis = [ 0 0 -1; 0 -1 0; -1 0 0;];
M = RAxis * MatRotX * MatRotY * MatRotZ ;
我不明白他在这里想要达到什么目的,特别是两个问题。
RAxis 的目的是什么?另外,为什么围绕 Z 轴的旋转(偏航)的某些符号与通常的 Z 旋转矩阵相反,通常是
MatRotZ = cos(z_ang) -sin(z_ang) 0;
罪(z_ang)cos(z_ang)0;
0 0 1
这会给任何人敲响警钟吗?
【问题讨论】:
-
我不确定那是什么。您是否尝试过全部相乘?我会将其与维基百科上的 Tait-Bryan 角度表进行比较:en.wikipedia.org/wiki/Euler_angles(向下滚动到底部),XYZ。这些公式可以用多种方式表示,尤其是当您旋转系统或向量时。根据你在做什么,这些标志是倒置的。 (en.wikipedia.org/wiki/Active_and_passive_transformation)。
标签: 3d camera rotation coordinate-transformation euler-angles