Joe*_*nez 4 quaternions augmented-reality core-motion cmmotionmanager scenekit
尝试使用CoreMotion正确旋转SceneKit相机.我构建的场景做得相当简单......我所做的就是创建一堆盒子,分布在一个区域中,相机只是指向Z轴.
不幸的是,从设备运动返回的数据似乎与设备的物理位置和方向无关.它似乎随意蜿蜒.
正如SO帖子中所建议的那样,我将态度的四元数直接传递给相机节点的方向属性.
我误解了核心动作在这里给我的数据吗?这种态度不应该反映出设备的物理定位吗?还是增量运动,我应该建立在先前的方向?
这个片段可能对您有所帮助:
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)
})
Run Code Online (Sandbox Code Playgroud)
此设置适用于横向设备.您可以通过更改+和 - 来玩不同的方向
导入CoreMotion.
| 归档时间: |
|
| 查看次数: |
1971 次 |
| 最近记录: |