2014-05-02 63 views
1

我想知道是否有方法或如何計算設備的來回運動。如何使用coremotion計算手機的來回運動

例如,如果您將手機放在平坦的表面上並在y軸上來回推動它,則會給出y軸的讀數。如果旋轉手機或轉動手機,則可能會開始閱讀x軸等

我想爲划船者做一箇中風計算器,他們只是將他們的設備連接到船的任何部分,我想知道的是如何處理該設備可以放在任何地方的事實角度或旋轉...

任何幫助,將不勝感激。

回答

1

你可以通過使用核心運動的設備動作來完成。

@property (strong,nonatomic,readonly) CMMotionManager *motionManager; 



// Motion Manager setup 
    if(!_motionManager) 
    { 
     _motionManager = [[CMMotionManager alloc] init]; 
     _motionManager.deviceMotionUpdateInterval = 1.0/70.0; 

     [_motionManager startDeviceMotionUpdatesUsingReferenceFrame:CMAttitudeReferenceFrameXTrueNorthZVertical]; 

     NSLog(@"AppDelegate: Motion Manager created and started."); 
    } 

請注意我如何設置參考框架。

然後,你可以通過做

_motionManager.deviceMotion.userAcceleration 

得到的讀數我不記得,如果這些讀數是在設備座標或全局座標,但如果他們在全局座標,你可以使用認識的侷限性(這就是設備的方向在給定的點上,參照前面指定的真實磁北極,匹配在同一點上的任何加速度)以將設備座標轉換爲世界座標。

+0

好吧,試試看這個,看看這個,看看我可以理解。感謝您的發佈。 – HurkNburkS