2009-09-03 98 views

回答

9

您可以在使用前对传入数据应用过滤器来平滑加速度计数据。你要做的第一件事就是为你的过滤器设置一个常量。

#define kFilteringFactor 0.1 

在你didAccelerate方法,你需要添加以下过滤代码数据

- (void)accelerometer:(UIAccelerometer*)accelerometer didAccelerate:(UIAcceleration*)acceleration 
{ 
    sx = acceleration.x * kFilteringFactor + sx * (1.0 - kFilteringFactor); 
    sy = acceleration.y * kFilteringFactor + sy * (1.0 - kFilteringFactor); 
    sz = acceleration.z * kFilteringFactor + sz * (1.0 - kFilteringFactor); 
} 

上面的代码应该顺利为您服务。 sx,sy和sz值的类型是UIAccelerationValue。

Apple的文档中有很多相关信息,您可能会发现在这方面同样有用。

+0

很好的答案! 唯一要补充的是变量sx,sy和sz应该在头文件中声明,以便在下一次计算中使用该值。 工作对我很好。 – Structurer 2011-02-28 11:30:40