一个矩阵乘一矩阵的问题
Matrix4x4 a,b
已知 角度 A = 30,45,45 ; B = 20,2,28
构造旋转矩阵 a和b。
再构造旋转矩阵c,c的旋转角度为a和b角度的和即 C = 50,47,73
那么 a * b =?c
但是测试后,它们是不等于的
那么如何快速的求出c的角度呢?它们有什么关系呢?
[解决办法]
你的角度A和B是欧拉角吧?如果是欧拉角的话你构造的矩阵a*b是据对不等于c的,他们之间没有任何的联系(简单层面上来说),如果要构造矩阵c,可以直接通过角度相加后的欧拉角来构造c矩阵。
[解决办法]
这个主要是为四元素使用的,你可以取看看欧拉角和四元素的关系你就明白了
[解决办法]
楼主给出的条件就有问题,同样的A = 30,45,45。
先绕X轴旋转30度,然后绕Y轴旋转45度,最后绕Z轴旋转45度。
先绕Y轴旋转45度,然后绕Z轴旋转45度,最后绕X轴旋转30度。
这2种不同的旋转顺序,导致最终的结果不一样。
所以,对于旋转,不管是使用矩阵,四元数还是欧拉角,必须使用1个轴和1个角度做1次旋转。
不管是在世界空间中旋转还是在局部空间中旋转,角度累加是没有意义的。