0

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

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

由于Acceleration.x 值的精度,我的图片甚至可以在稳定的表面上移动。所以我决定使用一种解决方法,将它与一个值相乘,将其转换为 INT,然后将其除以并将其转换为浮点数(即我只是在昏迷后删除一些数字)

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

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

所以我的问题是:你知道为什么它不再起作用了吗?是否有适当的方法可以在浮点数中删除昏迷后的数字?

非常感谢弗雷德。

4

1 回答 1

2

与其尝试删除逗号后的小数,不如使用低通滤波器。低通滤波器只会让您的加速度变化发生在某个截止频率以下。因此,它将保持加速度的稳定变化,但会消除非常高频率的波动和抖动。

维基百科很好地解释了一个简单的 RC 低通滤波器是如何工作的,并展示了一个可能的实现。Apple 在AccelerometerGraph 示例代码中展示了类似的实现。

于 2010-05-26T09:26:08.820 回答