给定 x,y,z 旋转矩阵的以下定义,如何将其表示为一个完整的矩阵?简单地将 x、y 和 & 矩阵相乘?
X 轴旋转:
[1 0 0 0]
[0 cos(-X Angle) -sin(-X Angle) 0]
[0 sin(-X Angle) cos(-X Angle) 0]
[0 0 0 1]
Y 轴旋转:
[cos(-Y Angle) 0 sin(-Y Angle) 0]
[0 1 0 0]
[-sin(-Y Angle) 0 cos(-Y Angle) 0]
[0 0 0 1]
Z轴旋转:
[cos(-Z Angle) -sin(-Z Angle) 0 0]
[sin(-Z Angle) cos(-Z Angle) 0 0]
[0 0 1 0]
[0 0 0 1]
Edit:我有一个单独的旋转类,其中包含 x、y、z 浮点值,稍后我将其转换为矩阵,以便与其他平移/缩放/旋转相结合。
从这里的答案来看,我可以假设如果我做类似的事情:
旋转旋转;
旋转.SetX(45);
旋转.SetY(90);
旋转.SetZ(180);
那么旋转的应用顺序实际上非常重要?或者可以安全地假设,当使用旋转类时,您接受它们按 x、y、z 顺序应用?
是的,三个矩阵依次相乘就可以组成它们。
EDIT:
对矩阵应用乘法的顺序将决定对点应用旋转的顺序。
P × (X × Y × Z) Rotations in X, Y, then Z will be performed
P × (Y × X × Z) Rotations in Y, X, then Z will be performed
P × (Z × X × Y) Rotations in Z, X, then Y will be performed
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)