还在BigNerdRanch iOS开发书上.
在Accelerometer章节中,他们首先实现加速度计跟踪,但它相当跳跃.然后,他们建议通过更改原始代码对其应用低通滤波器:
- (void)accelerometer:(UIAccelerometer *)accelerometer didAccelerate:(UIAcceleration *)acceleration
{
HypnosisView *hv = (HypnosisView *)[self view];
[hv setXShift:10.0 * [acceleration x]];
[hv setYShift:10.0 * [acceleration y]];
[hv setNeedsDisplay];
}
Run Code Online (Sandbox Code Playgroud)
对此:
- (void)accelerometer:(UIAccelerometer *)accelerometer didAccelerate:(UIAcceleration *)acceleration
{
HypnosisView *hv = (HypnosisView *)[self view];
float xShift = [hv xShift] * 0.8 + [accel x] * 2.0;
float yShift = [hv yShift] * 0.8 + [accel y] * 2.0;
[hv setXShift:xShift];
[hv setYShift:yShift];
[hv setNeedsDisplay];
}
Run Code Online (Sandbox Code Playgroud)
相当简单的问题:他们从哪里获得这些价值?我一直在查看文档,我发现了一些关于低通滤波器的东西,它建议使用以下代码:
#define kFilteringFactor 0.1
- (void)accelerometer:(UIAccelerometer *)accelerometer didAccelerate:(UIAcceleration …Run Code Online (Sandbox Code Playgroud)