我正在测试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之间的值,这是错误的吗?

最佳答案

该值以弧度而不是度为单位,因此它们应在0到2Pi之间。而且,它们是比率,而不是角度。他们是弧度每秒。

关于iphone - 核心运动陀螺仪360度值,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/8737889/

10-11 14:49