2012-01-05 7 views
2

コアモーションとジャイロスコープをテストしています。今、私は理解していない価値を得ています。私の前提は、各x、y、zでは0から360の間の値が得られるが、これは完全な回転であるが、そうではない。コアモーションジャイロ360度の値

[self.motionManager startGyroUpdatesToQueue:[NSOperationQueue mainQueue] withHandler:^(CMGyroData *gyroData, NSError *error) { 
    NSString *x = [NSString stringWithFormat:@"%.02f",gyroData.rotationRate.x]; 
    NSLog(@"X: %@", x); 

    NSString *y = [NSString stringWithFormat:@"%.02f",gyroData.rotationRate.y]; 
    NSLog(@"Y: %@", y); 

    NSString *z = [NSString stringWithFormat:@"%.02f",gyroData.rotationRate.z]; 
    NSLog(@"Z: %@", z); 

    frequency = gyroData.rotationRate.y*500; 

    float rate = gyroData.rotationRate.z; 
    if (fabs(rate) > .2) { 
     float direction = rate > 0 ? 1 : -1; 
     rotation += (direction * M_PI/90.0)*1000; 
     NSLog(@"Rotation: %f", rotation); 
    } 

}]; 

人間が判読可能な回転値を得ることは可能ですか? 0〜360の間の値を間違って取得する必要があるという私の前提ですか?

答えて

4

値は度ではなくラジアンであるため、0〜2Piの値にする必要があります。また、彼らは角度ではなくレートです。それらは1秒あたりのラジアンです。

+0

それで、デバイスは回転回数を知っていますか? –

+0

私はそうは思わない。それはあなたにそれが回っている角速度を与えます(例えば、Pi/3ラジアン/秒)。アプリケーションは、それが何回回転されたかを判断するために、それを追跡する必要があります。 – user1118321

+0

さて、どのように角度が分かっているのか分かりますか?ジャイロスコープは何のために使うことができますか?レベルやゲームを持っているアプリのようなロールボール? –

関連する問題