簡體   English   中英

使用iphone的傳感器檢測旋轉

[英]Detect rotation using iphone's sensors

我正在構建一個應用程序來檢測手機是否已旋轉360度。 這種旋轉很可能在35秒內完成。 如何准確地檢測到這一點? 我已經閱讀了一些關於“集成”和短期使用陀螺儀以及加速度計來補償陀螺儀的文章。 實現這一目標的最佳方法是什么,以及如何從陀螺儀獲得旋轉值?

我不太了解RotationMatrix乘以逆CMAttitude。 即使我不使用手機,CMAttitude.yaw也會給我不同的價值。 我也見過茶壺的例子。 我的代碼大致相同,只是我需要自己處理RotationMatrix的數據,因為我沒有使用OpenGL為我做這個。

謝謝,希德

查看核心動作API,似乎最好的辦法是監控旋轉速度。 特別是通過CMDeviceMotion接口,它通過以下討論聲明了一個rotationRate屬性:

CMRotationRate結構包含指定設備圍繞三個軸的旋轉速率的數據。 此屬性的值包含陀螺儀數據的測量值,其偏差已被Core Motion算法刪除。 另一方面,CMGyroData的相同名稱屬性給出了陀螺儀的原始數據。 結構類型在CMGyroData.h中聲明。

您可以通過CMMotionManager方法聲明您的興趣來監視事件

- (void)startDeviceMotionUpdatesUsingReferenceFrame:(CMAttitudeReferenceFrame)referenceFrame toQueue:(NSOperationQueue *)queue withHandler:(CMDeviceMotionHandler)handler

然后你需要做一些數學計算一個旋轉應該以給定的速率發生的時間,以構成一個完整的360度旋轉。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM