1

我使用以下代码旋转 3D 图像,具体取决于 iPhone 的方向:它可以工作。

我的问题是:

  1. 这是一种可接受的方法吗?

  2. 是否有一个命令我可以使用,而不是按顺序构建三个 CATransform3DRotate。

  3. 我应该更改 .m34 值吗?1.0 / -500 似乎用的很多,但我不太明白它的解释:https ://en.wikipedia.org/wiki/3D_projection#Perspective_projection

       let layer = panelView.layer
       var rotationAndPerspectiveTransform = CATransform3DIdentity
       rotationAndPerspectiveTransform.m34 = 1.0 / -500
    
       rotationAndPerspectiveTransform = CATransform3DRotate(rotationAndPerspectiveTransform, CGFloat(roll * .pi / 180), 0.0, 0.0, 1.0)    // roll
       rotationAndPerspectiveTransform = CATransform3DRotate(rotationAndPerspectiveTransform, CGFloat(pitch * .pi / 180), 1.0, 0.0, 0.0)   // pitch
       rotationAndPerspectiveTransform = CATransform3DRotate(rotationAndPerspectiveTransform, CGFloat(yaw * .pi / 180), 0.0, 1.0, 0.0)     // yaw
    
       UIImageView.animate(withDuration: 0.5, delay: 0, options: [], animations: {
            layer.transform = rotationAndPerspectiveTransform
       })
    
4

0 回答 0