Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/iphone/42.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ios/119.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Iphone 核心运动陀螺仪360度值_Iphone_Ios_Cocoa Touch_Gyroscope_Core Motion - Fatal编程技术网

Iphone 核心运动陀螺仪360度值

Iphone 核心运动陀螺仪360度值,iphone,ios,cocoa-touch,gyroscope,core-motion,Iphone,Ios,Cocoa Touch,Gyroscope,Core Motion,我正在测试核心运动并使用陀螺仪。现在我得到了我不理解的价值观。我的假设是,对于每个x,y和z,我将得到一个0-360之间的值,这将是一个完整的旋转,但事实并非如此 [self.motionManager startGyroUpdatesToQueue:[NSOperationQueue mainQueue] withHandler:^(CMGyroData *gyroData, NSError *error) { NSString *x = [NSString stringWithFo

我正在测试核心运动并使用陀螺仪。现在我得到了我不理解的价值观。我的假设是,对于每个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之间。而且,它们是一个速率,而不是一个角度。它们是每秒弧度。

好的。那么设备知道我旋转它的次数吗?我不这么认为。它只是给你它转动的角速率(比如π/3弧度每秒)。你的应用程序需要随着时间的推移跟踪它,以确定它被旋转了多少次。好的,那么我如何知道手机处于什么角度呢?这不是陀螺仪的用途吗?例如,有关卡的应用程序或玩滚球游戏的应用程序?请查看。