gpt4 book ai didi

augmented-reality - CMMotionData 到 SceneKit SCNNode 方向

转载 作者:行者123 更新时间:2023-12-04 22:45:54 24 4
gpt4 key购买 nike

尝试使用 CoreMotion 正确旋转 SceneKit 相机。我构建的场景相当简单……我所做的就是创建一堆盒子,分布在一个区域中,而相机只是指向 Z 轴。

不幸的是,从设备运动返回的数据似乎与设备的物理位置和方向没有任何关系。它似乎只是随机蜿蜒。

正如 this SO post 中所建议的,我将姿态的四元数直接传递给相机节点的方向属性。

我是否误解了这里给我的数据核心运动?态度不应该反射(reflect)设备的物理方向吗?或者它是增量运动,我应该建立在先前的方向上?

最佳答案

这里的这个片段可能对你有帮助:

    var motionManager = CMMotionManager()
motionManager?.deviceMotionUpdateInterval = 1.0 / 60.0
motionManager?.startDeviceMotionUpdatesToQueue(
NSOperationQueue.mainQueue(),
withHandler: { (motion: CMDeviceMotion!, error: NSError!) -> Void in

let currentAttitude = motion.attitude
var roll = Float(currentAttitude.roll) + (0.5*Float(M_PI))
var yaw = Float(currentAttitude.yaw)
var pitch = Float(currentAttitude.pitch)

self.cameraNode.eulerAngles = SCNVector3(
x: -roll,
y: yaw,
z: -pitch)
})

此设置适用于横向右侧的设备。您可以通过更改 + 和 - 来尝试不同的方向

导入 CoreMotion。

关于augmented-reality - CMMotionData 到 SceneKit SCNNode 方向,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26292874/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com