0

我有一个应用程序,如果你以一种方式摇动它,它会做一件事,如果你以另一种方式摇动它,它会做另一件事。

atm 我的代码是。

if (acceleration.x > 1.5) {

//面对你时手臂向右

    float duration = ([imageArray count]*0.04);

    //HUMAN EYE KEEPS IMAGES IN EYE For 40 MILLISECONDS//
    //NSLog(@"duration:%f", duration);
    [theFlash setAnimationImages:imageArray];
    [theFlash setAnimationRepeatCount:1];
    theFlash.animationDuration = duration;
    [theFlash startAnimating];
    NSLog(@"images flashed forward");   

}

if (acceleration.x < -1)
{
    //arm to the left when facing you

    float duration = ([imageArrayReversed count]*0.04);

    //HUMAN EYE KEEPS IMAGES IN EYE For 40 MILLISECONDS//
    NSLog(@"duration:%f", duration);
    [theFlash setAnimationImages:imageArrayReversed];
    [theFlash setAnimationRepeatCount:1];
    theFlash.animationDuration = duration;
    [theFlash startAnimating];
    NSLog(@"images flashed backward");  

}

1 和 -1 值正在处理它不是太敏感。

但是,这段代码并没有给我想要的结果。一旦人们开始以另一种方式移动设备,我希望图像闪烁(参见代码)。

有什么办法可以做到这一点?

4

1 回答 1

0

好吧,你将不得不整合加速度来获得速度。不幸的是,加速度计有点吵,不可避免地会漂移一点,所以你必须过滤这个积分。我认为http://www.musicdsp.org/showone.php?id=92中描述的滤波器可以满足您的需求,截止频率设置为采样频率的 1/4 左右。您需要band输出,并且必须调整共振参数。

于 2010-01-17T05:33:20.283 回答