我已经试过这个项目在android和ios上都没有成功。这个东西很有可能会超出我的想象。不过,我想我会在这里发表我的问题作为最后的努力。
我想弄清楚什么时候设备旋转或翻转。我的应用程序应该知道它何时执行180,360或设备是否被垂直翻转。
为了试图理解它假设的工作方式,我尝试下载两个示例项目:AccelerometerGraph和CoreMotionTeapot。有了这些和其他的东西混合我已经想通了,我是想这样的:运动传感器,读取旋转
motionManager = [[CMMotionManager alloc] init];
motionManager.accelerometerUpdateInterval = 0.01;
motionManager.deviceMotionUpdateInterval = 0.01;
[motionManager startDeviceMotionUpdates];
if (motionManager.gyroAvailable) {
motionManager.gyroUpdateInterval = 1.0/60.0;
motionManager.deviceMotionUpdateInterval = 0.01;
[motionManager startGyroUpdatesToQueue:[NSOperationQueue currentQueue]
withHandler: ^(CMGyroData *gyroData, NSError *error)
{
CMRotationRate rotate = gyroData.rotationRate;
NSLog(@"rotation rate = [%f, %f, %f]", rotate.x, rotate.y, rotate.z);
}];
} else {
NSLog(@"No gyroscope on device.");
}
但我不知道如何来收集来自这三个值所要求的信息(水平和垂直旋转)(X,Y, Z)。
您正在寻找什么样的旋转?例如,最简单的情况是手机在屏幕上向上放置屏幕,当您将屏幕放在屏幕上时,屏幕会旋转180度(围绕任何轴)。但是什么构成了90度旋转?它在一边吗?它直立吗?或者您是否正在寻找一种解决方案,让您以随机方向握住设备,并且想知道何时在任何方向旋转了180度,例如2秒?即一个非常普遍的解决方案,但非常有趣:) – Desmond 2012-02-02 15:18:43
绝不是我试图从你的撬你的想法。 :)我很抱歉。但我现在明白你的问题。它可以完成,但是这是一个棘手的问题,并且值得怀疑的是,stackoverflow.com上的一个'简单'答案会做。你虽然对我很感兴趣,听起来很有趣! – Desmond 2012-02-02 15:30:15
去尝试并将这些数字转换为度数并查看是否有帮助:http://stackoverflow.com/questions/4576493/how-can-i-use-sensormanager-getorientation-for-tilt-controls-like-my-纸计划 – 2012-02-02 16:48:10