2010-05-26 101 views
0

我正在尝试使用加速度计来移动UIImage。我工作的很好,但我的问题是,用我的代码iPhone加速度计改变敏感度

self.character.center = CGPointMake(160+acceleration.x*175, 230-acceleration.y*175); 

由于acceleration.x值的精度,我的图片即使在稳定的表面上也会移动。所以我决定用一个值它乘以它,它转换成一整型,然后将使用一种变通方法,并将其转换为浮动(即我只是昏迷后删除某些数字)

self.character.center = CGPointMake(160+(float)((int)((acceleration.x*100000))/100000)*175, 230-(float)((int)((acceleration.y*100000))/100000)*175);

但在我使用这段代码之后,我的小图片不再移动了。

所以我的问题是:你知道为什么它不工作了吗? 有没有一种适当的方法可以在漂浮之后删除数字后的数字?

非常感谢 Fred。

回答

2

您应该更好地使用低通滤波器,而不是尝试在逗号后删除小数点。一个低通滤波器将只允许通过改变你的加速度,在某个截止频率以下发生。因此,它将保持加速度的稳定变化,但可以消除极高频率下的波动和抖动。

维基百科有一个good explanation一个简单的RC低通滤波器如何工作并显示可能的实现。 Apple在AccelerometerGraph sample代码中显示了类似的实现。

+0

谢谢我使用它,我已经成功了!我最小化了截止频率,使其更不敏感! 非常感谢! – 2010-05-26 11:57:01