Core Motion Gyroscope 360 ​​градусов значения - PullRequest
2 голосов
/ 05 января 2012

Я тестирую Core Motion и использую гироскоп.Прямо сейчас я получаю ценности, которые я не понимаю.Я предполагал, что с каждым x, y и z я получу значение от 0 до 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 неправильно?

1 Ответ

4 голосов
/ 05 января 2012

Значения приведены в радианах, а не в градусах, поэтому они должны быть в диапазоне от 0 до 2Пи.Кроме того, они скорость, а не угол.Они радианы в секунду.

...