如何计算设备移动的最后两点的加速度计

Posted

技术标签:

【中文标题】如何计算设备移动的最后两点的加速度计【英文标题】:How to calculate the accelerometer of the last two points the device moved 【发布时间】:2016-02-04 04:10:35 【问题描述】:

我正在制作游戏,如果手机在 x 轴上从零点移动到点 20,我需要获取手机移动的最后两点的加速度计,x 轴上的当前加速度计等于 20,我可以得到它,但我无法得到当前点(20点)之前的最后一点(零点),这是当前点的代码:

var currentX: Double = 0.0
// and then in viewDidload :
movementManager.accelerometerUpdateInterval = 0.2
//Start Recording Data
    movementManager.startAccelerometerUpdatesToQueue(NSOperationQueue.mainQueue())           
         (accelerometerData: CMAccelerometerData?, NSError) -> Void in
self.getvalues((accelerometerData?.acceleration)!)
            if(NSError != nil)
            
                print("\(NSError)")
            

func getvalues(acceleratiuon:CMAcceleration)
        
        currentX = acceleratiuon.x

【问题讨论】:

【参考方案1】:

有很多方法可以从加速度计中获取最后两个点,但我在代码中使用的是 - 我使用了一个线程,该线程以特定时间间隔将传感器中的所有点记录在动态列表中,然后使用它在控制精灵位置。可能这对你有帮助。 谢谢

【讨论】:

谢谢你的回答,但你能告诉我怎么做吗!再次感谢 它非常简单地为传感器数据变化注册了一个监听器,并且回调函数记录了动态数组中的所有值! 非常感谢@Ganesh,你的回答对我帮助很大:)

以上是关于如何计算设备移动的最后两点的加速度计的主要内容,如果未能解决你的问题,请参考以下文章

Android:使用加速度计的速度计算不正确

检测加速度计在 y 轴上的运动方向

如何计算手机从静止垂直方向的运动?

Matlab从移动设备获取加速度数据对步数进行计数

如何使用加速度计进行手势识别

iPhone 检测到用户向上移动了他们的设备