2011-04-17 52 views
0

大家好我是法國人,所以我嚇我一跳。所以我有一個問題。我正在做的是當我用加速度計將設備向左或向右轉動時,圖像在與設備旋轉方向相反的方向旋轉,它創建了一個很酷的效果,但是當我用加速度計旋轉設備時,圖像正在旋轉但始終在顫抖,振動的運動並不平滑。我能做什麼 ?這裏是代碼:iphone加速度計:問題旋轉圖像

#import "QuartzCore/QuartzCore.h" 

#define CONST_fps 100. 
#define CONST_map_shift 0.05 

@implementation MapViewRotationViewController 

- (void)viewDidLoad { 

[super viewDidLoad]; 

    // accelerometer settings 
    [[UIAccelerometer sharedAccelerometer] setDelegate:self]; 
    [[UIAccelerometer sharedAccelerometer] setUpdateInterval:(1.0/CONST_fps)]; 
} 

- (void)accelerometer:(UIAccelerometer *)accelerometer didAccelerate:(UIAcceleration *)acceleration 
{ 

    static CGFloat ZZ = 0.; 

    CGFloat z = (atan2(acceleration.x, acceleration.y) + M_PI); 


    if (fabsf(ZZ - z) > CONST_map_shift) 

    { 

     viewToRotate.layer.transform = CATransform3DMakeRotation(ZZ=z, 0., 0., 10.); 

    } 

} 

@end 
+0

固定代碼格式。 – Anne 2011-04-17 16:58:59

+0

vous devez vous rendreàchaque question que vous avezdéjàdemandéet cliquez sur la caseàcocher par laréponsela plusappareséeàl'acceptpter。 Aider les gensàobtenir la reconnaissance。 Si vous n'avez pas「accepter」lesréponsesen cochant les gens sont moins susceptibles d'aider。 Vous devez augmenter votre「accepter taux«aussi proche que possible de 100% – 2011-04-26 20:41:55

回答

1

你需要做一個叫做高通濾波器的技巧。它過濾顫抖,只有重大變化纔會通過。

你可以谷歌它,或搜索StackOverflow。例如,這裏:How do you implement a Highpass filter for the IPhone accelerometer?

+0

好的,但是我怎樣才能在我的代碼中實現高通濾波器呢? – 2011-04-18 10:46:09

+0

好的我很成功地非常感謝你 – 2011-04-18 12:07:59