我想围绕三个轴旋转一个视图,有三个不同的角度:rx,ry,rz。
这就是我所做的:
_tx = CATransform3DMakeRotation(rx*M_PI/360, 1, 0, 0);
_ty = CATransform3DMakeRotation(ry*M_PI/360, 0, 1, 0);
_tz = CATransform3DMakeRotation(rz*M_PI/360, 0, 0, 1);
view.layer.transform = CATransform3DConcat(_tx, CATransform3DConcat(_ty, _tz));
当我试图反转连接顺序时,我工作了。例如,
view.layer.transform = CATransform3DConcat(_tx, CATransform3DConcat(_ty, _tz));
和
view.layer.transform = CATransform3DConcat(_tz, CATransform3DConcat(_tx, _ty));
不要给出相同的结果!!
CATransform3DMakeRotation
?答案 0 :(得分:7)
矩阵运算不可交换,改变将它们相乘的顺序将为您提供不同的结果变换矩阵。
您想以哪种顺序应用3种不同的旋转?这是你应该连接转换矩阵的顺序。