我想围绕三个轴旋转 View ,具有 3 个不同的角度: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
绕 3 轴旋转? - 或者更好的方法?
最佳答案
矩阵运算不可交换,改变它们相乘的顺序将得到不同的变换矩阵结果。
您想按什么顺序应用 3 种不同的轮换?这是您应该连接变换矩阵的顺序。
关于ios - 了解 CATransform3D 围绕所有三个轴的旋转,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15141946/