ios - 在 3D 旋转中转换加速度计

标签 ios swift accelerometer scenekit radians

我需要将加速度计的运动转换为适当的值,以便旋转 SceneKit 对象。我将原始 x、y、z 值转换为弧度的代码是:

    let theta   : Float = atan2(x, sqrtf(powf(y, 2)+powf(z, 2)))
    let psi     : Float = atan2(y, sqrtf(powf(x, 2)+powf(z, 2)))
    let phi     : Float = atan2(sqrtf(powf(x, 2)+powf(y, 2)), z)

我正在努力将其转换为完整的 360 度角以旋转对象。

有什么帮助吗?

最佳答案

在 SceneKit 中你可以直接使用 x,y,z 欧拉角:

let object:SCNNode = ...
object.eulerAngles = SCNVector3(x: CGFloat(x), y: CGFloat(y), z: CGFloat(z))

关于ios - 在 3D 旋转中转换加速度计,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39131187/

相关文章:

ios - 如何在显示 "app would like to send you push notifications"对话框之前使用(多选 ListView )显示对话框

ios - 一名委托(delegate)两类

iOS Swift Dequeued Reusable Cell 未显示

ios - 索引超出多个部分的范围

android - GPS 或 ACCELEROMETER 哪个更适合计算赛道?

swift - 如何对加速度计进行编码以使其具有固定的 x 位置

IOS Firebase : Loop all key in snapshot. 值位置困惑

ios - 这段代码是错误的吗?

swift - 如何在 Swift 中声明计算属性 'throws'?

加速度计噪声