我在思考和搜索中遇到了问题,无法找到好的方向去搜索......我想开发一个算法,在使用设备动作的情况下在360度图像(类似球体)中移动。
所以,如果用户将设备指向他的前面,他会得到图像的确定原点。当他在身边移动设备时,全景图像会相应移动。
有什么想法或资源可以供我参考吗?
谢谢,祝大家用Swift好运:)
我在思考和搜索中遇到了问题,无法找到好的方向去搜索......我想开发一个算法,在使用设备动作的情况下在360度图像(类似球体)中移动。
所以,如果用户将设备指向他的前面,他会得到图像的确定原点。当他在身边移动设备时,全景图像会相应移动。
有什么想法或资源可以供我参考吗?
谢谢,祝大家用Swift好运:)
多亏了Kay,我才能找到正确的方法来实现这个效果。
我写这篇答案是为了为那些寻找同样东西的人提供更多细节。
首先,你需要创建一个CMMotionManager对象。
然后使用startDeviceMotionUpdatesToQueue来处理运动事件。
[self.motionManager startDeviceMotionUpdatesToQueue:[NSOperationQueue currentQueue] withHandler:^(CMDeviceMotion *motion, NSError *error) {
[self processMotion];
}];
// Get attitude difference with previous one
CMAttitude *currentAttitude = self.motionManager.deviceMotion.attitude;
[currentAttitude multiplyByInverseOfAttitude:self.referenceAttitude];
感谢这个功能,你可以知道用户自上次更新以来的新角度。 然后,在处理视图时,将新的欧拉角转换为需要移动图像的像素数量。 只要注意欧拉角在-180、180之间变化,并由苹果以弧度给出。这可能会很方便:
#define RADIANS_TO_DEGREES(radians) ((radians) * (180.0 / M_PI))
在我的情况下,我只计算新的x偏移量,因为我只是在x轴上移动。
希望这可以帮助你。