我已经尝试了几天,但还是无法解决这个问题。
在一个基于ARKit的应用程序中,我跟踪用户的面部。如何从锚点获取面部的绝对旋转角度呢?
我可以获取ARAnchor的变换,它是一个simd_matrix4x4。关于如何从该矩阵中获取位置信息有很多资料(它是第三列),但没有关于旋转的说明!
我想通过传递偏航角、俯仰角和横滚角来控制应用程序外的3D对象。
最新的尝试实际上有些有效:
let arFrame = session.currentFrame!
guard let faceAnchor = arFrame.anchors[0] as? ARFaceAnchor else { return }
let faceMatrix = SCNMatrix4.init(faceAnchor.transform)
let node = SCNNode()
node.transform = faceMatrix
let rotation = node.worldOrientation
rotation.x、.y 和 .z 这三个值在 IT 技术中很常见,但随着我移动手机,这些值也在改变。比如,如果我旋转了 180 度并且继续看着手机,这些值就会根据手机的位置而疯狂地变化。
我尝试过在 ARConfiguration 中更改世界对齐方式,但没有任何改变。
是我读取了错误的参数吗?本应该更简单才对!