我已經試過這個項目在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